@forestadmin/mcp-server 0.1.0 → 1.0.0

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.
package/README.md CHANGED
@@ -39,9 +39,9 @@ Or programmatically:
39
39
  node dist/index.js
40
40
  ```
41
41
 
42
- ### Environment Variables
42
+ #### Environment Variables
43
43
 
44
- The following environment variables are required to run the server:
44
+ The following environment variables are required to run the server as a standalone:
45
45
 
46
46
  | Variable | Required | Default | Description |
47
47
  |----------|----------|---------|-------------|
@@ -49,7 +49,7 @@ The following environment variables are required to run the server:
49
49
  | `FOREST_AUTH_SECRET` | **Yes** | - | Your Forest Admin authentication secret (must match your agent) |
50
50
  | `MCP_SERVER_PORT` | No | `3931` | Port for the HTTP server |
51
51
 
52
- ### Example Configuration
52
+ #### Example Configuration
53
53
 
54
54
  ```bash
55
55
  export FOREST_ENV_SECRET="your-env-secret"
package/dist/index.js CHANGED
File without changes
@@ -50,6 +50,11 @@ const listArgumentSchema = zod_1.z.object({
50
50
  number: zod_1.z.number().default(1).optional(),
51
51
  })
52
52
  .optional(),
53
+ enableCount: zod_1.z
54
+ .boolean()
55
+ .optional()
56
+ .default(false)
57
+ .describe('When true, also returns totalCount of matching records'),
53
58
  });
54
59
  function createListArgumentShape(collectionNames) {
55
60
  return {
@@ -76,10 +81,16 @@ function declareListTool(mcpServer, forestServerUrl, logger, collectionNames = [
76
81
  collectionName: options.collectionName,
77
82
  });
78
83
  try {
79
- const result = await rpcClient
80
- .collection(options.collectionName)
81
- .list(options);
82
- return { content: [{ type: 'text', text: JSON.stringify(result) }] };
84
+ const collection = rpcClient.collection(options.collectionName);
85
+ if (options.enableCount) {
86
+ const [records, totalCount] = await Promise.all([
87
+ collection.list(options),
88
+ collection.count(options),
89
+ ]);
90
+ return { content: [{ type: 'text', text: JSON.stringify({ records, totalCount }) }] };
91
+ }
92
+ const records = await collection.list(options);
93
+ return { content: [{ type: 'text', text: JSON.stringify({ records }) }] };
83
94
  }
84
95
  catch (error) {
85
96
  // Parse error text if it's a JSON string from the agent
@@ -95,4 +106,4 @@ function declareListTool(mcpServer, forestServerUrl, logger, collectionNames = [
95
106
  }
96
107
  }, logger);
97
108
  }
98
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90b29scy9saXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBb0VBLGtDQTZEQztBQTdIRCw2QkFBd0I7QUFFeEIscUVBQWdEO0FBQ2hELGlHQUFrRTtBQUNsRSwrRUFBbUQ7QUFDbkQsK0VBQXVEO0FBQ3ZELGtFQUFzRjtBQUN0Rix5RkFBb0U7QUFFcEUsNEVBQTRFO0FBQzVFLE1BQU0scUJBQXFCLEdBQUcsT0FBQyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRTtJQUMvQyxJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVE7UUFBRSxPQUFPLEdBQUcsQ0FBQztJQUV4QyxJQUFJLENBQUM7UUFDSCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDekIsQ0FBQztJQUFDLE1BQU0sQ0FBQztRQUNQLHFFQUFxRTtRQUNyRSxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7QUFDSCxDQUFDLEVBQUUsbUJBQVksQ0FBQyxDQUFDO0FBRWpCLE1BQU0sa0JBQWtCLEdBQUcsT0FBQyxDQUFDLE1BQU0sQ0FBQztJQUNsQyxjQUFjLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRTtJQUMxQixNQUFNLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUM3QixPQUFPLEVBQUUscUJBQXFCO1NBQzNCLFFBQVEsQ0FDUCxvSkFBb0osQ0FDcko7U0FDQSxRQUFRLEVBQUU7SUFDYixJQUFJLEVBQUUsT0FBQztTQUNKLE1BQU0sQ0FBQztRQUNOLEtBQUssRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFO1FBQ2pCLFNBQVMsRUFBRSxPQUFDLENBQUMsT0FBTyxFQUFFO0tBQ3ZCLENBQUM7U0FDRCxRQUFRLEVBQUU7SUFDYixzQkFBc0IsRUFBRSxPQUFDO1NBQ3RCLE9BQU8sRUFBRTtTQUNULFFBQVEsRUFBRTtTQUNWLE9BQU8sQ0FBQyxLQUFL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
109
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90b29scy9saXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBeUVBLGtDQXNFQztBQTNJRCw2QkFBd0I7QUFFeEIscUVBQWdEO0FBQ2hELGlHQUFrRTtBQUNsRSwrRUFBbUQ7QUFDbkQsK0VBQXVEO0FBQ3ZELGtFQUFzRjtBQUN0Rix5RkFBb0U7QUFFcEUsNEVBQTRFO0FBQzVFLE1BQU0scUJBQXFCLEdBQUcsT0FBQyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRTtJQUMvQyxJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVE7UUFBRSxPQUFPLEdBQUcsQ0FBQztJQUV4QyxJQUFJLENBQUM7UUFDSCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDekIsQ0FBQztJQUFDLE1BQU0sQ0FBQztRQUNQLHFFQUFxRTtRQUNyRSxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7QUFDSCxDQUFDLEVBQUUsbUJBQVksQ0FBQyxDQUFDO0FBRWpCLE1BQU0sa0JBQWtCLEdBQUcsT0FBQyxDQUFDLE1BQU0sQ0FBQztJQUNsQyxjQUFjLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRTtJQUMxQixNQUFNLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUM3QixPQUFPLEVBQUUscUJBQXFCO1NBQzNCLFFBQVEsQ0FDUCxvSkFBb0osQ0FDcko7U0FDQSxRQUFRLEVBQUU7SUFDYixJQUFJLEVBQUUsT0FBQztTQUNKLE1BQU0sQ0FBQztRQUNOLEtBQUssRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFO1FBQ2pCLFNBQVMsRUFBRSxPQUFDLENBQUMsT0FBTyxFQUFFO0tBQ3ZCLENBQUM7U0FDRCxRQUFRLEVBQUU7SUFDYixzQkFBc0IsRUFBRSxPQUFDO1NBQ3RCLE9BQU8sRUFBRTtTQUNULFFBQVEsRUFBRTtTQUNWLE9BQU8sQ0FBQyxLQUFL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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@forestadmin/mcp-server",
3
- "version": "0.1.0",
3
+ "version": "1.0.0",
4
4
  "description": "Model Context Protocol server for Forest Admin with OAuth authentication",
5
5
  "main": "dist/index.js",
6
6
  "bin": {
@@ -16,8 +16,8 @@
16
16
  "directory": "packages/mcp-server"
17
17
  },
18
18
  "dependencies": {
19
- "@forestadmin/agent-client": "0.1.0",
20
- "@forestadmin/forestadmin-client": "^1.37.0",
19
+ "@forestadmin/agent-client": "1.0.0",
20
+ "@forestadmin/forestadmin-client": "1.37.0",
21
21
  "@modelcontextprotocol/sdk": "^1.25.1",
22
22
  "cors": "^2.8.5",
23
23
  "express": "^5.2.1",
package/dist/factory.d.ts DELETED
@@ -1,51 +0,0 @@
1
- import type { HttpCallback } from './server';
2
- import { Logger } from './server';
3
- /**
4
- * Context passed from the Forest Admin agent to the MCP factory.
5
- */
6
- export interface McpFactoryContext {
7
- /** Forest Admin server URL */
8
- forestServerUrl: string;
9
- /** Environment secret */
10
- envSecret: string;
11
- /** Authentication secret */
12
- authSecret: string;
13
- /** Logger function */
14
- logger: Logger;
15
- }
16
- /**
17
- * Options for the MCP factory function.
18
- */
19
- export interface McpFactoryOptions {
20
- /**
21
- * Optional override for the base URL where the agent is publicly accessible.
22
- * If not provided, it will be automatically fetched from Forest Admin API
23
- * (the environment's api_endpoint configuration).
24
- * Example: 'https://my-app.example.com' or 'http://localhost:3000'
25
- */
26
- baseUrl?: string;
27
- }
28
- /**
29
- * Factory function to create an MCP HTTP callback for use with the Forest Admin agent.
30
- *
31
- * This function is designed to be used with the `agent.useMcp()` method:
32
- *
33
- * @example
34
- * ```typescript
35
- * import { createAgent } from '@forestadmin/agent';
36
- * import { createMcpServer } from '@forestadmin/mcp-server';
37
- *
38
- * const agent = createAgent(options)
39
- * .addDataSource(myDataSource)
40
- * .useMcp(createMcpServer, { baseUrl: 'https://my-app.example.com' });
41
- *
42
- * agent.mountOnExpress(app);
43
- * agent.start();
44
- * ```
45
- *
46
- * @param context - Context containing Forest Admin configuration (provided by the agent)
47
- * @param options - Optional configuration for the MCP server
48
- * @returns An HTTP callback that handles MCP routes
49
- */
50
- export declare function createMcpServer(context: McpFactoryContext, options?: McpFactoryOptions): Promise<HttpCallback>;
51
- //# sourceMappingURL=factory.d.ts.map
package/dist/factory.js DELETED
@@ -1,40 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.createMcpServer = createMcpServer;
7
- const server_1 = __importDefault(require("./server"));
8
- /**
9
- * Factory function to create an MCP HTTP callback for use with the Forest Admin agent.
10
- *
11
- * This function is designed to be used with the `agent.useMcp()` method:
12
- *
13
- * @example
14
- * ```typescript
15
- * import { createAgent } from '@forestadmin/agent';
16
- * import { createMcpServer } from '@forestadmin/mcp-server';
17
- *
18
- * const agent = createAgent(options)
19
- * .addDataSource(myDataSource)
20
- * .useMcp(createMcpServer, { baseUrl: 'https://my-app.example.com' });
21
- *
22
- * agent.mountOnExpress(app);
23
- * agent.start();
24
- * ```
25
- *
26
- * @param context - Context containing Forest Admin configuration (provided by the agent)
27
- * @param options - Optional configuration for the MCP server
28
- * @returns An HTTP callback that handles MCP routes
29
- */
30
- async function createMcpServer(context, options) {
31
- const mcpServer = new server_1.default({
32
- forestServerUrl: context.forestServerUrl,
33
- envSecret: context.envSecret,
34
- authSecret: context.authSecret,
35
- logger: context.logger,
36
- });
37
- const baseUrl = options?.baseUrl ? new URL('/', options.baseUrl) : undefined;
38
- return mcpServer.getHttpCallback(baseUrl);
39
- }
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9mYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBcURBLDBDQWNDO0FBakVELHNEQUFtRDtBQTZCbkQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXFCRztBQUNJLEtBQUssVUFBVSxlQUFlLENBQ25DLE9BQTBCLEVBQzFCLE9BQTJCO0lBRTNCLE1BQU0sU0FBUyxHQUFHLElBQUksZ0JBQWUsQ0FBQztRQUNwQyxlQUFlLEVBQUUsT0FBTyxDQUFDLGVBQWU7UUFDeEMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxTQUFTO1FBQzVCLFVBQVUsRUFBRSxPQUFPLENBQUMsVUFBVTtRQUM5QixNQUFNLEVBQUUsT0FBTyxDQUFDLE1BQU07S0FDdkIsQ0FBQyxDQUFDO0lBRUgsTUFBTSxPQUFPLEdBQUcsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBRTdFLE9BQU8sU0FBUyxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUM1QyxDQUFDIn0=
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=forest-oauth-provider.test.d.ts.map