@frontmcp/react 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (140) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +263 -0
  3. package/ai/createToolHandler.d.ts +10 -0
  4. package/ai/createToolHandler.d.ts.map +1 -0
  5. package/ai/index.d.ts +7 -0
  6. package/ai/index.d.ts.map +1 -0
  7. package/ai/index.js +416 -0
  8. package/ai/types.d.ts +52 -0
  9. package/ai/types.d.ts.map +1 -0
  10. package/ai/useAITools.d.ts +17 -0
  11. package/ai/useAITools.d.ts.map +1 -0
  12. package/ai/useTools.d.ts +19 -0
  13. package/ai/useTools.d.ts.map +1 -0
  14. package/api/api.types.d.ts +61 -0
  15. package/api/api.types.d.ts.map +1 -0
  16. package/api/createFetchClient.d.ts +9 -0
  17. package/api/createFetchClient.d.ts.map +1 -0
  18. package/api/index.d.ts +12 -0
  19. package/api/index.d.ts.map +1 -0
  20. package/api/index.js +402 -0
  21. package/api/parseOpenApiSpec.d.ts +9 -0
  22. package/api/parseOpenApiSpec.d.ts.map +1 -0
  23. package/api/useApiClient.d.ts +9 -0
  24. package/api/useApiClient.d.ts.map +1 -0
  25. package/components/AgentContent.d.ts +30 -0
  26. package/components/AgentContent.d.ts.map +1 -0
  27. package/components/AgentSearch.d.ts +35 -0
  28. package/components/AgentSearch.d.ts.map +1 -0
  29. package/components/ComponentRegistry.d.ts +36 -0
  30. package/components/ComponentRegistry.d.ts.map +1 -0
  31. package/components/DomResources.d.ts +16 -0
  32. package/components/DomResources.d.ts.map +1 -0
  33. package/components/DynamicRenderer.d.ts +19 -0
  34. package/components/DynamicRenderer.d.ts.map +1 -0
  35. package/components/OutputDisplay.d.ts +11 -0
  36. package/components/OutputDisplay.d.ts.map +1 -0
  37. package/components/PromptForm.d.ts +13 -0
  38. package/components/PromptForm.d.ts.map +1 -0
  39. package/components/ResourceViewer.d.ts +18 -0
  40. package/components/ResourceViewer.d.ts.map +1 -0
  41. package/components/ToolForm.d.ts +16 -0
  42. package/components/ToolForm.d.ts.map +1 -0
  43. package/components/index.d.ts +21 -0
  44. package/components/index.d.ts.map +1 -0
  45. package/components/mcpComponent.d.ts +48 -0
  46. package/components/mcpComponent.d.ts.map +1 -0
  47. package/esm/ai/index.mjs +393 -0
  48. package/esm/api/index.mjs +379 -0
  49. package/esm/index.mjs +1814 -0
  50. package/esm/package.json +111 -0
  51. package/esm/router/index.mjs +157 -0
  52. package/esm/state/index.mjs +450 -0
  53. package/hooks/index.d.ts +21 -0
  54. package/hooks/index.d.ts.map +1 -0
  55. package/hooks/useCallTool.d.ts +9 -0
  56. package/hooks/useCallTool.d.ts.map +1 -0
  57. package/hooks/useComponentTree.d.ts +21 -0
  58. package/hooks/useComponentTree.d.ts.map +1 -0
  59. package/hooks/useDynamicResource.d.ts +20 -0
  60. package/hooks/useDynamicResource.d.ts.map +1 -0
  61. package/hooks/useDynamicTool.d.ts +39 -0
  62. package/hooks/useDynamicTool.d.ts.map +1 -0
  63. package/hooks/useFrontMcp.d.ts +8 -0
  64. package/hooks/useFrontMcp.d.ts.map +1 -0
  65. package/hooks/useGetPrompt.d.ts +13 -0
  66. package/hooks/useGetPrompt.d.ts.map +1 -0
  67. package/hooks/useListPrompts.d.ts +10 -0
  68. package/hooks/useListPrompts.d.ts.map +1 -0
  69. package/hooks/useListResources.d.ts +14 -0
  70. package/hooks/useListResources.d.ts.map +1 -0
  71. package/hooks/useListTools.d.ts +10 -0
  72. package/hooks/useListTools.d.ts.map +1 -0
  73. package/hooks/useReadResource.d.ts +23 -0
  74. package/hooks/useReadResource.d.ts.map +1 -0
  75. package/hooks/useResolvedServer.d.ts +16 -0
  76. package/hooks/useResolvedServer.d.ts.map +1 -0
  77. package/hooks/useServer.d.ts +17 -0
  78. package/hooks/useServer.d.ts.map +1 -0
  79. package/hooks/useStoreResource.d.ts +22 -0
  80. package/hooks/useStoreResource.d.ts.map +1 -0
  81. package/index.d.ts +33 -0
  82. package/index.d.ts.map +1 -0
  83. package/index.js +1821 -0
  84. package/package.json +111 -0
  85. package/provider/FrontMcpContext.d.ts +6 -0
  86. package/provider/FrontMcpContext.d.ts.map +1 -0
  87. package/provider/FrontMcpProvider.d.ts +34 -0
  88. package/provider/FrontMcpProvider.d.ts.map +1 -0
  89. package/provider/index.d.ts +4 -0
  90. package/provider/index.d.ts.map +1 -0
  91. package/registry/DynamicRegistry.d.ts +55 -0
  92. package/registry/DynamicRegistry.d.ts.map +1 -0
  93. package/registry/ServerRegistry.d.ts +43 -0
  94. package/registry/ServerRegistry.d.ts.map +1 -0
  95. package/registry/createWrappedServer.d.ts +14 -0
  96. package/registry/createWrappedServer.d.ts.map +1 -0
  97. package/registry/index.d.ts +5 -0
  98. package/registry/index.d.ts.map +1 -0
  99. package/router/current-route.resource.d.ts +11 -0
  100. package/router/current-route.resource.d.ts.map +1 -0
  101. package/router/go-back.tool.d.ts +18 -0
  102. package/router/go-back.tool.d.ts.map +1 -0
  103. package/router/index.d.ts +9 -0
  104. package/router/index.d.ts.map +1 -0
  105. package/router/index.js +180 -0
  106. package/router/navigate.tool.d.ts +35 -0
  107. package/router/navigate.tool.d.ts.map +1 -0
  108. package/router/router-bridge.d.ts +20 -0
  109. package/router/router-bridge.d.ts.map +1 -0
  110. package/router/router.entries.d.ts +23 -0
  111. package/router/router.entries.d.ts.map +1 -0
  112. package/router/useRouterBridge.d.ts +7 -0
  113. package/router/useRouterBridge.d.ts.map +1 -0
  114. package/state/adapters/createStore.d.ts +15 -0
  115. package/state/adapters/createStore.d.ts.map +1 -0
  116. package/state/adapters/index.d.ts +7 -0
  117. package/state/adapters/index.d.ts.map +1 -0
  118. package/state/adapters/reduxAdapter.d.ts +21 -0
  119. package/state/adapters/reduxAdapter.d.ts.map +1 -0
  120. package/state/adapters/valtioAdapter.d.ts +19 -0
  121. package/state/adapters/valtioAdapter.d.ts.map +1 -0
  122. package/state/index.d.ts +15 -0
  123. package/state/index.d.ts.map +1 -0
  124. package/state/index.js +473 -0
  125. package/state/state.types.d.ts +48 -0
  126. package/state/state.types.d.ts.map +1 -0
  127. package/state/useReduxResource.d.ts +8 -0
  128. package/state/useReduxResource.d.ts.map +1 -0
  129. package/state/useStoreRegistration.d.ts +14 -0
  130. package/state/useStoreRegistration.d.ts.map +1 -0
  131. package/state/useStoreResource.d.ts +10 -0
  132. package/state/useStoreResource.d.ts.map +1 -0
  133. package/state/useValtioResource.d.ts +9 -0
  134. package/state/useValtioResource.d.ts.map +1 -0
  135. package/types.d.ts +127 -0
  136. package/types.d.ts.map +1 -0
  137. package/utils/index.d.ts +2 -0
  138. package/utils/index.d.ts.map +1 -0
  139. package/utils/zodToJsonSchema.d.ts +9 -0
  140. package/utils/zodToJsonSchema.d.ts.map +1 -0
@@ -0,0 +1,21 @@
1
+ export { useFrontMcp } from './useFrontMcp';
2
+ export { useServer } from './useServer';
3
+ export { useResolvedServer } from './useResolvedServer';
4
+ export type { ResolvedServerEntry } from './useResolvedServer';
5
+ export { useCallTool } from './useCallTool';
6
+ export { useReadResource } from './useReadResource';
7
+ export { useGetPrompt } from './useGetPrompt';
8
+ export type { UseGetPromptReturn } from './useGetPrompt';
9
+ export { useListTools } from './useListTools';
10
+ export { useListResources } from './useListResources';
11
+ export type { UseListResourcesResult } from './useListResources';
12
+ export { useListPrompts } from './useListPrompts';
13
+ export { useStoreResource } from './useStoreResource';
14
+ export type { UseStoreResourceReturn } from './useStoreResource';
15
+ export { useDynamicTool } from './useDynamicTool';
16
+ export type { UseDynamicToolOptions, UseDynamicToolSchemaOptions, UseDynamicToolJsonSchemaOptions, } from './useDynamicTool';
17
+ export { useDynamicResource } from './useDynamicResource';
18
+ export type { UseDynamicResourceOptions } from './useDynamicResource';
19
+ export { useComponentTree } from './useComponentTree';
20
+ export type { UseComponentTreeOptions } from './useComponentTree';
21
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,YAAY,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,YAAY,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,YAAY,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,YAAY,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,YAAY,EACV,qBAAqB,EACrB,2BAA2B,EAC3B,+BAA+B,GAChC,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,YAAY,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,YAAY,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * useCallTool — [callFn, state, reset] tuple for tool invocation.
3
+ *
4
+ * Supports multi-server via `options.server` — targets a named server
5
+ * from the ServerRegistry instead of the provider context.
6
+ */
7
+ import type { UseCallToolOptions, UseCallToolReturn } from '../types';
8
+ export declare function useCallTool<TInput extends object = Record<string, unknown>, TOutput = unknown>(toolName: string, options?: UseCallToolOptions): UseCallToolReturn<TInput, TOutput>;
9
+ //# sourceMappingURL=useCallTool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useCallTool.d.ts","sourceRoot":"","sources":["../../src/hooks/useCallTool.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAa,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAGjF,wBAAgB,WAAW,CAAC,MAAM,SAAS,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,EAC5F,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,kBAAuB,GAC/B,iBAAiB,CAAC,MAAM,EAAE,OAAO,CAAC,CAoDpC"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * useComponentTree — exposes the DOM subtree under a ref as an MCP resource.
3
+ *
4
+ * Uses `data-component` attributes for component names (opt-in).
5
+ * Falls back to tag names for unattributed elements.
6
+ * Returns a JSON tree structure representing the component hierarchy.
7
+ */
8
+ import type { RefObject } from 'react';
9
+ export interface UseComponentTreeOptions {
10
+ rootRef: RefObject<HTMLElement | null>;
11
+ /** Resource URI (defaults to 'react://component-tree'). */
12
+ uri?: string;
13
+ /** Maximum traversal depth (default: 10). */
14
+ maxDepth?: number;
15
+ /** Include data-* attributes as props (default: false). */
16
+ includeProps?: boolean;
17
+ /** Target a specific named server. */
18
+ server?: string;
19
+ }
20
+ export declare function useComponentTree(options: UseComponentTreeOptions): void;
21
+ //# sourceMappingURL=useComponentTree.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useComponentTree.d.ts","sourceRoot":"","sources":["../../src/hooks/useComponentTree.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAOvC,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IACvC,2DAA2D;IAC3D,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,2DAA2D;IAC3D,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,sCAAsC;IACtC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AA2CD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,uBAAuB,GAAG,IAAI,CA6BvE"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * useDynamicResource — registers an MCP resource on mount, unregisters on unmount.
3
+ *
4
+ * Uses useRef for the read function to avoid stale closures.
5
+ * The resource appears in useListResources and can be read by agents.
6
+ */
7
+ import type { ReadResourceResult } from '@frontmcp/sdk';
8
+ export interface UseDynamicResourceOptions {
9
+ uri: string;
10
+ name: string;
11
+ description?: string;
12
+ mimeType?: string;
13
+ read: () => Promise<ReadResourceResult>;
14
+ /** Set to false to conditionally disable the resource (default: true). */
15
+ enabled?: boolean;
16
+ /** Target a specific named server from the ServerRegistry. */
17
+ server?: string;
18
+ }
19
+ export declare function useDynamicResource(options: UseDynamicResourceOptions): void;
20
+ //# sourceMappingURL=useDynamicResource.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useDynamicResource.d.ts","sourceRoot":"","sources":["../../src/hooks/useDynamicResource.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAGxD,MAAM,WAAW,yBAAyB;IACxC,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACxC,0EAA0E;IAC1E,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,8DAA8D;IAC9D,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,yBAAyB,GAAG,IAAI,CAwB3E"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * useDynamicTool — registers an MCP tool on mount, unregisters on unmount.
3
+ *
4
+ * Uses useRef for the execute function to avoid stale closures.
5
+ * The tool appears in useListTools and can be called by agents.
6
+ *
7
+ * Supports both JSON Schema and zod-based schemas. When a zod schema
8
+ * is provided, input is validated before reaching the execute callback.
9
+ */
10
+ import type { CallToolResult } from '@frontmcp/sdk';
11
+ import type { z } from 'zod';
12
+ export interface UseDynamicToolSchemaOptions<S extends z.ZodObject<z.ZodRawShape>> {
13
+ name: string;
14
+ description: string;
15
+ /** Zod schema for type-safe input validation. */
16
+ schema: S;
17
+ inputSchema?: never;
18
+ /** Type-safe execute callback — args are validated against `schema`. */
19
+ execute: (args: z.infer<S>) => Promise<CallToolResult>;
20
+ /** Set to false to conditionally disable the tool (default: true). */
21
+ enabled?: boolean;
22
+ /** Target a specific named server from the ServerRegistry. */
23
+ server?: string;
24
+ }
25
+ export interface UseDynamicToolJsonSchemaOptions {
26
+ name: string;
27
+ description: string;
28
+ schema?: never;
29
+ /** Raw JSON Schema for the tool's input. */
30
+ inputSchema: Record<string, unknown>;
31
+ execute: (args: Record<string, unknown>) => Promise<CallToolResult>;
32
+ /** Set to false to conditionally disable the tool (default: true). */
33
+ enabled?: boolean;
34
+ /** Target a specific named server from the ServerRegistry. */
35
+ server?: string;
36
+ }
37
+ export type UseDynamicToolOptions<S extends z.ZodObject<z.ZodRawShape> = z.ZodObject<z.ZodRawShape>> = UseDynamicToolSchemaOptions<S> | UseDynamicToolJsonSchemaOptions;
38
+ export declare function useDynamicTool<S extends z.ZodObject<z.ZodRawShape>>(options: UseDynamicToolOptions<S>): void;
39
+ //# sourceMappingURL=useDynamicTool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useDynamicTool.d.ts","sourceRoot":"","sources":["../../src/hooks/useDynamicTool.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAM7B,MAAM,WAAW,2BAA2B,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC;IAC/E,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,iDAAiD;IACjD,MAAM,EAAE,CAAC,CAAC;IACV,WAAW,CAAC,EAAE,KAAK,CAAC;IACpB,wEAAwE;IACxE,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,cAAc,CAAC,CAAC;IACvD,sEAAsE;IACtE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,8DAA8D;IAC9D,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAID,MAAM,WAAW,+BAA+B;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,KAAK,CAAC;IACf,4CAA4C;IAC5C,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,cAAc,CAAC,CAAC;IACpE,sEAAsE;IACtE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,8DAA8D;IAC9D,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,qBAAqB,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,IAC/F,2BAA2B,CAAC,CAAC,CAAC,GAC9B,+BAA+B,CAAC;AAEpC,wBAAgB,cAAc,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE,qBAAqB,CAAC,CAAC,CAAC,GAAG,IAAI,CA2D5G"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * useFrontMcp — access a resolved server by name, or the default provider server.
3
+ *
4
+ * @param name - optional server name; defaults to the provider's `name`.
5
+ */
6
+ import type { ResolvedServer } from '../types';
7
+ export declare function useFrontMcp(name?: string): ResolvedServer;
8
+ //# sourceMappingURL=useFrontMcp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useFrontMcp.d.ts","sourceRoot":"","sources":["../../src/hooks/useFrontMcp.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAG/C,wBAAgB,WAAW,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,cAAc,CAezD"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * useGetPrompt — [fn, state] tuple for prompt fetching.
3
+ *
4
+ * Supports multi-server via `options.server`.
5
+ */
6
+ import type { PromptState } from '../types';
7
+ interface GetPromptOptions {
8
+ server?: string;
9
+ }
10
+ export type UseGetPromptReturn = [(args?: Record<string, string>) => Promise<unknown>, PromptState];
11
+ export declare function useGetPrompt(promptName: string, options?: GetPromptOptions): UseGetPromptReturn;
12
+ export {};
13
+ //# sourceMappingURL=useGetPrompt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useGetPrompt.d.ts","sourceRoot":"","sources":["../../src/hooks/useGetPrompt.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAG5C,UAAU,gBAAgB;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,EAAE,WAAW,CAAC,CAAC;AAEpG,wBAAgB,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,kBAAkB,CAmC/F"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * useListPrompts — reactive prompt list from the ServerRegistry.
3
+ */
4
+ import type { PromptInfo } from '../types';
5
+ interface ListPromptsOptions {
6
+ server?: string;
7
+ }
8
+ export declare function useListPrompts(options?: ListPromptsOptions): PromptInfo[];
9
+ export {};
10
+ //# sourceMappingURL=useListPrompts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useListPrompts.d.ts","sourceRoot":"","sources":["../../src/hooks/useListPrompts.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAK3C,UAAU,kBAAkB;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,cAAc,CAAC,OAAO,CAAC,EAAE,kBAAkB,GAAG,UAAU,EAAE,CAGzE"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * useListResources — reactive resource + template list from the ServerRegistry.
3
+ */
4
+ import type { ResourceInfo, ResourceTemplateInfo } from '../types';
5
+ interface ListResourcesOptions {
6
+ server?: string;
7
+ }
8
+ export interface UseListResourcesResult {
9
+ resources: ResourceInfo[];
10
+ resourceTemplates: ResourceTemplateInfo[];
11
+ }
12
+ export declare function useListResources(options?: ListResourcesOptions): UseListResourcesResult;
13
+ export {};
14
+ //# sourceMappingURL=useListResources.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useListResources.d.ts","sourceRoot":"","sources":["../../src/hooks/useListResources.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAMnE,UAAU,oBAAoB;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,sBAAsB;IACrC,SAAS,EAAE,YAAY,EAAE,CAAC;IAC1B,iBAAiB,EAAE,oBAAoB,EAAE,CAAC;CAC3C;AAED,wBAAgB,gBAAgB,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,sBAAsB,CAMvF"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * useListTools — reactive tool list from the ServerRegistry.
3
+ */
4
+ import type { ToolInfo } from '../types';
5
+ interface ListToolsOptions {
6
+ server?: string;
7
+ }
8
+ export declare function useListTools(options?: ListToolsOptions): ToolInfo[];
9
+ export {};
10
+ //# sourceMappingURL=useListTools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useListTools.d.ts","sourceRoot":"","sources":["../../src/hooks/useListTools.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAKzC,UAAU,gBAAgB;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,YAAY,CAAC,OAAO,CAAC,EAAE,gBAAgB,GAAG,QAAQ,EAAE,CAGnE"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * useReadResource — dual-mode resource reading.
3
+ *
4
+ * Lazy mode (no URI): `const [read, state] = useReadResource()`
5
+ * Auto-fetch mode: `const state = useReadResource('app://info')`
6
+ *
7
+ * Supports multi-server via `options.server`.
8
+ */
9
+ import type { ResourceState } from '../types';
10
+ interface ReadResourceOptions {
11
+ server?: string;
12
+ }
13
+ type ReadFn = (uri: string) => Promise<unknown>;
14
+ type LazyReturn = [ReadFn, ResourceState & {
15
+ refetch?: undefined;
16
+ }];
17
+ type AutoReturn = ResourceState & {
18
+ refetch: () => void;
19
+ };
20
+ export declare function useReadResource(options?: ReadResourceOptions): LazyReturn;
21
+ export declare function useReadResource(uri: string, options?: ReadResourceOptions): AutoReturn;
22
+ export {};
23
+ //# sourceMappingURL=useReadResource.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useReadResource.d.ts","sourceRoot":"","sources":["../../src/hooks/useReadResource.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAG9C,UAAU,mBAAmB;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,KAAK,MAAM,GAAG,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;AAChD,KAAK,UAAU,GAAG,CAAC,MAAM,EAAE,aAAa,GAAG;IAAE,OAAO,CAAC,EAAE,SAAS,CAAA;CAAE,CAAC,CAAC;AACpE,KAAK,UAAU,GAAG,aAAa,GAAG;IAAE,OAAO,EAAE,MAAM,IAAI,CAAA;CAAE,CAAC;AAE1D,wBAAgB,eAAe,CAAC,OAAO,CAAC,EAAE,mBAAmB,GAAG,UAAU,CAAC;AAC3E,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,UAAU,CAAC"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * useResolvedServer — internal shared hook that resolves a server entry.
3
+ *
4
+ * Without args: resolves the provider's server name from context.
5
+ * With a name: resolves the named server from the ServerRegistry.
6
+ */
7
+ import type { ServerEntry } from '../registry/ServerRegistry';
8
+ import type { ComponentRegistry } from '../components/ComponentRegistry';
9
+ export interface ResolvedServerEntry {
10
+ entry: ServerEntry | undefined;
11
+ name: string;
12
+ registry: ComponentRegistry;
13
+ connect: () => Promise<void>;
14
+ }
15
+ export declare function useResolvedServer(serverName?: string): ResolvedServerEntry;
16
+ //# sourceMappingURL=useResolvedServer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useResolvedServer.d.ts","sourceRoot":"","sources":["../../src/hooks/useResolvedServer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAEzE,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,WAAW,GAAG,SAAS,CAAC;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B;AAED,wBAAgB,iBAAiB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,mBAAmB,CAK1E"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * useServer — access a named server from the shared ServerRegistry singleton.
3
+ *
4
+ * Uses useSyncExternalStore for tear-free reads. When no name is given,
5
+ * returns the 'default' server entry (the one from FrontMcpProvider).
6
+ *
7
+ * @example
8
+ * ```tsx
9
+ * const entry = useServer('analytics');
10
+ * if (entry?.status === 'connected') {
11
+ * // entry.client is available
12
+ * }
13
+ * ```
14
+ */
15
+ import type { ServerEntry } from '../registry/ServerRegistry';
16
+ export declare function useServer(name?: string): ServerEntry | undefined;
17
+ //# sourceMappingURL=useServer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useServer.d.ts","sourceRoot":"","sources":["../../src/hooks/useServer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAE9D,wBAAgB,SAAS,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAQhE"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * useStoreResource — Subscribe to a `state://` URI via MCP resource subscriptions.
3
+ *
4
+ * When the server sends `notifications/resources/updated`, the hook re-fetches
5
+ * the resource automatically. This enables live reactive state binding.
6
+ *
7
+ * Supports multi-server via `options.server`.
8
+ */
9
+ interface StoreResourceState {
10
+ data: unknown;
11
+ loading: boolean;
12
+ error: Error | null;
13
+ }
14
+ interface StoreResourceOptions {
15
+ server?: string;
16
+ }
17
+ export interface UseStoreResourceReturn extends StoreResourceState {
18
+ refetch: () => void;
19
+ }
20
+ export declare function useStoreResource(uri: string, options?: StoreResourceOptions): UseStoreResourceReturn;
21
+ export {};
22
+ //# sourceMappingURL=useStoreResource.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useStoreResource.d.ts","sourceRoot":"","sources":["../../src/hooks/useStoreResource.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,UAAU,kBAAkB;IAC1B,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;CACrB;AAED,UAAU,oBAAoB;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,sBAAuB,SAAQ,kBAAkB;IAChE,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAcD,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,oBAAoB,GAAG,sBAAsB,CA6DpG"}
package/index.d.ts ADDED
@@ -0,0 +1,33 @@
1
+ /**
2
+ * @frontmcp/react — React hooks, components, and utilities for FrontMCP.
3
+ *
4
+ * Entry points:
5
+ * - `@frontmcp/react` — Provider + hooks + components + ServerRegistry + SDK re-exports
6
+ * - `@frontmcp/react/ai` — AI SDK integration hooks (OpenAI, Vercel AI, Claude)
7
+ * - `@frontmcp/react/router` — React Router integration (optional)
8
+ * - `@frontmcp/react/state` — State management integration (Redux, Valtio, generic)
9
+ * - `@frontmcp/react/api` — API client integration (OpenAPI)
10
+ *
11
+ * @packageDocumentation
12
+ */
13
+ export { create, clearCreateCache } from '@frontmcp/sdk';
14
+ export { connect, connectOpenAI, connectClaude, connectLangChain, connectVercelAI } from '@frontmcp/sdk';
15
+ export type { CreateConfig, DirectMcpServer, DirectClient, DirectCallOptions, DirectAuthContext } from '@frontmcp/sdk';
16
+ export type { ConnectOptions, LLMPlatform } from '@frontmcp/sdk';
17
+ export { Tool, FrontMcpTool, tool, frontMcpTool, Resource, FrontMcpResource, resource, frontMcpResource, ResourceTemplate, FrontMcpResourceTemplate, resourceTemplate, frontMcpResourceTemplate, Prompt, FrontMcpPrompt, prompt, frontMcpPrompt, App, FrontMcpApp, FrontMcp, Adapter, FrontMcpAdapter, Plugin, FrontMcpPlugin, } from '@frontmcp/sdk';
18
+ export { ToolContext, ResourceContext, PromptContext, ExecutionContextBase } from '@frontmcp/sdk';
19
+ export type { GetPromptResult, ReadResourceResult, CallToolResult, ListToolsResult, ListResourcesResult, ListResourceTemplatesResult, ListPromptsResult, TextContent, ImageContent, PromptMessage, } from '@frontmcp/sdk';
20
+ export type { FrontMcpContextValue, ResolvedServer, FrontMcpStatus, ToolInfo, ResourceInfo, ResourceTemplateInfo, PromptInfo, ToolState, ResourceState, PromptState, UseCallToolOptions, UseCallToolReturn, ComponentNode, FieldRenderProps, DynamicToolDef, DynamicResourceDef, StoreAdapter, McpColumnDef, } from './types';
21
+ export { ServerRegistry, serverRegistry } from './registry';
22
+ export { DynamicRegistry } from './registry';
23
+ export type { ServerEntry } from './registry';
24
+ export { FrontMcpContext, FrontMcpProvider } from './provider';
25
+ export type { FrontMcpProviderProps } from './provider';
26
+ export { useFrontMcp, useServer, useResolvedServer, useCallTool, useReadResource, useGetPrompt, useListTools, useListResources, useListPrompts, useStoreResource, useDynamicTool, useDynamicResource, useComponentTree, } from './hooks';
27
+ export type { ResolvedServerEntry, UseGetPromptReturn, UseListResourcesResult, UseStoreResourceReturn } from './hooks';
28
+ export type { UseDynamicToolOptions, UseDynamicToolSchemaOptions, UseDynamicToolJsonSchemaOptions, UseDynamicResourceOptions, UseComponentTreeOptions, } from './hooks';
29
+ export { ComponentRegistry, DynamicRenderer, readDomById, readDomBySelector, ToolForm, PromptForm, ResourceViewer, OutputDisplay, AgentContent, AgentSearch, mcpComponent, mcpLazy, } from './components';
30
+ export type { ComponentRegistryEntry, DynamicRendererProps, DomResourceResult, ToolFormProps, PromptFormProps, ResourceViewerProps, ResourceContent, OutputDisplayProps, AgentContentProps, AgentSearchProps, SearchInputRenderProps, McpComponentOptions, McpComponentInstance, } from './components';
31
+ export { reduxStore, valtioStore, createStore } from './state/adapters';
32
+ export type { HttpClient, HttpRequestConfig, HttpResponse } from './api/api.types';
33
+ //# sourceMappingURL=index.d.ts.map
package/index.d.ts.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAOH,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACzG,YAAY,EAAE,YAAY,EAAE,eAAe,EAAE,YAAY,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AACvH,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAGjE,OAAO,EACL,IAAI,EACJ,YAAY,EACZ,IAAI,EACJ,YAAY,EACZ,QAAQ,EACR,gBAAgB,EAChB,QAAQ,EACR,gBAAgB,EAChB,gBAAgB,EAChB,wBAAwB,EACxB,gBAAgB,EAChB,wBAAwB,EACxB,MAAM,EACN,cAAc,EACd,MAAM,EACN,cAAc,EACd,GAAG,EACH,WAAW,EACX,QAAQ,EACR,OAAO,EACP,eAAe,EACf,MAAM,EACN,cAAc,GACf,MAAM,eAAe,CAAC;AAGvB,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAGlG,YAAY,EACV,eAAe,EACf,kBAAkB,EAClB,cAAc,EACd,eAAe,EACf,mBAAmB,EACnB,2BAA2B,EAC3B,iBAAiB,EACjB,WAAW,EACX,YAAY,EACZ,aAAa,GACd,MAAM,eAAe,CAAC;AAMvB,YAAY,EACV,oBAAoB,EACpB,cAAc,EACd,cAAc,EACd,QAAQ,EACR,YAAY,EACZ,oBAAoB,EACpB,UAAU,EACV,SAAS,EACT,aAAa,EACb,WAAW,EACX,kBAAkB,EAClB,iBAAiB,EACjB,aAAa,EACb,gBAAgB,EAChB,cAAc,EACd,kBAAkB,EAClB,YAAY,EACZ,YAAY,GACb,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAG9C,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC/D,YAAY,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAGxD,OAAO,EACL,WAAW,EACX,SAAS,EACT,iBAAiB,EACjB,WAAW,EACX,eAAe,EACf,YAAY,EACZ,YAAY,EACZ,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,SAAS,CAAC;AACjB,YAAY,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AACvH,YAAY,EACV,qBAAqB,EACrB,2BAA2B,EAC3B,+BAA+B,EAC/B,yBAAyB,EACzB,uBAAuB,GACxB,MAAM,SAAS,CAAC;AAGjB,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,WAAW,EACX,iBAAiB,EACjB,QAAQ,EACR,UAAU,EACV,cAAc,EACd,aAAa,EACb,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,OAAO,GACR,MAAM,cAAc,CAAC;AACtB,YAAY,EACV,sBAAsB,EACtB,oBAAoB,EACpB,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,mBAAmB,EACnB,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EAChB,sBAAsB,EACtB,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAGxE,YAAY,EAAE,UAAU,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC"}