@forestadmin/mcp-server 1.17.2 → 1.18.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.
Files changed (38) hide show
  1. package/dist/cli.js +2 -1
  2. package/dist/forest-oauth-provider.d.ts +3 -1
  3. package/dist/forest-oauth-provider.js +6 -3
  4. package/dist/in-process-agent-dispatcher.d.ts +17 -0
  5. package/dist/in-process-agent-dispatcher.js +3 -0
  6. package/dist/in-process-http-requester.d.ts +22 -0
  7. package/dist/in-process-http-requester.js +38 -0
  8. package/dist/index.d.ts +1 -0
  9. package/dist/index.js +1 -1
  10. package/dist/server.d.ts +13 -0
  11. package/dist/server.js +21 -41
  12. package/dist/tool-context.d.ts +10 -0
  13. package/dist/tool-context.js +3 -0
  14. package/dist/tools/associate.d.ts +2 -3
  15. package/dist/tools/associate.js +4 -3
  16. package/dist/tools/create.d.ts +2 -3
  17. package/dist/tools/create.js +4 -3
  18. package/dist/tools/delete.d.ts +2 -3
  19. package/dist/tools/delete.js +4 -3
  20. package/dist/tools/describe-collection.d.ts +2 -3
  21. package/dist/tools/describe-collection.js +4 -3
  22. package/dist/tools/dissociate.d.ts +2 -3
  23. package/dist/tools/dissociate.js +4 -3
  24. package/dist/tools/execute-action.d.ts +2 -3
  25. package/dist/tools/execute-action.js +4 -3
  26. package/dist/tools/get-action-form.d.ts +2 -3
  27. package/dist/tools/get-action-form.js +4 -3
  28. package/dist/tools/list-related.d.ts +2 -3
  29. package/dist/tools/list-related.js +4 -3
  30. package/dist/tools/list.d.ts +2 -3
  31. package/dist/tools/list.js +4 -3
  32. package/dist/tools/update.d.ts +2 -3
  33. package/dist/tools/update.js +4 -3
  34. package/dist/utils/agent-caller.d.ts +3 -2
  35. package/dist/utils/agent-caller.js +16 -7
  36. package/dist/utils/normalize-agent-url.d.ts +2 -0
  37. package/dist/utils/normalize-agent-url.js +24 -0
  38. package/package.json +3 -3
package/dist/cli.js CHANGED
@@ -13,9 +13,10 @@ const server = new server_1.default({
13
13
  envSecret: process.env.FOREST_ENV_SECRET,
14
14
  authSecret: process.env.FOREST_AUTH_SECRET,
15
15
  enabledTools: (0, parse_tool_list_1.default)(process.env.FOREST_MCP_ENABLED_TOOLS),
16
+ agentUrl: process.env.FOREST_AGENT_URL,
16
17
  });
17
18
  server.run().catch(error => {
18
19
  console.error('[FATAL] Server crashed:', error);
19
20
  process.exit(1);
20
21
  });
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NsaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFFQSxzREFBdUM7QUFDdkMsOEVBQW9EO0FBRXBELDRDQUE0QztBQUM1QyxNQUFNLE1BQU0sR0FBRyxJQUFJLGdCQUFlLENBQUM7SUFDakMsZUFBZSxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsaUJBQWlCLElBQUksNkJBQTZCO0lBQy9FLFlBQVksRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLGNBQWMsSUFBSSw2QkFBNkI7SUFDekUsU0FBUyxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsaUJBQWlCO0lBQ3hDLFVBQVUsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLGtCQUFrQjtJQUMxQyxZQUFZLEVBQUUsSUFBQSx5QkFBYSxFQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsd0JBQXdCLENBQUM7Q0FDbEUsQ0FBQyxDQUFDO0FBRUgsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRTtJQUN6QixPQUFPLENBQUMsS0FBSyxDQUFDLHlCQUF5QixFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ2hELE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDbEIsQ0FBQyxDQUFDLENBQUMifQ==
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NsaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFFQSxzREFBdUM7QUFDdkMsOEVBQW9EO0FBRXBELDRDQUE0QztBQUM1QyxNQUFNLE1BQU0sR0FBRyxJQUFJLGdCQUFlLENBQUM7SUFDakMsZUFBZSxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsaUJBQWlCLElBQUksNkJBQTZCO0lBQy9FLFlBQVksRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLGNBQWMsSUFBSSw2QkFBNkI7SUFDekUsU0FBUyxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsaUJBQWlCO0lBQ3hDLFVBQVUsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLGtCQUFrQjtJQUMxQyxZQUFZLEVBQUUsSUFBQSx5QkFBYSxFQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsd0JBQXdCLENBQUM7SUFDakUsUUFBUSxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsZ0JBQWdCO0NBQ3ZDLENBQUMsQ0FBQztBQUVILE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUU7SUFDekIsT0FBTyxDQUFDLEtBQUssQ0FBQyx5QkFBeUIsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNoRCxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2xCLENBQUMsQ0FBQyxDQUFDIn0=
@@ -10,6 +10,7 @@ export interface ForestOAuthProviderOptions {
10
10
  envSecret: string;
11
11
  authSecret: string;
12
12
  logger: Logger;
13
+ agentUrl?: string;
13
14
  }
14
15
  /**
15
16
  * OAuth Server Provider that integrates with Forest Admin authentication
@@ -22,8 +23,9 @@ export default class ForestOAuthProvider implements OAuthServerProvider {
22
23
  private forestClient;
23
24
  private environmentId?;
24
25
  private environmentApiEndpoint?;
26
+ private agentUrl?;
25
27
  private logger;
26
- constructor({ forestServerUrl, forestAppUrl, envSecret, authSecret, logger, }: ForestOAuthProviderOptions);
28
+ constructor({ forestServerUrl, forestAppUrl, envSecret, authSecret, logger, agentUrl, }: ForestOAuthProviderOptions);
27
29
  initialize(): Promise<void>;
28
30
  private fetchEnvironmentId;
29
31
  /**
@@ -10,7 +10,7 @@ const jsonwebtoken_1 = __importDefault(require("jsonwebtoken"));
10
10
  * OAuth Server Provider that integrates with Forest Admin authentication
11
11
  */
12
12
  class ForestOAuthProvider {
13
- constructor({ forestServerUrl, forestAppUrl, envSecret, authSecret, logger, }) {
13
+ constructor({ forestServerUrl, forestAppUrl, envSecret, authSecret, logger, agentUrl, }) {
14
14
  // Skip PKCE validation to match original implementation
15
15
  this.skipLocalPkceValidation = true;
16
16
  this.forestServerUrl = forestServerUrl;
@@ -18,6 +18,7 @@ class ForestOAuthProvider {
18
18
  this.envSecret = envSecret;
19
19
  this.authSecret = authSecret;
20
20
  this.logger = logger;
21
+ this.agentUrl = agentUrl;
21
22
  this.forestClient = (0, forestadmin_client_1.default)({
22
23
  forestServerUrl: this.forestServerUrl,
23
24
  envSecret: this.envSecret,
@@ -244,7 +245,9 @@ class ForestOAuthProvider {
244
245
  userId: decoded.id,
245
246
  email: decoded.email,
246
247
  renderingId: decoded.renderingId,
247
- environmentApiEndpoint: this.environmentApiEndpoint,
248
+ // Tools call back into the agent at this URL. Prefer the configured internal agentUrl
249
+ // (self-hosted) and fall back to the environment's public api_endpoint.
250
+ environmentApiEndpoint: this.agentUrl ?? this.environmentApiEndpoint,
248
251
  forestServerToken: decoded.serverToken,
249
252
  },
250
253
  };
@@ -278,4 +281,4 @@ class ForestOAuthProvider {
278
281
  }
279
282
  }
280
283
  exports.default = ForestOAuthProvider;
281
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9yZXN0LW9hdXRoLXByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2ZvcmVzdC1vYXV0aC1wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQWVBLHlGQUFzRTtBQUN0RSwrRUFPeUQ7QUFDekQsZ0VBQXdDO0FBVXhDOztHQUVHO0FBQ0gsTUFBcUIsbUJBQW1CO0lBVXRDLFlBQVksRUFDVixlQUFlLEVBQ2YsWUFBWSxFQUNaLFNBQVMsRUFDVCxVQUFVLEVBQ1YsTUFBTSxHQUNxQjtRQStZN0Isd0RBQXdEO1FBQ3hELDRCQUF1QixHQUFHLElBQUksQ0FBQztRQS9ZN0IsSUFBSSxDQUFDLGVBQWUsR0FBRyxlQUFlLENBQUM7UUFDdkMsSUFBSSxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUM7UUFDakMsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7UUFDM0IsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7UUFDN0IsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDckIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFBLDRCQUF1QixFQUFDO1lBQzFDLGVBQWUsRUFBRSxJQUFJLENBQUMsZUFBZTtZQUNyQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVM7U0FDMUIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELEtBQUssQ0FBQyxVQUFVO1FBQ2QsSUFBSSxDQUFDO1lBQ0gsTUFBTSxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUNsQyxDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNmLDRFQUE0RTtZQUM1RSxzRkFBc0Y7WUFDdEYsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsd0RBQXdELEtBQUssRUFBRSxDQUFDLENBQUM7UUFDdkYsQ0FBQztJQUNILENBQUM7SUFFTyxLQUFLLENBQUMsa0JBQWtCO1FBQzlCLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFF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
284
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9yZXN0LW9hdXRoLXByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2ZvcmVzdC1vYXV0aC1wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQWVBLHlGQUFzRTtBQUN0RSwrRUFPeUQ7QUFDekQsZ0VBQXdDO0FBWXhDOztHQUVHO0FBQ0gsTUFBcUIsbUJBQW1CO0lBV3RDLFlBQVksRUFDVixlQUFlLEVBQ2YsWUFBWSxFQUNaLFNBQVMsRUFDVCxVQUFVLEVBQ1YsTUFBTSxFQUNOLFFBQVEsR0FDbUI7UUFrWjdCLHdEQUF3RDtRQUN4RCw0QkFBdUIsR0FBRyxJQUFJLENBQUM7UUFsWjdCLElBQUksQ0FBQyxlQUFlLEdBQUcsZUFBZSxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO1FBQzNCLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQzdCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBQSw0QkFBdUIsRUFBQztZQUMxQyxlQUFlLEVBQUUsSUFBSSxDQUFDLGVBQWU7WUFDckMsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTO1NBQzFCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxLQUFLLENBQUMsVUFBVTtRQUNkLElBQUksQ0FBQztZQUNILE1BQU0sSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFDbEMsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDZiw0RUFBNEU7WUFDNUUsc0ZBQXNGO1lBQ3RGLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLHdEQUF3RCxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZGLENBQUM7SUFDSCxDQUFDO0lBRU8sS0FBSyxD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
@@ -0,0 +1,17 @@
1
+ export type InProcessDispatchRequest = {
2
+ method: string;
3
+ path: string;
4
+ headers: Record<string, string>;
5
+ query?: Record<string, unknown>;
6
+ payload?: unknown;
7
+ timeoutMs?: number;
8
+ };
9
+ export type InProcessDispatchResponse = {
10
+ status: number;
11
+ body: unknown;
12
+ text: string;
13
+ };
14
+ export interface InProcessAgentDispatcher {
15
+ request(request: InProcessDispatchRequest): Promise<InProcessDispatchResponse>;
16
+ }
17
+ //# sourceMappingURL=in-process-agent-dispatcher.d.ts.map
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW4tcHJvY2Vzcy1hZ2VudC1kaXNwYXRjaGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2luLXByb2Nlc3MtYWdlbnQtZGlzcGF0Y2hlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0=
@@ -0,0 +1,22 @@
1
+ import type { InProcessAgentDispatcher } from './in-process-agent-dispatcher';
2
+ import { HttpRequester } from '@forestadmin/agent-client';
3
+ /**
4
+ * HttpRequester that reaches the agent in-process (via the dispatcher) instead of over the network,
5
+ * reusing HttpRequester's parse helpers so results and error shape stay identical to the HTTP path.
6
+ */
7
+ export default class InProcessHttpRequester extends HttpRequester {
8
+ private readonly bearerToken;
9
+ private readonly dispatcher;
10
+ constructor(bearerToken: string, dispatcher: InProcessAgentDispatcher);
11
+ stream(): Promise<void>;
12
+ query<Data = unknown>({ method, path, body, query, maxTimeAllowed, contentType, skipDeserialization, }: {
13
+ method: 'get' | 'post' | 'put' | 'delete';
14
+ path: string;
15
+ body?: Record<string, unknown>;
16
+ query?: Record<string, unknown>;
17
+ maxTimeAllowed?: number;
18
+ contentType?: 'application/json' | 'text/csv';
19
+ skipDeserialization?: boolean;
20
+ }): Promise<Data>;
21
+ }
22
+ //# sourceMappingURL=in-process-http-requester.d.ts.map
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const agent_client_1 = require("@forestadmin/agent-client");
4
+ /**
5
+ * HttpRequester that reaches the agent in-process (via the dispatcher) instead of over the network,
6
+ * reusing HttpRequester's parse helpers so results and error shape stay identical to the HTTP path.
7
+ */
8
+ class InProcessHttpRequester extends agent_client_1.HttpRequester {
9
+ constructor(bearerToken, dispatcher) {
10
+ // Sentinel host that never reaches the network: query() dispatches in-process, stream() throws.
11
+ super(bearerToken, { url: 'http://in-process.agent' });
12
+ this.bearerToken = bearerToken;
13
+ this.dispatcher = dispatcher;
14
+ }
15
+ // CSV export is not supported in-process; throw rather than fire a doomed request at the sentinel.
16
+ async stream() {
17
+ throw new Error('CSV streaming is not supported over the in-process MCP transport');
18
+ }
19
+ async query({ method, path, body, query, maxTimeAllowed, contentType, skipDeserialization, }) {
20
+ const { status, body: responseBody, text, } = await this.dispatcher.request({
21
+ method,
22
+ path,
23
+ headers: {
24
+ Authorization: `Bearer ${this.bearerToken}`,
25
+ 'Content-Type': contentType ?? 'application/json',
26
+ Accept: contentType ?? 'application/json',
27
+ },
28
+ query: { timezone: 'Europe/Paris', ...query },
29
+ payload: body,
30
+ timeoutMs: maxTimeAllowed,
31
+ });
32
+ if (status >= 400)
33
+ throw this.buildError(status, responseBody, text);
34
+ return this.deserialize(responseBody, text, skipDeserialization);
35
+ }
36
+ }
37
+ exports.default = InProcessHttpRequester;
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW4tcHJvY2Vzcy1odHRwLXJlcXVlc3Rlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9pbi1wcm9jZXNzLWh0dHAtcmVxdWVzdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBRUEsNERBQTBEO0FBRTFEOzs7R0FHRztBQUNILE1BQXFCLHNCQUF1QixTQUFRLDRCQUFhO0lBQy9ELFlBQ21CLFdBQW1CLEVBQ25CLFVBQW9DO1FBRXJELGdHQUFnRztRQUNoRyxLQUFLLENBQUMsV0FBVyxFQUFFLEVBQUUsR0FBRyxFQUFFLHlCQUF5QixFQUFFLENBQUMsQ0FBQztRQUp0QyxnQkFBVyxHQUFYLFdBQVcsQ0FBUTtRQUNuQixlQUFVLEdBQVYsVUFBVSxDQUEwQjtJQUl2RCxDQUFDO0lBRUQsbUdBQW1HO0lBQzFGLEtBQUssQ0FBQyxNQUFNO1FBQ25CLE1BQU0sSUFBSSxLQUFLLENBQUMsa0VBQWtFLENBQUMsQ0FBQztJQUN0RixDQUFDO0lBRVEsS0FBSyxDQUFDLEtBQUssQ0FBaUIsRUFDbkMsTUFBTSxFQUNOLElBQUksRUFDSixJQUFJLEVBQ0osS0FBSyxFQUNMLGNBQWMsRUFDZCxXQUFXLEVBQ1gsbUJBQW1CLEdBU3BCO1FBQ0MsTUFBTSxFQUNKLE1BQU0sRUFDTixJQUFJLEVBQUUsWUFBWSxFQUNsQixJQUFJLEdBQ0wsR0FBRyxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDO1lBQ2hDLE1BQU07WUFDTixJQUFJO1lBQ0osT0FBTyxFQUFFO2dCQUNQLGFBQWEsRUFBRSxVQUFVLElBQUksQ0FBQyxXQUFXLEVBQUU7Z0JBQzNDLGNBQWMsRUFBRSxXQUFXLElBQUksa0JBQWtCO2dCQUNqRCxNQUFNLEVBQUUsV0FBVyxJQUFJLGtCQUFrQjthQUMxQztZQUNELEtBQUssRUFBRSxFQUFFLFFBQVEsRUFBRSxjQUFjLEVBQUUsR0FBRyxLQUFLLEVBQUU7WUFDN0MsT0FBTyxFQUFFLElBQUk7WUFDYixTQUFTLEVBQUUsY0FBYztTQUMxQixDQUFDLENBQUM7UUFFSCxJQUFJLE1BQU0sSUFBSSxHQUFHO1lBQUUsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxZQUFZLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFFckUsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFPLFlBQVksRUFBRSxJQUFJLEVBQUUsbUJBQW1CLENBQUMsQ0FBQztJQUN6RSxDQUFDO0NBQ0Y7QUFwREQseUNBb0RDIn0=
package/dist/index.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  export { default as ForestMCPServer } from './server';
2
2
  export type { ForestMCPServerOptions, HttpCallback, ToolName } from './server';
3
+ export type { InProcessAgentDispatcher, InProcessDispatchRequest, InProcessDispatchResponse, } from './in-process-agent-dispatcher';
3
4
  export { MCP_PATHS, isMcpRoute, makeIsMcpRoute } from './mcp-paths';
4
5
  export { ForestServerClientImpl, createForestServerClient } from './http-client';
5
6
  export type { ForestServerClient, ActivityLogsServiceInterface, SchemaServiceInterface, CreateForestServerClientOptions, } from './http-client';
package/dist/index.js CHANGED
@@ -14,4 +14,4 @@ Object.defineProperty(exports, "makeIsMcpRoute", { enumerable: true, get: functi
14
14
  var http_client_1 = require("./http-client");
15
15
  Object.defineProperty(exports, "ForestServerClientImpl", { enumerable: true, get: function () { return http_client_1.ForestServerClientImpl; } });
16
16
  Object.defineProperty(exports, "createForestServerClient", { enumerable: true, get: function () { return http_client_1.createForestServerClient; } });
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEseUNBQXlDO0FBQ3pDLG1DQUFzRDtBQUE3QywwSEFBQSxPQUFPLE9BQW1CO0FBRW5DLHlDQUFvRTtBQUEzRCxzR0FBQSxTQUFTLE9BQUE7QUFBRSx1R0FBQSxVQUFVLE9BQUE7QUFBRSwyR0FBQSxjQUFjLE9BQUE7QUFDOUMsNkNBQWlGO0FBQXhFLHFIQUFBLHNCQUFzQixPQUFBO0FBQUUsdUhBQUEsd0JBQXdCLE9BQUEifQ==
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEseUNBQXlDO0FBQ3pDLG1DQUFzRDtBQUE3QywwSEFBQSxPQUFPLE9BQW1CO0FBT25DLHlDQUFvRTtBQUEzRCxzR0FBQSxTQUFTLE9BQUE7QUFBRSx1R0FBQSxVQUFVLE9BQUE7QUFBRSwyR0FBQSxjQUFjLE9BQUE7QUFDOUMsNkNBQWlGO0FBQXhFLHFIQUFBLHNCQUFzQixPQUFBO0FBQUUsdUhBQUEsd0JBQXdCLE9BQUEifQ==
package/dist/server.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  import './polyfills';
2
2
  import type { ForestServerClient } from './http-client';
3
+ import type { InProcessAgentDispatcher } from './in-process-agent-dispatcher';
3
4
  import type { Express } from 'express';
4
5
  import * as http from 'http';
5
6
  export declare const LOGO_URL = "https://forest-assets.s3.us-east-1.amazonaws.com/logo-green.png";
@@ -33,6 +34,16 @@ export interface ForestMCPServerOptions {
33
34
  * domain root.
34
35
  */
35
36
  basePath?: string;
37
+ /**
38
+ * Standalone MCP server only (set via FOREST_AGENT_URL). Internal URL the tools use to reach
39
+ * the agent's data layer, defaulting to the environment's public `api_endpoint`.
40
+ */
41
+ agentUrl?: string;
42
+ /**
43
+ * Set by the agent when mounted: tool calls then dispatch to the agent in-process (no socket)
44
+ * instead of reaching its public `api_endpoint` over HTTP.
45
+ */
46
+ agentDispatcher?: InProcessAgentDispatcher;
36
47
  }
37
48
  /**
38
49
  * Forest Admin MCP Server
@@ -52,6 +63,8 @@ export default class ForestMCPServer {
52
63
  private collectionNames;
53
64
  private enabledTools;
54
65
  private basePath;
66
+ private agentUrl?;
67
+ private agentDispatcher?;
55
68
  constructor(options?: ForestMCPServerOptions);
56
69
  private createDefaultForestServerClient;
57
70
  private fetchCollectionNames;
package/dist/server.js CHANGED
@@ -64,6 +64,7 @@ const get_action_form_1 = __importDefault(require("./tools/get-action-form"));
64
64
  const list_1 = __importDefault(require("./tools/list"));
65
65
  const list_related_1 = __importDefault(require("./tools/list-related"));
66
66
  const update_1 = __importDefault(require("./tools/update"));
67
+ const normalize_agent_url_1 = __importDefault(require("./utils/normalize-agent-url"));
67
68
  const schema_fetcher_1 = require("./utils/schema-fetcher");
68
69
  const sse_error_logger_1 = __importDefault(require("./utils/sse-error-logger"));
69
70
  const version_1 = require("./version");
@@ -120,6 +121,8 @@ class ForestMCPServer {
120
121
  this.logger = options?.logger || defaultLogger;
121
122
  this.enabledTools = this.resolveEnabledTools(options);
122
123
  this.basePath = (0, mcp_paths_1.normalizeMountPath)(options?.basePath);
124
+ this.agentUrl = (0, normalize_agent_url_1.default)(options?.agentUrl);
125
+ this.agentDispatcher = options?.agentDispatcher;
123
126
  // Use injected forestServerClient or create default
124
127
  this.forestServerClient = options?.forestServerClient ?? this.createDefaultForestServerClient();
125
128
  }
@@ -144,47 +147,23 @@ class ForestMCPServer {
144
147
  version: version_1.VERSION,
145
148
  icons: [{ src: exports.LOGO_URL, mimeType: 'image/png' }],
146
149
  });
150
+ const ctx = {
151
+ forestServerClient: this.forestServerClient,
152
+ logger: this.logger,
153
+ collectionNames: this.collectionNames,
154
+ agentDispatcher: this.agentDispatcher,
155
+ };
147
156
  const allTools = [
148
- {
149
- name: 'describeCollection',
150
- register: () => (0, describe_collection_1.default)(mcpServer, this.forestServerClient, this.logger, this.collectionNames),
151
- },
152
- {
153
- name: 'list',
154
- register: () => (0, list_1.default)(mcpServer, this.forestServerClient, this.logger, this.collectionNames),
155
- },
156
- {
157
- name: 'listRelated',
158
- register: () => (0, list_related_1.default)(mcpServer, this.forestServerClient, this.logger, this.collectionNames),
159
- },
160
- {
161
- name: 'create',
162
- register: () => (0, create_1.default)(mcpServer, this.forestServerClient, this.logger, this.collectionNames),
163
- },
164
- {
165
- name: 'update',
166
- register: () => (0, update_1.default)(mcpServer, this.forestServerClient, this.logger, this.collectionNames),
167
- },
168
- {
169
- name: 'delete',
170
- register: () => (0, delete_1.default)(mcpServer, this.forestServerClient, this.logger, this.collectionNames),
171
- },
172
- {
173
- name: 'associate',
174
- register: () => (0, associate_1.default)(mcpServer, this.forestServerClient, this.logger, this.collectionNames),
175
- },
176
- {
177
- name: 'dissociate',
178
- register: () => (0, dissociate_1.default)(mcpServer, this.forestServerClient, this.logger, this.collectionNames),
179
- },
180
- {
181
- name: 'getActionForm',
182
- register: () => (0, get_action_form_1.default)(mcpServer, this.forestServerClient, this.logger, this.collectionNames),
183
- },
184
- {
185
- name: 'executeAction',
186
- register: () => (0, execute_action_1.default)(mcpServer, this.forestServerClient, this.logger, this.collectionNames),
187
- },
157
+ { name: 'describeCollection', register: () => (0, describe_collection_1.default)(mcpServer, ctx) },
158
+ { name: 'list', register: () => (0, list_1.default)(mcpServer, ctx) },
159
+ { name: 'listRelated', register: () => (0, list_related_1.default)(mcpServer, ctx) },
160
+ { name: 'create', register: () => (0, create_1.default)(mcpServer, ctx) },
161
+ { name: 'update', register: () => (0, update_1.default)(mcpServer, ctx) },
162
+ { name: 'delete', register: () => (0, delete_1.default)(mcpServer, ctx) },
163
+ { name: 'associate', register: () => (0, associate_1.default)(mcpServer, ctx) },
164
+ { name: 'dissociate', register: () => (0, dissociate_1.default)(mcpServer, ctx) },
165
+ { name: 'getActionForm', register: () => (0, get_action_form_1.default)(mcpServer, ctx) },
166
+ { name: 'executeAction', register: () => (0, execute_action_1.default)(mcpServer, ctx) },
188
167
  ];
189
168
  const enabledToolEntries = allTools.filter(tool => this.enabledTools.has(tool.name));
190
169
  const disabledToolNames = allTools
@@ -324,6 +303,7 @@ class ForestMCPServer {
324
303
  envSecret,
325
304
  authSecret,
326
305
  logger: this.logger,
306
+ agentUrl: this.agentUrl,
327
307
  });
328
308
  await oauthProvider.initialize();
329
309
  // Use provided baseUrl or get it from the OAuth provider (environmentApiEndpoint)
@@ -506,4 +486,4 @@ class ForestMCPServer {
506
486
  }
507
487
  }
508
488
  exports.default = ForestMCPServer;
509
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3NlcnZlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxzREFBc0Q7QUFDdEQsc0VBQXNFO0FBQ3RFLHVCQUFxQjtBQUtyQiw4RkFBbUc7QUFDbkcsNEZBQTZGO0FBQzdGLHNGQUF1RjtBQUN2RiwwR0FBb0c7QUFDcEcsa0dBQW1HO0FBQ25HLCtFQUd5RDtBQUN6RCxvRUFBb0U7QUFDcEUsMEZBQW1HO0FBQ25HLGdEQUF3QjtBQUN4QixzREFBOEI7QUFDOUIsMkNBQTZCO0FBRTdCLG9GQUEwRDtBQUMxRCwrQ0FBeUQ7QUFDekQsMkNBQWlFO0FBQ2pFLGtFQUFxRDtBQUNyRCw0REFBK0M7QUFDL0MsNERBQStDO0FBQy9DLHNGQUF3RTtBQUN4RSxvRUFBdUQ7QUFDdkQsNEVBQThEO0FBQzlELDhFQUErRDtBQUMvRCx3REFBMkM7QUFDM0Msd0VBQTBEO0FBQzFELDREQUErQztBQUMvQywyREFBK0U7QUFDL0UsZ0ZBQXdFO0FBQ3hFLHVDQUEwQztBQUU3QixRQUFBLFFBQVEsR0FBRyxpRUFBaUUsQ0FBQztBQVcxRixTQUFTLGVBQWUsQ0FBQyxLQUFlO0lBQ3RDLElBQUksS0FBSyxLQUFLLE9BQU87UUFBRSxPQUFPLENBQUMsR0FBVyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2xFLElBQUksS0FBSyxLQUFLLE1BQU07UUFBRSxPQUFPLENBQUMsR0FBVyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBRWhFLE9BQU8sQ0FBQyxHQUFXLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDNUMsQ0FBQztBQUVELE1BQU0sYUFBYSxHQUFXLENBQUMsS0FBSyxFQUFFLE9B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
489
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3NlcnZlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxzREFBc0Q7QUFDdEQsc0VBQXNFO0FBQ3RFLHVCQUFxQjtBQU9yQiw4RkFBbUc7QUFDbkcsNEZBQTZGO0FBQzdGLHNGQUF1RjtBQUN2RiwwR0FBb0c7QUFDcEcsa0dBQW1HO0FBQ25HLCtFQUd5RDtBQUN6RCxvRUFBb0U7QUFDcEUsMEZBQW1HO0FBQ25HLGdEQUF3QjtBQUN4QixzREFBOEI7QUFDOUIsMkNBQTZCO0FBRTdCLG9GQUEwRDtBQUMxRCwrQ0FBeUQ7QUFDekQsMkNBQWlFO0FBQ2pFLGtFQUFxRDtBQUNyRCw0REFBK0M7QUFDL0MsNERBQStDO0FBQy9DLHNGQUF3RTtBQUN4RSxvRUFBdUQ7QUFDdkQsNEVBQThEO0FBQzlELDhFQUErRDtBQUMvRCx3REFBMkM7QUFDM0Msd0VBQTBEO0FBQzFELDREQUErQztBQUMvQyxzRkFBNEQ7QUFDNUQsMkRBQStFO0FBQy9FLGdGQUF3RTtBQUN4RSx1Q0FBMEM7QUFFN0IsUUFBQSxRQUFRLEdBQUcsaUVBQWlFLENBQUM7QUFXMUYsU0FBUyxlQUFlLENBQUMsS0FBZTtJQUN0QyxJQUFJLEtBQUssS0FBSyxPQUFPO1FBQUUsT0FBTyxDQUFDLEdBQVcsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNsRSxJQUFJLEtBQUssS0FBSyxNQUFNO1FBQUUsT0FBTyxDQUFDLEdBQVcsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUVoRSxPQUFPLENBQUMsR0FBVyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQzVDLENBQUM7QUFFRCxNQUFNLGFBQWEsR0FBVyxDQUFD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
@@ -0,0 +1,10 @@
1
+ import type { ForestServerClient } from './http-client';
2
+ import type { InProcessAgentDispatcher } from './in-process-agent-dispatcher';
3
+ import type { Logger } from './server';
4
+ export interface ToolContext {
5
+ forestServerClient: ForestServerClient;
6
+ logger: Logger;
7
+ collectionNames: string[];
8
+ agentDispatcher?: InProcessAgentDispatcher;
9
+ }
10
+ //# sourceMappingURL=tool-context.d.ts.map
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbC1jb250ZXh0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3Rvb2wtY29udGV4dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0=
@@ -1,5 +1,4 @@
1
- import type { ForestServerClient } from '../http-client';
2
- import type { Logger } from '../server';
1
+ import type { ToolContext } from '../tool-context';
3
2
  import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
4
- export default function declareAssociateTool(mcpServer: McpServer, forestServerClient: ForestServerClient, logger: Logger, collectionNames?: string[]): string;
3
+ export default function declareAssociateTool(mcpServer: McpServer, ctx: ToolContext): string;
5
4
  //# sourceMappingURL=associate.d.ts.map
@@ -20,14 +20,15 @@ function createAssociateArgumentShape(collectionNames) {
20
20
  .describe('ID of the record to associate with the parent'),
21
21
  };
22
22
  }
23
- function declareAssociateTool(mcpServer, forestServerClient, logger, collectionNames = []) {
23
+ function declareAssociateTool(mcpServer, ctx) {
24
+ const { forestServerClient, logger, collectionNames } = ctx;
24
25
  const argumentShape = createAssociateArgumentShape(collectionNames);
25
26
  return (0, tool_with_logging_1.default)(mcpServer, 'associate', {
26
27
  title: 'Associate records in a relation',
27
28
  description: 'Link a record to another through a one-to-many or many-to-many relation. For many-to-many relations, this creates a new entry in the join table.',
28
29
  inputSchema: argumentShape,
29
30
  }, async (options, extra) => {
30
- const { rpcClient } = (0, agent_caller_1.default)(extra);
31
+ const { rpcClient } = (0, agent_caller_1.default)(extra, ctx.agentDispatcher);
31
32
  return (0, with_activity_log_1.default)({
32
33
  forestServerClient,
33
34
  request: extra,
@@ -58,4 +59,4 @@ function declareAssociateTool(mcpServer, forestServerClient, logger, collectionN
58
59
  });
59
60
  }, logger);
60
61
  }
61
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzb2NpYXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Rvb2xzL2Fzc29jaWF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQStCQSx1Q0FxREM7QUFoRkQsNkJBQXdCO0FBRXhCLHlFQUFnRDtBQUNoRCxtRkFBaUU7QUFDakUsbUZBQXlEO0FBU3pELFNBQVMsNEJBQTRCLENBQUMsZUFBeUI7SUFDN0QsT0FBTztRQUNMLGNBQWMsRUFDWixlQUFlLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBQyxDQUFDLElBQUksQ0FBQyxlQUF3QyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQUMsQ0FBQyxNQUFNLEVBQUU7UUFDNUYsWUFBWSxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUMsb0RBQW9ELENBQUM7UUFDdkYsY0FBYyxFQUFFLE9BQUM7YUFDZCxLQUFLLENBQUMsQ0FBQyxPQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7YUFDL0IsUUFBUSxDQUFDLGdEQUFnRCxDQUFDO1FBQzdELGNBQWMsRUFBRSxPQUFDO2FBQ2QsS0FBSyxDQUFDLENBQUMsT0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO2FBQy9CLFFBQVEsQ0FBQywrQ0FBK0MsQ0FBQztLQUM3RCxDQUFDO0FBQ0osQ0FBQztBQUVELFNBQXdCLG9CQUFvQixDQUMxQyxTQUFvQixFQUNwQixrQkFBc0MsRUFDdEMsTUFBYyxFQUNkLGtCQUE0QixFQUFFO0lBRTlCLE1BQU0sYUFBYSxHQUFHLDRCQUE0QixDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBRXBFLE9BQU8sSUFBQSwyQkFBdUIsRUFDNUIsU0FBUyxFQUNULFdBQVcsRUFDWDtRQUNFLEtBQUssRUFBRSxpQ0FBaUM7UUFDeEMsV0FBVyxFQUNULGtKQUFrSjtRQUNwSixXQUFXLEVBQUUsYUFBYTtLQUMzQixFQUNELEtBQUssRUFBRSxPQUEwQixFQUFFLEtBQUssRUFBRSxFQUFFO1FBQzFDLE1BQU0sRUFBRSxTQUFTLEVBQUUsR0FBRyxJQUFBLHNCQUFXLEVBQUMsS0FBSyxDQUFDLENBQUM7UUFFekMsT0FBTyxJQUFBLDJCQUFlLEVBQUM7WUFDckIsa0JBQWtCO1lBQ2xCLE9BQU8sRUFBRSxLQUFLO1lBQ2QsTUFBTSxFQUFFLFFBQVE7WUFDaEIsT0FBTyxFQUFFO2dCQUNQLGNBQWMsRUFBRSxPQUFPLENBQUMsY0FBYztnQkFDdEMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxjQUFjO2dCQUNoQyxLQUFLLEVBQUUsY0FBYyxPQUFPLENBQUMsWUFBWSxpQkFBaUIsT0FBTyxDQUFDLGNBQWMsRUFBRTthQUNuRjtZQUNELE1BQU07WUFDTixTQUFTLEVBQUUsS0FBSyxJQUFJLEVBQUU7Z0JBQ3BCLE1BQU0sUUFBUSxHQUFHLFNBQVM7cUJBQ3ZCLFVBQVUsQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDO3FCQUNsQyxRQUFRLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUM7Z0JBRTFELE1BQU0sUUFBUSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUM7Z0JBRWpELE9BQU87b0JBQ0wsT0FBTyxFQUFFO3dCQUNQOzRCQUNFLElBQUksRUFBRSxNQUFNOzRCQUNaLElBQUksRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDO2dDQUNuQixPQUFPLEVBQUUsSUFBSTtnQ0FDYixPQUFPLEVBQUUsa0NBQWtDLE9BQU8sQ0FBQyxjQUFjLFNBQVMsT0FBTyxDQUFDLGNBQWMsSUFBSSxPQUFPLENBQUMsY0FBYyxzQkFBc0IsT0FBTyxDQUFDLFlBQVksR0FBRzs2QkFDeEssQ0FBQzt5QkFDSDtxQkFDRjtpQkFDRixDQUFDO1lBQ0osQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUMsRUFDRCxNQUFNLENBQ1AsQ0FBQztBQUNKLENBQUMifQ==
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzb2NpYXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Rvb2xzL2Fzc29jaWF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQThCQSx1Q0FpREM7QUE1RUQsNkJBQXdCO0FBRXhCLHlFQUFnRDtBQUNoRCxtRkFBaUU7QUFDakUsbUZBQXlEO0FBU3pELFNBQVMsNEJBQTRCLENBQUMsZUFBeUI7SUFDN0QsT0FBTztRQUNMLGNBQWMsRUFDWixlQUFlLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBQyxDQUFDLElBQUksQ0FBQyxlQUF3QyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQUMsQ0FBQyxNQUFNLEVBQUU7UUFDNUYsWUFBWSxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUMsb0RBQW9ELENBQUM7UUFDdkYsY0FBYyxFQUFFLE9BQUM7YUFDZCxLQUFLLENBQUMsQ0FBQyxPQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7YUFDL0IsUUFBUSxDQUFDLGdEQUFnRCxDQUFDO1FBQzdELGNBQWMsRUFBRSxPQUFDO2FBQ2QsS0FBSyxDQUFDLENBQUMsT0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO2FBQy9CLFFBQVEsQ0FBQywrQ0FBK0MsQ0FBQztLQUM3RCxDQUFDO0FBQ0osQ0FBQztBQUVELFNBQXdCLG9CQUFvQixDQUFDLFNBQW9CLEVBQUUsR0FBZ0I7SUFDakYsTUFBTSxFQUFFLGtCQUFrQixFQUFFLE1BQU0sRUFBRSxlQUFlLEVBQUUsR0FBRyxHQUFHLENBQUM7SUFDNUQsTUFBTSxhQUFhLEdBQUcsNEJBQTRCLENBQUMsZUFBZSxDQUFDLENBQUM7SUFFcEUsT0FBTyxJQUFBLDJCQUF1QixFQUM1QixTQUFTLEVBQ1QsV0FBVyxFQUNYO1FBQ0UsS0FBSyxFQUFFLGlDQUFpQztRQUN4QyxXQUFXLEVBQ1Qsa0pBQWtKO1FBQ3BKLFdBQVcsRUFBRSxhQUFhO0tBQzNCLEVBQ0QsS0FBSyxFQUFFLE9BQTBCLEVBQUUsS0FBSyxFQUFFLEVBQUU7UUFDMUMsTUFBTSxFQUFFLFNBQVMsRUFBRSxHQUFHLElBQUEsc0JBQVcsRUFBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBRTlELE9BQU8sSUFBQSwyQkFBZSxFQUFDO1lBQ3JCLGtCQUFrQjtZQUNsQixPQUFPLEVBQUUsS0FBSztZQUNkLE1BQU0sRUFBRSxRQUFRO1lBQ2hCLE9BQU8sRUFBRTtnQkFDUCxjQUFjLEVBQUUsT0FBTyxDQUFDLGNBQWM7Z0JBQ3RDLFFBQVEsRUFBRSxPQUFPLENBQUMsY0FBYztnQkFDaEMsS0FBSyxFQUFFLGNBQWMsT0FBTyxDQUFDLFlBQVksaUJBQWlCLE9BQU8sQ0FBQyxjQUFjLEVBQUU7YUFDbkY7WUFDRCxNQUFNO1lBQ04sU0FBUyxFQUFFLEtBQUssSUFBSSxFQUFFO2dCQUNwQixNQUFNLFFBQVEsR0FBRyxTQUFTO3FCQUN2QixVQUFVLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQztxQkFDbEMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDO2dCQUUxRCxNQUFNLFFBQVEsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDO2dCQUVqRCxPQUFPO29CQUNMLE9BQU8sRUFBRTt3QkFDUDs0QkFDRSxJQUFJLEVBQUUsTUFBTTs0QkFDWixJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQztnQ0FDbkIsT0FBTyxFQUFFLElBQUk7Z0NBQ2IsT0FBTyxFQUFFLGtDQUFrQyxPQUFPLENBQUMsY0FBYyxTQUFTLE9BQU8sQ0FBQyxjQUFjLElBQUksT0FBTyxDQUFDLGNBQWMsc0JBQXNCLE9BQU8sQ0FBQyxZQUFZLEdBQUc7NkJBQ3hLLENBQUM7eUJBQ0g7cUJBQ0Y7aUJBQ0YsQ0FBQztZQUNKLENBQUM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDLEVBQ0QsTUFBTSxDQUNQLENBQUM7QUFDSixDQUFDIn0=
@@ -1,5 +1,4 @@
1
- import type { ForestServerClient } from '../http-client';
2
- import type { Logger } from '../server';
1
+ import type { ToolContext } from '../tool-context';
3
2
  import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
4
- export default function declareCreateTool(mcpServer: McpServer, forestServerClient: ForestServerClient, logger: Logger, collectionNames?: string[]): string;
3
+ export default function declareCreateTool(mcpServer: McpServer, ctx: ToolContext): string;
5
4
  //# sourceMappingURL=create.d.ts.map
@@ -25,14 +25,15 @@ function createArgumentShape(collectionNames) {
25
25
  attributes: attributesWithPreprocess.describe('The attributes of the record to create. Must be an object with field names as keys.'),
26
26
  };
27
27
  }
28
- function declareCreateTool(mcpServer, forestServerClient, logger, collectionNames = []) {
28
+ function declareCreateTool(mcpServer, ctx) {
29
+ const { forestServerClient, logger, collectionNames } = ctx;
29
30
  const argumentShape = createArgumentShape(collectionNames);
30
31
  return (0, tool_with_logging_1.default)(mcpServer, 'create', {
31
32
  title: 'Create a record',
32
33
  description: 'Create a new record in the specified collection.',
33
34
  inputSchema: argumentShape,
34
35
  }, async (options, extra) => {
35
- const { rpcClient } = (0, agent_caller_1.default)(extra);
36
+ const { rpcClient } = (0, agent_caller_1.default)(extra, ctx.agentDispatcher);
36
37
  return (0, with_activity_log_1.default)({
37
38
  forestServerClient,
38
39
  request: extra,
@@ -48,4 +49,4 @@ function declareCreateTool(mcpServer, forestServerClient, logger, collectionName
48
49
  });
49
50
  }, logger);
50
51
  }
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Rvb2xzL2NyZWF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQW9DQSxvQ0FvQ0M7QUFwRUQsNkJBQXdCO0FBRXhCLHlFQUFnRDtBQUNoRCxtRkFBaUU7QUFDakUsbUZBQXlEO0FBRXpELCtFQUErRTtBQUMvRSxNQUFNLHdCQUF3QixHQUFHLE9BQUMsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUU7SUFDbEQsSUFBSSxPQUFPLEdBQUcsS0FBSyxRQUFRO1FBQUUsT0FBTyxHQUFHLENBQUM7SUFFeEMsSUFBSSxDQUFDO1FBQ0gsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFBQyxNQUFNLENBQUM7UUFDUCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7QUFDSCxDQUFDLEVBQUUsT0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsT0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQztBQU90QyxTQUFTLG1CQUFtQixDQUFDLGVBQXlCO0lBQ3BELE9BQU87UUFDTCxjQUFjLEVBQ1osZUFBZSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQUMsQ0FBQyxJQUFJLENBQUMsZUFBd0MsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFDLENBQUMsTUFBTSxFQUFFO1FBQzVGLFVBQVUsRUFBRSx3QkFBd0IsQ0FBQyxRQUFRLENBQzNDLHFGQUFxRixDQUN0RjtLQUNGLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBd0IsaUJBQWlCLENBQ3ZDLFNBQW9CLEVBQ3BCLGtCQUFzQyxFQUN0QyxNQUFjLEVBQ2Qsa0JBQTRCLEVBQUU7SUFFOUIsTUFBTSxhQUFhLEdBQUcsbUJBQW1CLENBQUMsZUFBZSxDQUFDLENBQUM7SUFFM0QsT0FBTyxJQUFBLDJCQUF1QixFQUM1QixTQUFTLEVBQ1QsUUFBUSxFQUNSO1FBQ0UsS0FBSyxFQUFFLGlCQUFpQjtRQUN4QixXQUFXLEVBQUUsa0RBQWtEO1FBQy9ELFdBQVcsRUFBRSxhQUFhO0tBQzNCLEVBQ0QsS0FBSyxFQUFFLE9BQXVCLEVBQUUsS0FBSyxFQUFFLEVBQUU7UUFDdkMsTUFBTSxFQUFFLFNBQVMsRUFBRSxHQUFHLElBQUEsc0JBQVcsRUFBQyxLQUFLLENBQUMsQ0FBQztRQUV6QyxPQUFPLElBQUEsMkJBQWUsRUFBQztZQUNyQixrQkFBa0I7WUFDbEIsT0FBTyxFQUFFLEtBQUs7WUFDZCxNQUFNLEVBQUUsUUFBUTtZQUNoQixPQUFPLEVBQUUsRUFBRSxjQUFjLEVBQUUsT0FBTyxDQUFDLGNBQWMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO1lBQ3JFLE1BQU07WUFDTixTQUFTLEVBQUUsS0FBSyxJQUFJLEVBQUU7Z0JBQ3BCLE1BQU0sTUFBTSxHQUFHLE1BQU0sU0FBUztxQkFDM0IsVUFBVSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUM7cUJBQ2xDLE1BQU0sQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7Z0JBRTlCLE9BQU8sRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO1lBQzNFLENBQUM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDLEVBQ0QsTUFBTSxDQUNQLENBQUM7QUFDSixDQUFDIn0=
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Rvb2xzL2NyZWF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQW1DQSxvQ0FnQ0M7QUFoRUQsNkJBQXdCO0FBRXhCLHlFQUFnRDtBQUNoRCxtRkFBaUU7QUFDakUsbUZBQXlEO0FBRXpELCtFQUErRTtBQUMvRSxNQUFNLHdCQUF3QixHQUFHLE9BQUMsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUU7SUFDbEQsSUFBSSxPQUFPLEdBQUcsS0FBSyxRQUFRO1FBQUUsT0FBTyxHQUFHLENBQUM7SUFFeEMsSUFBSSxDQUFDO1FBQ0gsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFBQyxNQUFNLENBQUM7UUFDUCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7QUFDSCxDQUFDLEVBQUUsT0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsT0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQztBQU90QyxTQUFTLG1CQUFtQixDQUFDLGVBQXlCO0lBQ3BELE9BQU87UUFDTCxjQUFjLEVBQ1osZUFBZSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQUMsQ0FBQyxJQUFJLENBQUMsZUFBd0MsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFDLENBQUMsTUFBTSxFQUFFO1FBQzVGLFVBQVUsRUFBRSx3QkFBd0IsQ0FBQyxRQUFRLENBQzNDLHFGQUFxRixDQUN0RjtLQUNGLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBd0IsaUJBQWlCLENBQUMsU0FBb0IsRUFBRSxHQUFnQjtJQUM5RSxNQUFNLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxFQUFFLGVBQWUsRUFBRSxHQUFHLEdBQUcsQ0FBQztJQUM1RCxNQUFNLGFBQWEsR0FBRyxtQkFBbUIsQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUUzRCxPQUFPLElBQUEsMkJBQXVCLEVBQzVCLFNBQVMsRUFDVCxRQUFRLEVBQ1I7UUFDRSxLQUFLLEVBQUUsaUJBQWlCO1FBQ3hCLFdBQVcsRUFBRSxrREFBa0Q7UUFDL0QsV0FBVyxFQUFFLGFBQWE7S0FDM0IsRUFDRCxLQUFLLEVBQUUsT0FBdUIsRUFBRSxLQUFLLEVBQUUsRUFBRTtRQUN2QyxNQUFNLEVBQUUsU0FBUyxFQUFFLEdBQUcsSUFBQSxzQkFBVyxFQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUM7UUFFOUQsT0FBTyxJQUFBLDJCQUFlLEVBQUM7WUFDckIsa0JBQWtCO1lBQ2xCLE9BQU8sRUFBRSxLQUFLO1lBQ2QsTUFBTSxFQUFFLFFBQVE7WUFDaEIsT0FBTyxFQUFFLEVBQUUsY0FBYyxFQUFFLE9BQU8sQ0FBQyxjQUFjLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRTtZQUNyRSxNQUFNO1lBQ04sU0FBUyxFQUFFLEtBQUssSUFBSSxFQUFFO2dCQUNwQixNQUFNLE1BQU0sR0FBRyxNQUFNLFNBQVM7cUJBQzNCLFVBQVUsQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDO3FCQUNsQyxNQUFNLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO2dCQUU5QixPQUFPLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUMzRSxDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxFQUNELE1BQU0sQ0FDUCxDQUFDO0FBQ0osQ0FBQyJ9
@@ -1,5 +1,4 @@
1
- import type { ForestServerClient } from '../http-client';
2
- import type { Logger } from '../server';
1
+ import type { ToolContext } from '../tool-context';
3
2
  import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
4
- export default function declareDeleteTool(mcpServer: McpServer, forestServerClient: ForestServerClient, logger: Logger, collectionNames?: string[]): string;
3
+ export default function declareDeleteTool(mcpServer: McpServer, ctx: ToolContext): string;
5
4
  //# sourceMappingURL=delete.d.ts.map
@@ -16,14 +16,15 @@ function createArgumentShape(collectionNames) {
16
16
  .describe('The IDs of the records to delete.'),
17
17
  };
18
18
  }
19
- function declareDeleteTool(mcpServer, forestServerClient, logger, collectionNames = []) {
19
+ function declareDeleteTool(mcpServer, ctx) {
20
+ const { forestServerClient, logger, collectionNames } = ctx;
20
21
  const argumentShape = createArgumentShape(collectionNames);
21
22
  return (0, tool_with_logging_1.default)(mcpServer, 'delete', {
22
23
  title: 'Delete records',
23
24
  description: 'Delete one or more records from the specified collection.',
24
25
  inputSchema: argumentShape,
25
26
  }, async (options, extra) => {
26
- const { rpcClient } = (0, agent_caller_1.default)(extra);
27
+ const { rpcClient } = (0, agent_caller_1.default)(extra, ctx.agentDispatcher);
27
28
  // Cast to satisfy the type system - the API accepts both string[] and number[]
28
29
  const recordIds = options.recordIds;
29
30
  return (0, with_activity_log_1.default)({
@@ -45,4 +46,4 @@ function declareDeleteTool(mcpServer, forestServerClient, logger, collectionName
45
46
  });
46
47
  }, logger);
47
48
  }
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVsZXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Rvb2xzL2RlbGV0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQXlCQSxvQ0EyQ0M7QUFoRUQsNkJBQXdCO0FBRXhCLHlFQUFnRDtBQUNoRCxtRkFBaUU7QUFDakUsbUZBQXlEO0FBT3pELFNBQVMsbUJBQW1CLENBQUMsZUFBeUI7SUFDcEQsT0FBTztRQUNMLGNBQWMsRUFDWixlQUFlLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBQyxDQUFDLElBQUksQ0FBQyxlQUF3QyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQUMsQ0FBQyxNQUFNLEVBQUU7UUFDNUYsU0FBUyxFQUFFLE9BQUM7YUFDVCxLQUFLLENBQUMsT0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDO2FBQ3hDLFFBQVEsQ0FBQyxtQ0FBbUMsQ0FBQztLQUNqRCxDQUFDO0FBQ0osQ0FBQztBQUVELFNBQXdCLGlCQUFpQixDQUN2QyxTQUFvQixFQUNwQixrQkFBc0MsRUFDdEMsTUFBYyxFQUNkLGtCQUE0QixFQUFFO0lBRTlCLE1BQU0sYUFBYSxHQUFHLG1CQUFtQixDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBRTNELE9BQU8sSUFBQSwyQkFBdUIsRUFDNUIsU0FBUyxFQUNULFFBQVEsRUFDUjtRQUNFLEtBQUssRUFBRSxnQkFBZ0I7UUFDdkIsV0FBVyxFQUFFLDJEQUEyRDtRQUN4RSxXQUFXLEVBQUUsYUFBYTtLQUMzQixFQUNELEtBQUssRUFBRSxPQUF1QixFQUFFLEtBQUssRUFBRSxFQUFFO1FBQ3ZDLE1BQU0sRUFBRSxTQUFTLEVBQUUsR0FBRyxJQUFBLHNCQUFXLEVBQUMsS0FBSyxDQUFDLENBQUM7UUFFekMsK0VBQStFO1FBQy9FLE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQyxTQUFnQyxDQUFDO1FBRTNELE9BQU8sSUFBQSwyQkFBZSxFQUFDO1lBQ3JCLGtCQUFrQjtZQUNsQixPQUFPLEVBQUUsS0FBSztZQUNkLE1BQU0sRUFBRSxRQUFRO1lBQ2hCLE9BQU8sRUFBRTtnQkFDUCxjQUFjLEVBQUUsT0FBTyxDQUFDLGNBQWM7Z0JBQ3RDLEtBQUssRUFBRSxTQUFTO2dCQUNoQixTQUFTO2FBQ1Y7WUFDRCxNQUFNO1lBQ04sU0FBUyxFQUFFLEtBQUssSUFBSSxFQUFFO2dCQUNwQixNQUFNLFNBQVMsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztnQkFFckUsT0FBTztvQkFDTCxPQUFPLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxZQUFZLEVBQUUsU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQztpQkFDdEYsQ0FBQztZQUNKLENBQUM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDLEVBQ0QsTUFBTSxDQUNQLENBQUM7QUFDSixDQUFDIn0=
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVsZXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Rvb2xzL2RlbGV0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQXdCQSxvQ0F1Q0M7QUE1REQsNkJBQXdCO0FBRXhCLHlFQUFnRDtBQUNoRCxtRkFBaUU7QUFDakUsbUZBQXlEO0FBT3pELFNBQVMsbUJBQW1CLENBQUMsZUFBeUI7SUFDcEQsT0FBTztRQUNMLGNBQWMsRUFDWixlQUFlLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBQyxDQUFDLElBQUksQ0FBQyxlQUF3QyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQUMsQ0FBQyxNQUFNLEVBQUU7UUFDNUYsU0FBUyxFQUFFLE9BQUM7YUFDVCxLQUFLLENBQUMsT0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDO2FBQ3hDLFFBQVEsQ0FBQyxtQ0FBbUMsQ0FBQztLQUNqRCxDQUFDO0FBQ0osQ0FBQztBQUVELFNBQXdCLGlCQUFpQixDQUFDLFNBQW9CLEVBQUUsR0FBZ0I7SUFDOUUsTUFBTSxFQUFFLGtCQUFrQixFQUFFLE1BQU0sRUFBRSxlQUFlLEVBQUUsR0FBRyxHQUFHLENBQUM7SUFDNUQsTUFBTSxhQUFhLEdBQUcsbUJBQW1CLENBQUMsZUFBZSxDQUFDLENBQUM7SUFFM0QsT0FBTyxJQUFBLDJCQUF1QixFQUM1QixTQUFTLEVBQ1QsUUFBUSxFQUNSO1FBQ0UsS0FBSyxFQUFFLGdCQUFnQjtRQUN2QixXQUFXLEVBQUUsMkRBQTJEO1FBQ3hFLFdBQVcsRUFBRSxhQUFhO0tBQzNCLEVBQ0QsS0FBSyxFQUFFLE9BQXVCLEVBQUUsS0FBSyxFQUFFLEVBQUU7UUFDdkMsTUFBTSxFQUFFLFNBQVMsRUFBRSxHQUFHLElBQUEsc0JBQVcsRUFBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBRTlELCtFQUErRTtRQUMvRSxNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsU0FBZ0MsQ0FBQztRQUUzRCxPQUFPLElBQUEsMkJBQWUsRUFBQztZQUNyQixrQkFBa0I7WUFDbEIsT0FBTyxFQUFFLEtBQUs7WUFDZCxNQUFNLEVBQUUsUUFBUTtZQUNoQixPQUFPLEVBQUU7Z0JBQ1AsY0FBYyxFQUFFLE9BQU8sQ0FBQyxjQUFjO2dCQUN0QyxLQUFLLEVBQUUsU0FBUztnQkFDaEIsU0FBUzthQUNWO1lBQ0QsTUFBTTtZQUNOLFNBQVMsRUFBRSxLQUFLLElBQUksRUFBRTtnQkFDcEIsTUFBTSxTQUFTLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7Z0JBRXJFLE9BQU87b0JBQ0wsT0FBTyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsWUFBWSxFQUFFLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUM7aUJBQ3RGLENBQUM7WUFDSixDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxFQUNELE1BQU0sQ0FDUCxDQUFDO0FBQ0osQ0FBQyJ9
@@ -1,5 +1,4 @@
1
- import type { ForestServerClient } from '../http-client';
2
- import type { Logger } from '../server';
1
+ import type { ToolContext } from '../tool-context';
3
2
  import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
4
- export default function declareDescribeCollectionTool(mcpServer: McpServer, forestServerClient: ForestServerClient, logger: Logger, collectionNames?: string[]): string;
3
+ export default function declareDescribeCollectionTool(mcpServer: McpServer, ctx: ToolContext): string;
5
4
  //# sourceMappingURL=describe-collection.d.ts.map
@@ -52,7 +52,8 @@ function mapRelationType(relationship) {
52
52
  return relationship || 'unknown';
53
53
  }
54
54
  }
55
- function declareDescribeCollectionTool(mcpServer, forestServerClient, logger, collectionNames = []) {
55
+ function declareDescribeCollectionTool(mcpServer, ctx) {
56
+ const { forestServerClient, logger, collectionNames } = ctx;
56
57
  const argumentShape = createDescribeCollectionArgumentShape(collectionNames);
57
58
  return (0, tool_with_logging_1.default)(mcpServer, 'describeCollection', {
58
59
  annotations: { readOnlyHint: true },
@@ -69,7 +70,7 @@ Polymorphic relations (isPolymorphic=true) point to multiple collections. When c
69
70
  Check \`_meta\` for data availability context.`,
70
71
  inputSchema: argumentShape,
71
72
  }, async (options, extra) => {
72
- const { rpcClient } = (0, agent_caller_1.default)(extra);
73
+ const { rpcClient } = (0, agent_caller_1.default)(extra, ctx.agentDispatcher);
73
74
  return (0, with_activity_log_1.default)({
74
75
  forestServerClient,
75
76
  request: extra,
@@ -154,4 +155,4 @@ Check \`_meta\` for data availability context.`,
154
155
  });
155
156
  }, logger);
156
157
  }
157
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVzY3JpYmUtY29sbGVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90b29scy9kZXNjcmliZS1jb2xsZWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBZ0ZBLGdEQWdJQztBQTVNRCw2QkFBd0I7QUFFeEIseUVBQWdEO0FBQ2hELDREQUlpQztBQUNqQyxtRkFBaUU7QUFDakUsbUZBQXlEO0FBVXpELFNBQVMscUNBQXFDLENBQUMsZUFBeUI7SUFDdEUsT0FBTztRQUNMLGNBQWMsRUFDWixlQUFlLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBQyxDQUFDLElBQUksQ0FBQyxlQUF3QyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQUMsQ0FBQyxNQUFNLEVBQUU7S0FDN0YsQ0FBQztBQUNKLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsS0FBSyxVQUFVLG9CQUFvQixDQUNqQyxTQUFzRCxFQUN0RCxjQUFzQixFQUN0QixNQUFjO0lBRWQsSUFBSSxDQUFDO1FBQ0gsTUFBTSxZQUFZLEdBQUcsTUFBTSxTQUFTLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBRS9FLE9BQU8sWUFBWSxDQUFDO0lBQ3RCLENBQUM7SUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1FBQ2YsTUFBTSxZQUFZLEdBQUcsS0FBSyxZQUFZLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzVFLE1BQU0sS0FBSyxHQUFHLFlBQVksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksWUFBWSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUVqRixJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ1YsTUFBTSxDQUNKLE9BQU8sRUFDUCxtREFBbUQsY0FBYyx5QkFBeUIsQ0FDM0YsQ0FBQztZQUVG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
158
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVzY3JpYmUtY29sbGVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90b29scy9kZXNjcmliZS1jb2xsZWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBZ0ZBLGdEQStIQztBQTNNRCw2QkFBd0I7QUFFeEIseUVBQWdEO0FBQ2hELDREQUlpQztBQUNqQyxtRkFBaUU7QUFDakUsbUZBQXlEO0FBVXpELFNBQVMscUNBQXFDLENBQUMsZUFBeUI7SUFDdEUsT0FBTztRQUNMLGNBQWMsRUFDWixlQUFlLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBQyxDQUFDLElBQUksQ0FBQyxlQUF3QyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQUMsQ0FBQyxNQUFNLEVBQUU7S0FDN0YsQ0FBQztBQUNKLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsS0FBSyxVQUFVLG9CQUFvQixDQUNqQyxTQUFzRCxFQUN0RCxjQUFzQixFQUN0QixNQUFjO0lBRWQsSUFBSSxDQUFDO1FBQ0gsTUFBTSxZQUFZLEdBQUcsTUFBTSxTQUFTLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBRS9FLE9BQU8sWUFBWSxDQUFDO0lBQ3RCLENBQUM7SUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1FBQ2YsTUFBTSxZQUFZLEdBQUcsS0FBSyxZQUFZLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzVFLE1BQU0sS0FBSyxHQUFHLFlBQVksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksWUFBWSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUVqRixJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ1YsTUFBTSxDQUNKLE9BQU8sRUFDUCxtREFBbUQsY0FBYyx5QkFBeUIsQ0FDM0YsQ0FBQztZQUVG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
@@ -1,5 +1,4 @@
1
- import type { ForestServerClient } from '../http-client';
2
- import type { Logger } from '../server';
1
+ import type { ToolContext } from '../tool-context';
3
2
  import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
4
- export default function declareDissociateTool(mcpServer: McpServer, forestServerClient: ForestServerClient, logger: Logger, collectionNames?: string[]): string;
3
+ export default function declareDissociateTool(mcpServer: McpServer, ctx: ToolContext): string;
5
4
  //# sourceMappingURL=dissociate.d.ts.map
@@ -20,14 +20,15 @@ function createDissociateArgumentShape(collectionNames) {
20
20
  .describe('IDs of the records to dissociate from the parent'),
21
21
  };
22
22
  }
23
- function declareDissociateTool(mcpServer, forestServerClient, logger, collectionNames = []) {
23
+ function declareDissociateTool(mcpServer, ctx) {
24
+ const { forestServerClient, logger, collectionNames } = ctx;
24
25
  const argumentShape = createDissociateArgumentShape(collectionNames);
25
26
  return (0, tool_with_logging_1.default)(mcpServer, 'dissociate', {
26
27
  title: 'Dissociate records from a relation',
27
28
  description: 'Unlink records from a one-to-many or many-to-many relation. For many-to-many relations, this removes entries from the join table without deleting the target records.',
28
29
  inputSchema: argumentShape,
29
30
  }, async (options, extra) => {
30
- const { rpcClient } = (0, agent_caller_1.default)(extra);
31
+ const { rpcClient } = (0, agent_caller_1.default)(extra, ctx.agentDispatcher);
31
32
  return (0, with_activity_log_1.default)({
32
33
  forestServerClient,
33
34
  request: extra,
@@ -58,4 +59,4 @@ function declareDissociateTool(mcpServer, forestServerClient, logger, collection
58
59
  });
59
60
  }, logger);
60
61
  }
61
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzc29jaWF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90b29scy9kaXNzb2NpYXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBK0JBLHdDQXFEQztBQWhGRCw2QkFBd0I7QUFFeEIseUVBQWdEO0FBQ2hELG1GQUFpRTtBQUNqRSxtRkFBeUQ7QUFTekQsU0FBUyw2QkFBNkIsQ0FBQyxlQUF5QjtJQUM5RCxPQUFPO1FBQ0wsY0FBYyxFQUNaLGVBQWUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFDLENBQUMsSUFBSSxDQUFDLGVBQXdDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBQyxDQUFDLE1BQU0sRUFBRTtRQUM1RixZQUFZLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyxvREFBb0QsQ0FBQztRQUN2RixjQUFjLEVBQUUsT0FBQzthQUNkLEtBQUssQ0FBQyxDQUFDLE9BQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQzthQUMvQixRQUFRLENBQUMsZ0RBQWdELENBQUM7UUFDN0QsZUFBZSxFQUFFLE9BQUM7YUFDZixLQUFLLENBQUMsT0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDO2FBQ3hDLFFBQVEsQ0FBQyxrREFBa0QsQ0FBQztLQUNoRSxDQUFDO0FBQ0osQ0FBQztBQUVELFNBQXdCLHFCQUFxQixDQUMzQyxTQUFvQixFQUNwQixrQkFBc0MsRUFDdEMsTUFBYyxFQUNkLGtCQUE0QixFQUFFO0lBRTlCLE1BQU0sYUFBYSxHQUFHLDZCQUE2QixDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBRXJFLE9BQU8sSUFBQSwyQkFBdUIsRUFDNUIsU0FBUyxFQUNULFlBQVksRUFDWjtRQUNFLEtBQUssRUFBRSxvQ0FBb0M7UUFDM0MsV0FBVyxFQUNULHVLQUF1SztRQUN6SyxXQUFXLEVBQUUsYUFBYTtLQUMzQixFQUNELEtBQUssRUFBRSxPQUEyQixFQUFFLEtBQUssRUFBRSxFQUFFO1FBQzNDLE1BQU0sRUFBRSxTQUFTLEVBQUUsR0FBRyxJQUFBLHNCQUFXLEVBQUMsS0FBSyxDQUFDLENBQUM7UUFFekMsT0FBTyxJQUFBLDJCQUFlLEVBQUM7WUFDckIsa0JBQWtCO1lBQ2xCLE9BQU8sRUFBRSxLQUFLO1lBQ2QsTUFBTSxFQUFFLFFBQVE7WUFDaEIsT0FBTyxFQUFFO2dCQUNQLGNBQWMsRUFBRSxPQUFPLENBQUMsY0FBYztnQkFDdEMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxjQUFjO2dCQUNoQyxLQUFLLEVBQUUsZUFBZSxPQUFPLENBQUMsWUFBWSxVQUFVLE9BQU8sQ0FBQyxlQUFlLENBQUMsTUFBTSxZQUFZO2FBQy9GO1lBQ0QsTUFBTTtZQUNOLFNBQVMsRUFBRSxLQUFLLElBQUksRUFBRTtnQkFDcEIsTUFBTSxRQUFRLEdBQUcsU0FBUztxQkFDdkIsVUFBVSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUM7cUJBQ2xDLFFBQVEsQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQztnQkFFMUQsTUFBTSxRQUFRLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQztnQkFFbkQsT0FBTztvQkFDTCxPQUFPLEVBQUU7d0JBQ1A7NEJBQ0UsSUFBSSxFQUFFLE1BQU07NEJBQ1osSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUM7Z0NBQ25CLE9BQU8sRUFBRSxJQUFJO2dDQUNiLE9BQU8sRUFBRSw0QkFBNEIsT0FBTyxDQUFDLGVBQWUsQ0FBQyxNQUFNLG1CQUFtQixPQUFPLENBQUMsY0FBYyxJQUFJLE9BQU8sQ0FBQyxjQUFjLHNCQUFzQixPQUFPLENBQUMsWUFBWSxHQUFHOzZCQUNwTCxDQUFDO3lCQUNIO3FCQUNGO2lCQUNGLENBQUM7WUFDSixDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxFQUNELE1BQU0sQ0FDUCxDQUFDO0FBQ0osQ0FBQyJ9
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzc29jaWF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90b29scy9kaXNzb2NpYXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBOEJBLHdDQWlEQztBQTVFRCw2QkFBd0I7QUFFeEIseUVBQWdEO0FBQ2hELG1GQUFpRTtBQUNqRSxtRkFBeUQ7QUFTekQsU0FBUyw2QkFBNkIsQ0FBQyxlQUF5QjtJQUM5RCxPQUFPO1FBQ0wsY0FBYyxFQUNaLGVBQWUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFDLENBQUMsSUFBSSxDQUFDLGVBQXdDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBQyxDQUFDLE1BQU0sRUFBRTtRQUM1RixZQUFZLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyxvREFBb0QsQ0FBQztRQUN2RixjQUFjLEVBQUUsT0FBQzthQUNkLEtBQUssQ0FBQyxDQUFDLE9BQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQzthQUMvQixRQUFRLENBQUMsZ0RBQWdELENBQUM7UUFDN0QsZUFBZSxFQUFFLE9BQUM7YUFDZixLQUFLLENBQUMsT0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDO2FBQ3hDLFFBQVEsQ0FBQyxrREFBa0QsQ0FBQztLQUNoRSxDQUFDO0FBQ0osQ0FBQztBQUVELFNBQXdCLHFCQUFxQixDQUFDLFNBQW9CLEVBQUUsR0FBZ0I7SUFDbEYsTUFBTSxFQUFFLGtCQUFrQixFQUFFLE1BQU0sRUFBRSxlQUFlLEVBQUUsR0FBRyxHQUFHLENBQUM7SUFDNUQsTUFBTSxhQUFhLEdBQUcsNkJBQTZCLENBQUMsZUFBZSxDQUFDLENBQUM7SUFFckUsT0FBTyxJQUFBLDJCQUF1QixFQUM1QixTQUFTLEVBQ1QsWUFBWSxFQUNaO1FBQ0UsS0FBSyxFQUFFLG9DQUFvQztRQUMzQyxXQUFXLEVBQ1QsdUtBQXVLO1FBQ3pLLFdBQVcsRUFBRSxhQUFhO0tBQzNCLEVBQ0QsS0FBSyxFQUFFLE9BQTJCLEVBQUUsS0FBSyxFQUFFLEVBQUU7UUFDM0MsTUFBTSxFQUFFLFNBQVMsRUFBRSxHQUFHLElBQUEsc0JBQVcsRUFBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBRTlELE9BQU8sSUFBQSwyQkFBZSxFQUFDO1lBQ3JCLGtCQUFrQjtZQUNsQixPQUFPLEVBQUUsS0FBSztZQUNkLE1BQU0sRUFBRSxRQUFRO1lBQ2hCLE9BQU8sRUFBRTtnQkFDUCxjQUFjLEVBQUUsT0FBTyxDQUFDLGNBQWM7Z0JBQ3RDLFFBQVEsRUFBRSxPQUFPLENBQUMsY0FBYztnQkFDaEMsS0FBSyxFQUFFLGVBQWUsT0FBTyxDQUFDLFlBQVksVUFBVSxPQUFPLENBQUMsZUFBZSxDQUFDLE1BQU0sWUFBWTthQUMvRjtZQUNELE1BQU07WUFDTixTQUFTLEVBQUUsS0FBSyxJQUFJLEVBQUU7Z0JBQ3BCLE1BQU0sUUFBUSxHQUFHLFNBQVM7cUJBQ3ZCLFVBQVUsQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDO3FCQUNsQyxRQUFRLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUM7Z0JBRTFELE1BQU0sUUFBUSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUM7Z0JBRW5ELE9BQU87b0JBQ0wsT0FBTyxFQUFFO3dCQUNQOzRCQUNFLElBQUksRUFBRSxNQUFNOzRCQUNaLElBQUksRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDO2dDQUNuQixPQUFPLEVBQUUsSUFBSTtnQ0FDYixPQUFPLEVBQUUsNEJBQTRCLE9BQU8sQ0FBQyxlQUFlLENBQUMsTUFBTSxtQkFBbUIsT0FBTyxDQUFDLGNBQWMsSUFBSSxPQUFPLENBQUMsY0FBYyxzQkFBc0IsT0FBTyxDQUFDLFlBQVksR0FBRzs2QkFDcEwsQ0FBQzt5QkFDSDtxQkFDRjtpQkFDRixDQUFDO1lBQ0osQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUMsRUFDRCxNQUFNLENBQ1AsQ0FBQztBQUNKLENBQUMifQ==
@@ -1,5 +1,4 @@
1
- import type { ForestServerClient } from '../http-client';
2
- import type { Logger } from '../server';
1
+ import type { ToolContext } from '../tool-context';
3
2
  import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
4
- export default function declareExecuteActionTool(mcpServer: McpServer, forestServerClient: ForestServerClient, logger: Logger, collectionNames?: string[]): string;
3
+ export default function declareExecuteActionTool(mcpServer: McpServer, ctx: ToolContext): string;
5
4
  //# sourceMappingURL=execute-action.d.ts.map
@@ -9,7 +9,8 @@ const action_helpers_1 = require("../utils/action-helpers");
9
9
  const agent_caller_1 = require("../utils/agent-caller");
10
10
  const tool_with_logging_1 = __importDefault(require("../utils/tool-with-logging"));
11
11
  const with_activity_log_1 = __importDefault(require("../utils/with-activity-log"));
12
- function declareExecuteActionTool(mcpServer, forestServerClient, logger, collectionNames = []) {
12
+ function declareExecuteActionTool(mcpServer, ctx) {
13
+ const { forestServerClient, logger, collectionNames } = ctx;
13
14
  const argumentShape = {
14
15
  ...(0, action_helpers_1.createActionArgumentShape)(collectionNames),
15
16
  reasoning: zod_1.z
@@ -30,7 +31,7 @@ Required workflow:
30
31
  If you call executeAction with missing required fields, it will return an error with the missing fields instead of executing the action.`,
31
32
  inputSchema: argumentShape,
32
33
  }, async (options, extra) => {
33
- const { rpcClient } = await (0, agent_caller_1.buildClientWithActions)(extra, forestServerClient);
34
+ const { rpcClient } = await (0, agent_caller_1.buildClientWithActions)(extra, forestServerClient, ctx.agentDispatcher);
34
35
  // Cast to satisfy the type system - the API accepts both string[] and number[]
35
36
  const recordIds = (options.recordIds ?? []);
36
37
  return (0, with_activity_log_1.default)({
@@ -66,4 +67,4 @@ If you call executeAction with missing required fields, it will return an error
66
67
  });
67
68
  }, logger);
68
69
  }
69
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhlY3V0ZS1hY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdG9vbHMvZXhlY3V0ZS1hY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFtQkEsMkNBNEVDO0FBM0ZELDZCQUF3QjtBQUV4Qiw0REFBb0U7QUFDcEUsd0RBQStEO0FBQy9ELG1GQUFpRTtBQUNqRSxtRkFBeUQ7QUFVekQsU0FBd0Isd0JBQXdCLENBQzlDLFNBQW9CLEVBQ3BCLGtCQUFzQyxFQUN0QyxNQUFjLEVBQ2Qsa0JBQTRCLEVBQUU7SUFFOUIsTUFBTSxhQUFhLEdBQUc7UUFDcEIsR0FBRyxJQUFBLDBDQUF5QixFQUFDLGVBQWUsQ0FBQztRQUM3QyxTQUFTLEVBQUUsT0FBQzthQUNULE1BQU0sRUFBRTthQUNSLFFBQVEsRUFBRTthQUNWLFFBQVEsQ0FDUCw0REFBNEQ7WUFDMUQsaUZBQWlGLENBQ3BGO0tBQ0osQ0FBQztJQUVGLE9BQU8sSUFBQSwyQkFBdUIsRUFDNUIsU0FBUyxFQUNULGVBQWUsRUFDZjtRQUNFLEtBQUssRUFBRSxtQkFBbUI7UUFDMUIsV0FBVyxFQUFFOzs7Ozs7O3lJQU9zSDtRQUNuSSxXQUFXLEVBQUUsYUFBYTtLQUMzQixFQUNELEtBQUssRUFBRSxPQUE4QixFQUFFLEtBQUssRUFBRSxFQUFFO1FBQzlDLE1BQU0sRUFBRSxTQUFTLEVBQUUsR0FBRyxNQUFNLElBQUEscUNBQXNCLEVBQUMsS0FBSyxFQUFFLGtCQUFrQixDQUFDLENBQUM7UUFFOUUsK0VBQStFO1FBQy9FLE1BQU0sU0FBUyxHQUFHLENBQUMsT0FBTyxDQUFDLFNBQVMsSUFBSSxFQUFFLENBQXdCLENBQUM7UUFFbkUsT0FBTyxJQUFBLDJCQUFlLEVBQUM7WUFDckIsa0JBQWtCO1lBQ2xCLE9BQU8sRUFBRSxLQUFLO1lBQ2QsTUFBTSxFQUFFLFFBQVE7WUFDaEIsT0FBTyxFQUFFO2dCQUNQLGNBQWMsRUFBRSxPQUFPLENBQUMsY0FBYztnQkFDdEMsU0FBUztnQkFDVCxLQUFLLEVBQUUseUJBQXlCLE9BQU8sQ0FBQyxVQUFVLEdBQUc7YUFDdEQ7WUFDRCxNQUFNO1lBQ04sU0FBUyxFQUFFLEtBQUssSUFBSSxFQUFFO2dCQUNwQixNQUFNLE1BQU0sR0FBRyxNQUFNLFNBQVM7cUJBQzNCLFVBQVUsQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDO3FCQUNsQyxNQUFNLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUM7Z0JBRTdDLElBQUksT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO29CQUNuQixNQUFNLE1BQU0sQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUN6QyxDQUFDO2dCQUVELE1BQU0sTUFBTSxHQUFHLE1BQU0sTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFLHNCQUFzQixFQUFFLE9BQU8sQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO2dCQUVuRixJQUFJLG1CQUFtQixJQUFJLE1BQU0sRUFBRSxDQUFDO29CQUNsQyxPQUFPO3dCQUNMLE9BQU8sRUFBRTs0QkFDUDtnQ0FDRSxJQUFJLEVBQUUsTUFBTTtnQ0FDWixJQUFJLEVBQUUscUlBQXFJOzZCQUM1STt5QkFDRjtxQkFDRixDQUFDO2dCQUNKLENBQUM7Z0JBRUQsT0FBTyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUN2RSxDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxFQUNELE1BQU0sQ0FDUCxDQUFDO0FBQ0osQ0FBQyJ9
70
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhlY3V0ZS1hY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdG9vbHMvZXhlY3V0ZS1hY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFrQkEsMkNBNEVDO0FBM0ZELDZCQUF3QjtBQUV4Qiw0REFBb0U7QUFDcEUsd0RBQStEO0FBQy9ELG1GQUFpRTtBQUNqRSxtRkFBeUQ7QUFVekQsU0FBd0Isd0JBQXdCLENBQUMsU0FBb0IsRUFBRSxHQUFnQjtJQUNyRixNQUFNLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxFQUFFLGVBQWUsRUFBRSxHQUFHLEdBQUcsQ0FBQztJQUM1RCxNQUFNLGFBQWEsR0FBRztRQUNwQixHQUFHLElBQUEsMENBQXlCLEVBQUMsZUFBZSxDQUFDO1FBQzdDLFNBQVMsRUFBRSxPQUFDO2FBQ1QsTUFBTSxFQUFFO2FBQ1IsUUFBUSxFQUFFO2FBQ1YsUUFBUSxDQUNQLDREQUE0RDtZQUMxRCxpRkFBaUYsQ0FDcEY7S0FDSixDQUFDO0lBRUYsT0FBTyxJQUFBLDJCQUF1QixFQUM1QixTQUFTLEVBQ1QsZUFBZSxFQUNmO1FBQ0UsS0FBSyxFQUFFLG1CQUFtQjtRQUMxQixXQUFXLEVBQUU7Ozs7Ozs7eUlBT3NIO1FBQ25JLFdBQVcsRUFBRSxhQUFhO0tBQzNCLEVBQ0QsS0FBSyxFQUFFLE9BQThCLEVBQUUsS0FBSyxFQUFFLEVBQUU7UUFDOUMsTUFBTSxFQUFFLFNBQVMsRUFBRSxHQUFHLE1BQU0sSUFBQSxxQ0FBc0IsRUFDaEQsS0FBSyxFQUNMLGtCQUFrQixFQUNsQixHQUFHLENBQUMsZUFBZSxDQUNwQixDQUFDO1FBRUYsK0VBQStFO1FBQy9FLE1BQU0sU0FBUyxHQUFHLENBQUMsT0FBTyxDQUFDLFNBQVMsSUFBSSxFQUFFLENBQXdCLENBQUM7UUFFbkUsT0FBTyxJQUFBLDJCQUFlLEVBQUM7WUFDckIsa0JBQWtCO1lBQ2xCLE9BQU8sRUFBRSxLQUFLO1lBQ2QsTUFBTSxFQUFFLFFBQVE7WUFDaEIsT0FBTyxFQUFFO2dCQUNQLGNBQWMsRUFBRSxPQUFPLENBQUMsY0FBYztnQkFDdEMsU0FBUztnQkFDVCxLQUFLLEVBQUUseUJBQXlCLE9BQU8sQ0FBQyxVQUFVLEdBQUc7YUFDdEQ7WUFDRCxNQUFNO1lBQ04sU0FBUyxFQUFFLEtBQUssSUFBSSxFQUFFO2dCQUNwQixNQUFNLE1BQU0sR0FBRyxNQUFNLFNBQVM7cUJBQzNCLFVBQVUsQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDO3FCQUNsQyxNQUFNLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUM7Z0JBRTdDLElBQUksT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO29CQUNuQixNQUFNLE1BQU0sQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUN6QyxDQUFDO2dCQUVELE1BQU0sTUFBTSxHQUFHLE1BQU0sTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFLHNCQUFzQixFQUFFLE9BQU8sQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO2dCQUVuRixJQUFJLG1CQUFtQixJQUFJLE1BQU0sRUFBRSxDQUFDO29CQUNsQyxPQUFPO3dCQUNMLE9BQU8sRUFBRTs0QkFDUDtnQ0FDRSxJQUFJLEVBQUUsTUFBTTtnQ0FDWixJQUFJLEVBQUUscUlBQXFJOzZCQUM1STt5QkFDRjtxQkFDRixDQUFDO2dCQUNKLENBQUM7Z0JBRUQsT0FBTyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUN2RSxDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxFQUNELE1BQU0sQ0FDUCxDQUFDO0FBQ0osQ0FBQyJ9
@@ -1,5 +1,4 @@
1
- import type { ForestServerClient } from '../http-client';
2
- import type { Logger } from '../server';
1
+ import type { ToolContext } from '../tool-context';
3
2
  import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
4
- export default function declareGetActionFormTool(mcpServer: McpServer, forestServerClient: ForestServerClient, logger: Logger, collectionNames?: string[]): string;
3
+ export default function declareGetActionFormTool(mcpServer: McpServer, ctx: ToolContext): string;
5
4
  //# sourceMappingURL=get-action-form.d.ts.map
@@ -7,7 +7,8 @@ exports.default = declareGetActionFormTool;
7
7
  const action_helpers_1 = require("../utils/action-helpers");
8
8
  const agent_caller_1 = require("../utils/agent-caller");
9
9
  const tool_with_logging_1 = __importDefault(require("../utils/tool-with-logging"));
10
- function declareGetActionFormTool(mcpServer, forestServerClient, logger, collectionNames = []) {
10
+ function declareGetActionFormTool(mcpServer, ctx) {
11
+ const { forestServerClient, logger, collectionNames } = ctx;
11
12
  const argumentShape = (0, action_helpers_1.createActionArgumentShape)(collectionNames);
12
13
  return (0, tool_with_logging_1.default)(mcpServer, 'getActionForm', {
13
14
  annotations: { readOnlyHint: true },
@@ -28,7 +29,7 @@ The response includes:
28
29
  - skippedFields: Array of field names that were skipped because they no longer exist in the form (due to dynamic form behavior)`,
29
30
  inputSchema: argumentShape,
30
31
  }, async (options, extra) => {
31
- const { rpcClient } = await (0, agent_caller_1.buildClientWithActions)(extra, forestServerClient);
32
+ const { rpcClient } = await (0, agent_caller_1.buildClientWithActions)(extra, forestServerClient, ctx.agentDispatcher);
32
33
  // TODO: Enhance when more methods are available in the agent client helper
33
34
  // https://github.com/ForestAdmin/forestadmin-experimental/pull/140
34
35
  const recordIds = (options.recordIds ?? []);
@@ -72,4 +73,4 @@ The response includes:
72
73
  };
73
74
  }, logger);
74
75
  }
75
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LWFjdGlvbi1mb3JtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Rvb2xzL2dldC1hY3Rpb24tZm9ybS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQWVBLDJDQXNGQztBQWpHRCw0REFBb0U7QUFDcEUsd0RBQStEO0FBQy9ELG1GQUFpRTtBQVNqRSxTQUF3Qix3QkFBd0IsQ0FDOUMsU0FBb0IsRUFDcEIsa0JBQXNDLEVBQ3RDLE1BQWMsRUFDZCxrQkFBNEIsRUFBRTtJQUU5QixNQUFNLGFBQWEsR0FBRyxJQUFBLDBDQUF5QixFQUFDLGVBQWUsQ0FBQyxDQUFDO0lBRWpFLE9BQU8sSUFBQSwyQkFBdUIsRUFDNUIsU0FBUyxFQUNULGVBQWUsRUFDZjtRQUNFLFdBQVcsRUFBRSxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUU7UUFDbkMsS0FBSyxFQUFFLHNCQUFzQjtRQUM3QixXQUFXLEVBQUU7Ozs7Ozs7Ozs7Ozs7Z0lBYTZHO1FBQzFILFdBQVcsRUFBRSxhQUFhO0tBQzNCLEVBQ0QsS0FBSyxFQUFFLE9BQThCLEVBQUUsS0FBSyxFQUFFLEVBQUU7UUFDOUMsTUFBTSxFQUFFLFNBQVMsRUFBRSxHQUFHLE1BQU0sSUFBQSxxQ0FBc0IsRUFBQyxLQUFLLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztRQUU5RSwyRUFBMkU7UUFDM0UsbUVBQW1FO1FBQ25FLE1BQU0sU0FBUyxHQUFHLENBQUMsT0FBTyxDQUFDLFNBQVMsSUFBSSxFQUFFLENBQXdCLENBQUM7UUFDbkUsTUFBTSxNQUFNLEdBQUcsTUFBTSxTQUFTO2FBQzNCLFVBQVUsQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDO2FBQ2xDLE1BQU0sQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztRQUU3QyxJQUFJLGFBQWEsR0FBYSxFQUFFLENBQUM7UUFFakMsSUFBSSxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDbkIsYUFBYSxHQUFHLE1BQU0sTUFBTSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDOUQsQ0FBQztRQUVELE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUVsQyxNQUFNLGNBQWMsR0FBRyxNQUFNO2FBQzFCLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxVQUFVLEVBQUUsQ0FBQzthQUNuQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLEtBQUssU0FBUyxJQUFJLEtBQUssQ0FBQyxRQUFRLEVBQUUsS0FBSyxJQUFJLENBQUM7YUFDNUUsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFFakMsTUFBTSxVQUFVLEdBQUcsY0FBYyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUM7UUFFL0MsT0FBTztZQUNMLE9BQU8sRUFBRTtnQkFDUDtvQkFDRSxJQUFJLEVBQUUsTUFBTTtvQkFDWixJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQzt3QkFDbkIsTUFBTSxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUU7NEJBQ3pCLE1BQU0sU0FBUyxHQUFHO2dDQUNoQixJQUFJLEVBQUUsS0FBSyxDQUFDLE9BQU8sRUFBRTtnQ0FDckIsSUFBSSxFQUFFLEtBQUssQ0FBQyxPQUFPLEVBQUU7Z0NBQ3JCLEtBQUssRUFBRSxLQUFLLENBQUMsUUFBUSxFQUFFO2dDQUN2QixVQUFVLEVBQUUsS0FBSyxDQUFDLFVBQVUsRUFBRSxJQUFJLEtBQUs7NkJBQ3hDLENBQUM7NEJBRUYsSUFBSSxLQUFLLENBQUMsT0FBTyxFQUFFLEtBQUssTUFBTSxFQUFFLENBQUM7Z0NBQy9CLE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7Z0NBRXZELE9BQU8sRUFBRSxHQUFHLFNBQVMsRUFBRSxVQUFVLEVBQUUsU0FBUyxDQUFDLFVBQVUsRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDOzRCQUN0RSxDQUFDOzRCQUVELE9BQU8sU0FBUyxDQUFDO3dCQUNuQixDQUFDLENBQUM7d0JBQ0YsVUFBVTt3QkFDVixjQUFjO3dCQUNkLGFBQWE7cUJBQ2QsQ0FBQztpQkFDSDthQUNGO1NBQ0YsQ0FBQztJQUNKLENBQUMsRUFDRCxNQUFNLENBQ1AsQ0FBQztBQUNKLENBQUMifQ==
76
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LWFjdGlvbi1mb3JtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Rvb2xzL2dldC1hY3Rpb24tZm9ybS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQWNBLDJDQXNGQztBQWpHRCw0REFBb0U7QUFDcEUsd0RBQStEO0FBQy9ELG1GQUFpRTtBQVNqRSxTQUF3Qix3QkFBd0IsQ0FBQyxTQUFvQixFQUFFLEdBQWdCO0lBQ3JGLE1BQU0sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLEVBQUUsZUFBZSxFQUFFLEdBQUcsR0FBRyxDQUFDO0lBQzVELE1BQU0sYUFBYSxHQUFHLElBQUEsMENBQXlCLEVBQUMsZUFBZSxDQUFDLENBQUM7SUFFakUsT0FBTyxJQUFBLDJCQUF1QixFQUM1QixTQUFTLEVBQ1QsZUFBZSxFQUNmO1FBQ0UsV0FBVyxFQUFFLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRTtRQUNuQyxLQUFLLEVBQUUsc0JBQXNCO1FBQzdCLFdBQVcsRUFBRTs7Ozs7Ozs7Ozs7OztnSUFhNkc7UUFDMUgsV0FBVyxFQUFFLGFBQWE7S0FDM0IsRUFDRCxLQUFLLEVBQUUsT0FBOEIsRUFBRSxLQUFLLEVBQUUsRUFBRTtRQUM5QyxNQUFNLEVBQUUsU0FBUyxFQUFFLEdBQUcsTUFBTSxJQUFBLHFDQUFzQixFQUNoRCxLQUFLLEVBQ0wsa0JBQWtCLEVBQ2xCLEdBQUcsQ0FBQyxlQUFlLENBQ3BCLENBQUM7UUFFRiwyRUFBMkU7UUFDM0UsbUVBQW1FO1FBQ25FLE1BQU0sU0FBUyxHQUFHLENBQUMsT0FBTyxDQUFDLFNBQVMsSUFBSSxFQUFFLENBQXdCLENBQUM7UUFDbkUsTUFBTSxNQUFNLEdBQUcsTUFBTSxTQUFTO2FBQzNCLFVBQVUsQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDO2FBQ2xDLE1BQU0sQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztRQUU3QyxJQUFJLGFBQWEsR0FBYSxFQUFFLENBQUM7UUFFakMsSUFBSSxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDbkIsYUFBYSxHQUFHLE1BQU0sTUFBTSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDOUQsQ0FBQztRQUVELE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUVsQyxNQUFNLGNBQWMsR0FBRyxNQUFNO2FBQzFCLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxVQUFVLEVBQUUsQ0FBQzthQUNuQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLEtBQUssU0FBUyxJQUFJLEtBQUssQ0FBQyxRQUFRLEVBQUUsS0FBSyxJQUFJLENBQUM7YUFDNUUsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFFakMsTUFBTSxVQUFVLEdBQUcsY0FBYyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUM7UUFFL0MsT0FBTztZQUNMLE9BQU8sRUFBRTtnQkFDUDtvQkFDRSxJQUFJLEVBQUUsTUFBTTtvQkFDWixJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQzt3QkFDbkIsTUFBTSxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUU7NEJBQ3pCLE1BQU0sU0FBUyxHQUFHO2dDQUNoQixJQUFJLEVBQUUsS0FBSyxDQUFDLE9BQU8sRUFBRTtnQ0FDckIsSUFBSSxFQUFFLEtBQUssQ0FBQyxPQUFPLEVBQUU7Z0NBQ3JCLEtBQUssRUFBRSxLQUFLLENBQUMsUUFBUSxFQUFFO2dDQUN2QixVQUFVLEVBQUUsS0FBSyxDQUFDLFVBQVUsRUFBRSxJQUFJLEtBQUs7NkJBQ3hDLENBQUM7NEJBRUYsSUFBSSxLQUFLLENBQUMsT0FBTyxFQUFFLEtBQUssTUFBTSxFQUFFLENBQUM7Z0NBQy9CLE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7Z0NBRXZELE9BQU8sRUFBRSxHQUFHLFNBQVMsRUFBRSxVQUFVLEVBQUUsU0FBUyxDQUFDLFVBQVUsRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDOzRCQUN0RSxDQUFDOzRCQUVELE9BQU8sU0FBUyxDQUFDO3dCQUNuQixDQUFDLENBQUM7d0JBQ0YsVUFBVTt3QkFDVixjQUFjO3dCQUNkLGFBQWE7cUJBQ2QsQ0FBQztpQkFDSDthQUNGO1NBQ0YsQ0FBQztJQUNKLENBQUMsRUFDRCxNQUFNLENBQ1AsQ0FBQztBQUNKLENBQUMifQ==
@@ -1,5 +1,4 @@
1
- import type { ForestServerClient } from '../http-client';
2
- import type { Logger } from '../server';
1
+ import type { ToolContext } from '../tool-context';
3
2
  import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
4
- export default function declareListRelatedTool(mcpServer: McpServer, forestServerClient: ForestServerClient, logger: Logger, collectionNames?: string[]): string;
3
+ export default function declareListRelatedTool(mcpServer: McpServer, ctx: ToolContext): string;
5
4
  //# sourceMappingURL=list-related.d.ts.map
@@ -43,7 +43,8 @@ function createErrorEnhancer(forestServerClient, options, logger) {
43
43
  return errorMessage;
44
44
  };
45
45
  }
46
- function declareListRelatedTool(mcpServer, forestServerClient, logger, collectionNames = []) {
46
+ function declareListRelatedTool(mcpServer, ctx) {
47
+ const { forestServerClient, logger, collectionNames } = ctx;
47
48
  const listArgumentShape = createHasManyArgumentShape(collectionNames);
48
49
  return (0, tool_with_logging_1.default)(mcpServer, 'listRelated', {
49
50
  annotations: { readOnlyHint: true },
@@ -51,7 +52,7 @@ function declareListRelatedTool(mcpServer, forestServerClient, logger, collectio
51
52
  description: 'Retrieve a list of records from a one-to-many or many-to-many relation.',
52
53
  inputSchema: listArgumentShape,
53
54
  }, async (options, extra) => {
54
- const { rpcClient } = (0, agent_caller_1.default)(extra);
55
+ const { rpcClient } = (0, agent_caller_1.default)(extra, ctx.agentDispatcher);
55
56
  const labelParts = [];
56
57
  if (options.search) {
57
58
  labelParts.push('search');
@@ -92,4 +93,4 @@ function declareListRelatedTool(mcpServer, forestServerClient, logger, collectio
92
93
  });
93
94
  }, logger);
94
95
  }
95
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1yZWxhdGVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Rvb2xzL2xpc3QtcmVsYXRlZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQXdFQSx5Q0FtRUM7QUFySUQsNkJBQXdCO0FBRXhCLGlDQUFpRDtBQUNqRCx5RUFBZ0Q7QUFDaEQsNERBQW1GO0FBQ25GLG1GQUFpRTtBQUNqRSxtRkFBeUQ7QUFFekQsU0FBUywwQkFBMEIsQ0FBQyxlQUF5QjtJQUMzRCxPQUFPO1FBQ0wsR0FBRyxJQUFBLDhCQUF1QixFQUFDLGVBQWUsQ0FBQztRQUMzQyxZQUFZLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRTtRQUN4QixjQUFjLEVBQUUsT0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztLQUNsRCxDQUFDO0FBQ0osQ0FBQztBQU9EOzs7R0FHRztBQUNILFNBQVMsbUJBQW1CLENBQzFCLGtCQUFzQyxFQUN0QyxPQUF3QixFQUN4QixNQUFjO0lBRWQsT0FBTyxLQUFLLEVBQUUsWUFBb0IsRUFBRSxFQUFFO1FBQ3BDLElBQUksQ0FBQztZQUNILE1BQU0sTUFBTSxHQUFHLElBQUEsc0NBQXFCLEVBQ2xDLE1BQU0sSUFBQSxrQ0FBaUIsRUFBQyxrQkFBa0IsQ0FBQyxFQUMzQyxPQUFPLENBQUMsY0FBYyxDQUN2QixDQUFDO1lBRUYsTUFBTSxlQUFlLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FDbkMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsWUFBWSxLQUFLLFNBQVMsSUFBSSxLQUFLLENBQUMsWUFBWSxLQUFLLGVBQWUsQ0FDcEYsQ0FBQztZQUVGLElBQ0UsWUFBWSxFQUFFLFdBQVcsRUFBRSxFQUFFLFFBQVEsQ0FBQyxXQUFXLENBQUM7Z0JBQ2xELENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxD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
96
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1yZWxhdGVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Rvb2xzL2xpc3QtcmVsYXRlZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQXlFQSx5Q0ErREM7QUFqSUQsNkJBQXdCO0FBRXhCLGlDQUFpRDtBQUNqRCx5RUFBZ0Q7QUFDaEQsNERBQW1GO0FBQ25GLG1GQUFpRTtBQUNqRSxtRkFBeUQ7QUFFekQsU0FBUywwQkFBMEIsQ0FBQyxlQUF5QjtJQUMzRCxPQUFPO1FBQ0wsR0FBRyxJQUFBLDhCQUF1QixFQUFDLGVBQWUsQ0FBQztRQUMzQyxZQUFZLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRTtRQUN4QixjQUFjLEVBQUUsT0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztLQUNsRCxDQUFDO0FBQ0osQ0FBQztBQU9EOzs7R0FHRztBQUNILFNBQVMsbUJBQW1CLENBQzFCLGtCQUFzQyxFQUN0QyxPQUF3QixFQUN4QixNQUFjO0lBRWQsT0FBTyxLQUFLLEVBQUUsWUFBb0IsRUFBRSxFQUFFO1FBQ3BDLElBQUksQ0FBQztZQUNILE1BQU0sTUFBTSxHQUFHLElBQUEsc0NBQXFCLEVBQ2xDLE1BQU0sSUFBQSxrQ0FBaUIsRUFBQyxrQkFBa0IsQ0FBQyxFQUMzQyxPQUFPLENBQUMsY0FBYyxDQUN2QixDQUFDO1lBRUYsTUFBTSxlQUFlLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FDbkMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsWUFBWSxLQUFLLFNBQVMsSUFBSSxLQUFLLENBQUMsWUFBWSxLQUFLLGVBQWUsQ0FDcEYsQ0FBQztZQUVGLElBQ0UsWUFBWSxFQUFFLFdBQVcsRUFBRSxFQUFFLFFBQVEsQ0FBQyxXQUFXLENBQUM7Z0JBQ2xELENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxD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
@@ -1,5 +1,4 @@
1
- import type { ForestServerClient } from '../http-client';
2
- import type { Logger } from '../server';
1
+ import type { ToolContext } from '../tool-context';
3
2
  import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
4
3
  import { z } from 'zod';
5
4
  declare const listArgumentSchema: z.ZodObject<{
@@ -37,6 +36,6 @@ export declare function createListArgumentShape(collectionNames: string[]): {
37
36
  }, z.core.$strip>>;
38
37
  enableCount: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
39
38
  };
40
- export default function declareListTool(mcpServer: McpServer, forestServerClient: ForestServerClient, logger: Logger, collectionNames?: string[]): string;
39
+ export default function declareListTool(mcpServer: McpServer, ctx: ToolContext): string;
41
40
  export {};
42
41
  //# sourceMappingURL=list.d.ts.map
@@ -64,7 +64,8 @@ function createListArgumentShape(collectionNames) {
64
64
  collectionName: collectionNames.length > 0 ? zod_1.z.enum(collectionNames) : zod_1.z.string(),
65
65
  };
66
66
  }
67
- function declareListTool(mcpServer, forestServerClient, logger, collectionNames = []) {
67
+ function declareListTool(mcpServer, ctx) {
68
+ const { forestServerClient, logger, collectionNames } = ctx;
68
69
  const listArgumentShape = createListArgumentShape(collectionNames);
69
70
  return (0, tool_with_logging_1.default)(mcpServer, 'list', {
70
71
  annotations: { readOnlyHint: true },
@@ -72,7 +73,7 @@ function declareListTool(mcpServer, forestServerClient, logger, collectionNames
72
73
  description: 'Retrieve a list of records from the specified collection.',
73
74
  inputSchema: listArgumentShape,
74
75
  }, async (options, extra) => {
75
- const { rpcClient } = (0, agent_caller_1.default)(extra);
76
+ const { rpcClient } = (0, agent_caller_1.default)(extra, ctx.agentDispatcher);
76
77
  let actionType = 'index';
77
78
  if (options.search) {
78
79
  actionType = 'search';
@@ -121,4 +122,4 @@ function declareListTool(mcpServer, forestServerClient, logger, collectionNames
121
122
  });
122
123
  }, logger);
123
124
  }
124
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90b29scy9saXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBcUVBLDBEQU1DO0FBRUQsa0NBK0VDO0FBdkpELDZCQUF3QjtBQUV4QiwrREFBNkM7QUFDN0MseUVBQWdEO0FBQ2hELDREQUFtRjtBQUNuRixtRkFBaUU7QUFDakUsbUZBQXlEO0FBRXpELDRFQUE0RTtBQUM1RSxNQUFNLHFCQUFxQixHQUFHLE9BQUMsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUU7SUFDL0MsSUFBSSxPQUFPLEdBQUcsS0FBSyxRQUFRO1FBQUUsT0FBTyxHQUFHLENBQUM7SUFFeEMsSUFBSSxDQUFDO1FBQ0gsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFBQyxNQUFNLENBQUM7UUFDUCxxRUFBcUU7UUFDckUsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0FBQ0gsQ0FBQyxFQUFFLGdCQUFZLENBQUMsQ0FBQztBQUVqQixNQUFNLGtCQUFrQixHQUFHLE9BQUMsQ0FBQyxNQUFNLENBQUM7SUFDbEMsY0FBYyxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUU7SUFDMUIsTUFBTSxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDN0IsT0FBTyxFQUFFLHFCQUFxQjtTQUMzQixRQUFRLENBQ1Asa2VBQWtlLENBQ25lO1NBQ0EsUUFBUSxFQUFFO0lBQ2IsSUFBSSxFQUFFLE9BQUM7U0FDSixNQUFNLENBQUM7UUFDTixLQUFLLEVBQUUsT0FBQzthQUNMLE1BQU0sRUFBRTthQUNSLFFBQVEsQ0FDUCw2RkFBNkYsQ0FDOUY7UUFDSCxTQUFTLEVBQUUsT0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7S0FDaEQsQ0FBQztTQUNELFFBQVEsRUFBRTtJQUNiLHNC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
125
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90b29scy9saXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBb0VBLDBEQU1DO0FBRUQsa0NBMkVDO0FBbkpELDZCQUF3QjtBQUV4QiwrREFBNkM7QUFDN0MseUVBQWdEO0FBQ2hELDREQUFtRjtBQUNuRixtRkFBaUU7QUFDakUsbUZBQXlEO0FBRXpELDRFQUE0RTtBQUM1RSxNQUFNLHFCQUFxQixHQUFHLE9BQUMsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUU7SUFDL0MsSUFBSSxPQUFPLEdBQUcsS0FBSyxRQUFRO1FBQUUsT0FBTyxHQUFHLENBQUM7SUFFeEMsSUFBSSxDQUFDO1FBQ0gsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFBQyxNQUFNLENBQUM7UUFDUCxxRUFBcUU7UUFDckUsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0FBQ0gsQ0FBQyxFQUFFLGdCQUFZLENBQUMsQ0FBQztBQUVqQixNQUFNLGtCQUFrQixHQUFHLE9BQUMsQ0FBQyxNQUFNLENBQUM7SUFDbEMsY0FBYyxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUU7SUFDMUIsTUFBTSxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDN0IsT0FBTyxFQUFFLHFCQUFxQjtTQUMzQixRQUFRLENBQ1Asa2VBQWtlLENBQ25lO1NBQ0EsUUFBUSxFQUFFO0lBQ2IsSUFBSSxFQUFFLE9BQUM7U0FDSixNQUFNLENBQUM7UUFDTixLQUFLLEVBQUUsT0FBQzthQUNMLE1BQU0sRUFBRTthQUNSLFFBQVEsQ0FDUCw2RkFBNkYsQ0FDOUY7UUFDSCxTQUFTLEVBQUUsT0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7S0FDaEQsQ0FBQztTQUNELFFBQVEsRUFBRTtJQUNiLHNC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
@@ -1,5 +1,4 @@
1
- import type { ForestServerClient } from '../http-client';
2
- import type { Logger } from '../server';
1
+ import type { ToolContext } from '../tool-context';
3
2
  import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
4
- export default function declareUpdateTool(mcpServer: McpServer, forestServerClient: ForestServerClient, logger: Logger, collectionNames?: string[]): string;
3
+ export default function declareUpdateTool(mcpServer: McpServer, ctx: ToolContext): string;
5
4
  //# sourceMappingURL=update.d.ts.map
@@ -26,14 +26,15 @@ function createArgumentShape(collectionNames) {
26
26
  attributes: attributesWithPreprocess.describe('The attributes to update. Must be an object with field names as keys.'),
27
27
  };
28
28
  }
29
- function declareUpdateTool(mcpServer, forestServerClient, logger, collectionNames = []) {
29
+ function declareUpdateTool(mcpServer, ctx) {
30
+ const { forestServerClient, logger, collectionNames } = ctx;
30
31
  const argumentShape = createArgumentShape(collectionNames);
31
32
  return (0, tool_with_logging_1.default)(mcpServer, 'update', {
32
33
  title: 'Update a record',
33
34
  description: 'Update an existing record in the specified collection.',
34
35
  inputSchema: argumentShape,
35
36
  }, async (options, extra) => {
36
- const { rpcClient } = (0, agent_caller_1.default)(extra);
37
+ const { rpcClient } = (0, agent_caller_1.default)(extra, ctx.agentDispatcher);
37
38
  return (0, with_activity_log_1.default)({
38
39
  forestServerClient,
39
40
  request: extra,
@@ -53,4 +54,4 @@ function declareUpdateTool(mcpServer, forestServerClient, logger, collectionName
53
54
  });
54
55
  }, logger);
55
56
  }
56
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Rvb2xzL3VwZGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQXNDQSxvQ0F3Q0M7QUExRUQsNkJBQXdCO0FBRXhCLHlFQUFnRDtBQUNoRCxtRkFBaUU7QUFDakUsbUZBQXlEO0FBRXpELCtFQUErRTtBQUMvRSxNQUFNLHdCQUF3QixHQUFHLE9BQUMsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUU7SUFDbEQsSUFBSSxPQUFPLEdBQUcsS0FBSyxRQUFRO1FBQUUsT0FBTyxHQUFHLENBQUM7SUFFeEMsSUFBSSxDQUFDO1FBQ0gsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFBQyxNQUFNLENBQUM7UUFDUCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7QUFDSCxDQUFDLEVBQUUsT0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsT0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQztBQVF0QyxTQUFTLG1CQUFtQixDQUFDLGVBQXlCO0lBQ3BELE9BQU87UUFDTCxjQUFjLEVBQ1osZUFBZSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQUMsQ0FBQyxJQUFJLENBQUMsZUFBd0MsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFDLENBQUMsTUFBTSxFQUFFO1FBQzVGLFFBQVEsRUFBRSxPQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLGlDQUFpQyxDQUFDO1FBQ3ZGLFVBQVUsRUFBRSx3QkFBd0IsQ0FBQyxRQUFRLENBQzNDLHVFQUF1RSxDQUN4RTtLQUNGLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBd0IsaUJBQWlCLENBQ3ZDLFNBQW9CLEVBQ3BCLGtCQUFzQyxFQUN0QyxNQUFjLEVBQ2Qsa0JBQTRCLEVBQUU7SUFFOUIsTUFBTSxhQUFhLEdBQUcsbUJBQW1CLENBQUMsZUFBZSxDQUFDLENBQUM7SUFFM0QsT0FBTyxJQUFBLDJCQUF1QixFQUM1QixTQUFTLEVBQ1QsUUFBUSxFQUNSO1FBQ0UsS0FBSyxFQUFFLGlCQUFpQjtRQUN4QixXQUFXLEVBQUUsd0RBQXdEO1FBQ3JFLFdBQVcsRUFBRSxhQUFhO0tBQzNCLEVBQ0QsS0FBSyxFQUFFLE9BQXVCLEVBQUUsS0FBSyxFQUFFLEVBQUU7UUFDdkMsTUFBTSxFQUFFLFNBQVMsRUFBRSxHQUFHLElBQUEsc0JBQVcsRUFBQyxLQUFLLENBQUMsQ0FBQztRQUV6QyxPQUFPLElBQUEsMkJBQWUsRUFBQztZQUNyQixrQkFBa0I7WUFDbEIsT0FBTyxFQUFFLEtBQUs7WUFDZCxNQUFNLEVBQUUsUUFBUTtZQUNoQixPQUFPLEVBQUU7Z0JBQ1AsY0FBYyxFQUFFLE9BQU8sQ0FBQyxjQUFjO2dCQUN0QyxRQUFRLEVBQUUsT0FBTyxDQUFDLFFBQVE7Z0JBQzFCLEtBQUssRUFBRSxTQUFTO2FBQ2pCO1lBQ0QsTUFBTTtZQUNOLFNBQVMsRUFBRSxLQUFLLElBQUksRUFBRTtnQkFDcEIsTUFBTSxNQUFNLEdBQUcsTUFBTSxTQUFTO3FCQUMzQixVQUFVLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQztxQkFDbEMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO2dCQUVoRCxPQUFPLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUMzRSxDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxFQUNELE1BQU0sQ0FDUCxDQUFDO0FBQ0osQ0FBQyJ9
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Rvb2xzL3VwZGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQXFDQSxvQ0FvQ0M7QUF0RUQsNkJBQXdCO0FBRXhCLHlFQUFnRDtBQUNoRCxtRkFBaUU7QUFDakUsbUZBQXlEO0FBRXpELCtFQUErRTtBQUMvRSxNQUFNLHdCQUF3QixHQUFHLE9BQUMsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUU7SUFDbEQsSUFBSSxPQUFPLEdBQUcsS0FBSyxRQUFRO1FBQUUsT0FBTyxHQUFHLENBQUM7SUFFeEMsSUFBSSxDQUFDO1FBQ0gsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFBQyxNQUFNLENBQUM7UUFDUCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7QUFDSCxDQUFDLEVBQUUsT0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsT0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQztBQVF0QyxTQUFTLG1CQUFtQixDQUFDLGVBQXlCO0lBQ3BELE9BQU87UUFDTCxjQUFjLEVBQ1osZUFBZSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQUMsQ0FBQyxJQUFJLENBQUMsZUFBd0MsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFDLENBQUMsTUFBTSxFQUFFO1FBQzVGLFFBQVEsRUFBRSxPQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLGlDQUFpQyxDQUFDO1FBQ3ZGLFVBQVUsRUFBRSx3QkFBd0IsQ0FBQyxRQUFRLENBQzNDLHVFQUF1RSxDQUN4RTtLQUNGLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBd0IsaUJBQWlCLENBQUMsU0FBb0IsRUFBRSxHQUFnQjtJQUM5RSxNQUFNLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxFQUFFLGVBQWUsRUFBRSxHQUFHLEdBQUcsQ0FBQztJQUM1RCxNQUFNLGFBQWEsR0FBRyxtQkFBbUIsQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUUzRCxPQUFPLElBQUEsMkJBQXVCLEVBQzVCLFNBQVMsRUFDVCxRQUFRLEVBQ1I7UUFDRSxLQUFLLEVBQUUsaUJBQWlCO1FBQ3hCLFdBQVcsRUFBRSx3REFBd0Q7UUFDckUsV0FBVyxFQUFFLGFBQWE7S0FDM0IsRUFDRCxLQUFLLEVBQUUsT0FBdUIsRUFBRSxLQUFLLEVBQUUsRUFBRTtRQUN2QyxNQUFNLEVBQUUsU0FBUyxFQUFFLEdBQUcsSUFBQSxzQkFBVyxFQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUM7UUFFOUQsT0FBTyxJQUFBLDJCQUFlLEVBQUM7WUFDckIsa0JBQWtCO1lBQ2xCLE9BQU8sRUFBRSxLQUFLO1lBQ2QsTUFBTSxFQUFFLFFBQVE7WUFDaEIsT0FBTyxFQUFFO2dCQUNQLGNBQWMsRUFBRSxPQUFPLENBQUMsY0FBYztnQkFDdEMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxRQUFRO2dCQUMxQixLQUFLLEVBQUUsU0FBUzthQUNqQjtZQUNELE1BQU07WUFDTixTQUFTLEVBQUUsS0FBSyxJQUFJLEVBQUU7Z0JBQ3BCLE1BQU0sTUFBTSxHQUFHLE1BQU0sU0FBUztxQkFDM0IsVUFBVSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUM7cUJBQ2xDLE1BQU0sQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztnQkFFaEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDM0UsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUMsRUFDRCxNQUFNLENBQ1AsQ0FBQztBQUNKLENBQUMifQ==
@@ -1,4 +1,5 @@
1
1
  import type { ForestServerClient } from '../http-client';
2
+ import type { InProcessAgentDispatcher } from '../in-process-agent-dispatcher';
2
3
  import type { RequestHandlerExtra } from '@modelcontextprotocol/sdk/shared/protocol.js';
3
4
  import type { ServerNotification, ServerRequest } from '@modelcontextprotocol/sdk/types.js';
4
5
  export type AuthData = {
@@ -9,7 +10,7 @@ export type AuthData = {
9
10
  environmentApiEndpoint: string;
10
11
  forestServerToken?: string;
11
12
  };
12
- export default function buildClient(request: RequestHandlerExtra<ServerRequest, ServerNotification>): {
13
+ export default function buildClient(request: RequestHandlerExtra<ServerRequest, ServerNotification>, agentDispatcher?: InProcessAgentDispatcher): {
13
14
  rpcClient: import("@forestadmin/agent-client").RemoteAgentClient<Record<string, unknown>>;
14
15
  authData: AuthData;
15
16
  };
@@ -17,7 +18,7 @@ export default function buildClient(request: RequestHandlerExtra<ServerRequest,
17
18
  * Builds a client with action endpoints loaded from the Forest schema.
18
19
  * Use this for tools that need to execute actions.
19
20
  */
20
- export declare function buildClientWithActions(request: RequestHandlerExtra<ServerRequest, ServerNotification>, forestServerClient: ForestServerClient): Promise<{
21
+ export declare function buildClientWithActions(request: RequestHandlerExtra<ServerRequest, ServerNotification>, forestServerClient: ForestServerClient, agentDispatcher?: InProcessAgentDispatcher): Promise<{
21
22
  rpcClient: import("@forestadmin/agent-client").RemoteAgentClient<Record<string, unknown>>;
22
23
  authData: AuthData;
23
24
  }>;
@@ -1,18 +1,25 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
6
  exports.default = buildClient;
4
7
  exports.buildClientWithActions = buildClientWithActions;
5
8
  const agent_client_1 = require("@forestadmin/agent-client");
9
+ const in_process_http_requester_1 = __importDefault(require("../in-process-http-requester"));
6
10
  const schema_fetcher_1 = require("./schema-fetcher");
7
11
  function createClient(options) {
8
- const { request, actionEndpoints = {}, forestServerUrl } = options;
12
+ const { request, actionEndpoints = {}, forestServerUrl, agentDispatcher } = options;
9
13
  const token = request.authInfo?.token;
10
14
  const url = request.authInfo?.extra?.environmentApiEndpoint;
11
15
  const { forestServerToken, renderingId } = (request.authInfo?.extra ?? {});
12
16
  if (!token) {
13
17
  throw new Error('Authentication token is missing');
14
18
  }
15
- if (!url || typeof url !== 'string') {
19
+ const httpRequester = agentDispatcher
20
+ ? new in_process_http_requester_1.default(token, agentDispatcher)
21
+ : undefined;
22
+ if (!httpRequester && (!url || typeof url !== 'string')) {
16
23
  throw new Error('Environment API endpoint is missing or invalid');
17
24
  }
18
25
  const forestServer = forestServerUrl && forestServerToken && renderingId != null
@@ -20,29 +27,31 @@ function createClient(options) {
20
27
  : undefined;
21
28
  const rpcClient = (0, agent_client_1.createRemoteAgentClient)({
22
29
  token,
23
- url,
30
+ url: url ?? '',
24
31
  actionEndpoints,
25
32
  forestServer,
33
+ httpRequester,
26
34
  });
27
35
  return {
28
36
  rpcClient,
29
37
  authData: request.authInfo?.extra,
30
38
  };
31
39
  }
32
- function buildClient(request) {
33
- return createClient({ request });
40
+ function buildClient(request, agentDispatcher) {
41
+ return createClient({ request, agentDispatcher });
34
42
  }
35
43
  /**
36
44
  * Builds a client with action endpoints loaded from the Forest schema.
37
45
  * Use this for tools that need to execute actions.
38
46
  */
39
- async function buildClientWithActions(request, forestServerClient) {
47
+ async function buildClientWithActions(request, forestServerClient, agentDispatcher) {
40
48
  const schema = await (0, schema_fetcher_1.fetchForestSchema)(forestServerClient);
41
49
  const actionEndpoints = (0, schema_fetcher_1.getActionEndpoints)(schema);
42
50
  return createClient({
43
51
  request,
44
52
  actionEndpoints,
45
53
  forestServerUrl: forestServerClient.forestServerUrl,
54
+ agentDispatcher,
46
55
  });
47
56
  }
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdlbnQtY2FsbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL2FnZW50LWNhbGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQXdEQSw4QkFJQztBQU1ELHdEQVlDO0FBekVELDREQUFvRTtBQUVwRSxxREFBeUU7QUFpQnpFLFNBQVMsWUFBWSxDQUFDLE9BQTJCO0lBQy9DLE1BQU0sRUFBRSxPQUFPLEVBQUUsZUFBZSxHQUFHLEVBQUUsRUFBRSxlQUFlLEVBQUUsR0FBRyxPQUFPLENBQUM7SUFDbkUsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUM7SUFDdEMsTUFBTSxHQUFHLEdBQUcsT0FBTyxDQUFDLFFBQVEsRUFBRSxLQUFLLEVBQUUsc0JBQXNCLENBQUM7SUFDNUQsTUFBTSxFQUFFLGlCQUFpQixFQUFFLFdBQVcsRUFBRSxHQUFHLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxLQUFLLElBQUksRUFBRSxDQUFhLENBQUM7SUFFdkYsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ1gsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFRCxJQUFJLENBQUMsR0FBRyxJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQ3BDLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0RBQWdELENBQUMsQ0FBQztJQUNwRSxDQUFDO0lBRUQsTUFBTSxZQUFZLEdBQ2hCLGVBQWUsSUFBSSxpQkFBaUIsSUFBSSxXQUFXLElBQUksSUFBSTtRQUN6RCxDQUFDLENBQUMsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxXQUFXLEVBQUU7UUFDN0UsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUVoQixNQUFNLFNBQVMsR0FBRyxJQUFBLHNDQUF1QixFQUFDO1FBQ3hDLEtBQUs7UUFDTCxHQUFHO1FBQ0gsZUFBZTtRQUNmLFlBQVk7S0FDYixDQUFDLENBQUM7SUFFSCxPQUFPO1FBQ0wsU0FBUztRQUNULFFBQVEsRUFBRSxPQUFPLENBQUMsUUFBUSxFQUFFLEtBQWlCO0tBQzlDLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBd0IsV0FBVyxDQUNqQyxPQUErRDtJQUUvRCxPQUFPLFlBQVksQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7QUFDbkMsQ0FBQztBQUVEOzs7R0FHRztBQUNJLEtBQUssVUFBVSxzQkFBc0IsQ0FDMUMsT0FBK0QsRUFDL0Qsa0JBQXNDO0lBRXRDLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBQSxrQ0FBaUIsRUFBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQzNELE1BQU0sZUFBZSxHQUFHLElBQUEsbUNBQWtCLEVBQUMsTUFBTSxDQUFDLENBQUM7SUFFbkQsT0FBTyxZQUFZLENBQUM7UUFDbEIsT0FBTztRQUNQLGVBQWU7UUFDZixlQUFlLEVBQUUsa0JBQWtCLENBQUMsZUFBZTtLQUNwRCxDQUFDLENBQUM7QUFDTCxDQUFDIn0=
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdlbnQtY2FsbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL2FnZW50LWNhbGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQWdFQSw4QkFLQztBQU1ELHdEQWNDO0FBbkZELDREQUFvRTtBQUVwRSw2RkFBa0U7QUFDbEUscURBQXlFO0FBa0J6RSxTQUFTLFlBQVksQ0FBQyxPQUEyQjtJQUMvQyxNQUFNLEVBQUUsT0FBTyxFQUFFLGVBQWUsR0FBRyxFQUFFLEVBQUUsZUFBZSxFQUFFLGVBQWUsRUFBRSxHQUFHLE9BQU8sQ0FBQztJQUNwRixNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQztJQUN0QyxNQUFNLEdBQUcsR0FBRyxPQUFPLENBQUMsUUFBUSxFQUFFLEtBQUssRUFBRSxzQkFBc0IsQ0FBQztJQUM1RCxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsV0FBVyxFQUFFLEdBQUcsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLEtBQUssSUFBSSxFQUFFLENBQWEsQ0FBQztJQUV2RixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDWCxNQUFNLElBQUksS0FBSyxDQUFDLGlDQUFpQyxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVELE1BQU0sYUFBYSxHQUFHLGVBQWU7UUFDbkMsQ0FBQyxDQUFDLElBQUksbUNBQXNCLENBQUMsS0FBSyxFQUFFLGVBQWUsQ0FBQztRQUNwRCxDQUFDLENBQUMsU0FBUyxDQUFDO0lBRWQsSUFBSSxDQUFDLGFBQWEsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVEsQ0FBQyxFQUFFLENBQUM7UUFDeEQsTUFBTSxJQUFJLEtBQUssQ0FBQyxnREFBZ0QsQ0FBQyxDQUFDO0lBQ3BFLENBQUM7SUFFRCxNQUFNLFlBQVksR0FDaEIsZUFBZSxJQUFJLGlCQUFpQixJQUFJLFdBQVcsSUFBSSxJQUFJO1FBQ3pELENBQUMsQ0FBQyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsV0FBVyxFQUFFLGlCQUFpQixFQUFFLFdBQVcsRUFBRTtRQUM3RSxDQUFDLENBQUMsU0FBUyxDQUFDO0lBRWhCLE1BQU0sU0FBUyxHQUFHLElBQUEsc0NBQXVCLEVBQUM7UUFDeEMsS0FBSztRQUNMLEdBQUcsRUFBRyxHQUFjLElBQUksRUFBRTtRQUMxQixlQUFlO1FBQ2YsWUFBWTtRQUNaLGFBQWE7S0FDZCxDQUFDLENBQUM7SUFFSCxPQUFPO1FBQ0wsU0FBUztRQUNULFFBQVEsRUFBRSxPQUFPLENBQUMsUUFBUSxFQUFFLEtBQWlCO0tBQzlDLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBd0IsV0FBVyxDQUNqQyxPQUErRCxFQUMvRCxlQUEwQztJQUUxQyxPQUFPLFlBQVksQ0FBQyxFQUFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsQ0FBQyxDQUFDO0FBQ3BELENBQUM7QUFFRDs7O0dBR0c7QUFDSSxLQUFLLFVBQVUsc0JBQXNCLENBQzFDLE9BQStELEVBQy9ELGtCQUFzQyxFQUN0QyxlQUEwQztJQUUxQyxNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUEsa0NBQWlCLEVBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUMzRCxNQUFNLGVBQWUsR0FBRyxJQUFBLG1DQUFrQixFQUFDLE1BQU0sQ0FBQyxDQUFDO0lBRW5ELE9BQU8sWUFBWSxDQUFDO1FBQ2xCLE9BQU87UUFDUCxlQUFlO1FBQ2YsZUFBZSxFQUFFLGtCQUFrQixDQUFDLGVBQWU7UUFDbkQsZUFBZTtLQUNoQixDQUFDLENBQUM7QUFDTCxDQUFDIn0=
@@ -0,0 +1,2 @@
1
+ export default function normalizeAgentUrl(agentUrl?: string): string | undefined;
2
+ //# sourceMappingURL=normalize-agent-url.d.ts.map
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.default = normalizeAgentUrl;
4
+ // agent-client concatenates the request path directly onto this URL, so a query string or fragment
5
+ // would swallow it — reject them, and return the parsed, trailing-slash-free form.
6
+ function normalizeAgentUrl(agentUrl) {
7
+ if (!agentUrl)
8
+ return undefined;
9
+ let parsed;
10
+ try {
11
+ parsed = new URL(agentUrl);
12
+ }
13
+ catch {
14
+ throw new Error(`Invalid agentUrl "${agentUrl}": it must be an absolute http(s) URL.`);
15
+ }
16
+ if (parsed.protocol !== 'http:' && parsed.protocol !== 'https:') {
17
+ throw new Error(`Invalid agentUrl "${agentUrl}": only http and https are supported.`);
18
+ }
19
+ if (parsed.search || parsed.hash) {
20
+ throw new Error(`Invalid agentUrl "${agentUrl}": it must not contain a query string or fragment.`);
21
+ }
22
+ return parsed.href.replace(/\/+$/, '');
23
+ }
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9ybWFsaXplLWFnZW50LXVybC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9ub3JtYWxpemUtYWdlbnQtdXJsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBRUEsb0NBc0JDO0FBeEJELG1HQUFtRztBQUNuRyxtRkFBbUY7QUFDbkYsU0FBd0IsaUJBQWlCLENBQUMsUUFBaUI7SUFDekQsSUFBSSxDQUFDLFFBQVE7UUFBRSxPQUFPLFNBQVMsQ0FBQztJQUVoQyxJQUFJLE1BQVcsQ0FBQztJQUVoQixJQUFJLENBQUM7UUFDSCxNQUFNLEdBQUcsSUFBSSxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUFDLE1BQU0sQ0FBQztRQUNQLE1BQU0sSUFBSSxLQUFLLENBQUMscUJBQXFCLFFBQVEsd0NBQXdDLENBQUMsQ0FBQztJQUN6RixDQUFDO0lBRUQsSUFBSSxNQUFNLENBQUMsUUFBUSxLQUFLLE9BQU8sSUFBSSxNQUFNLENBQUMsUUFBUSxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQ2hFLE1BQU0sSUFBSSxLQUFLLENBQUMscUJBQXFCLFFBQVEsdUNBQXVDLENBQUMsQ0FBQztJQUN4RixDQUFDO0lBRUQsSUFBSSxNQUFNLENBQUMsTUFBTSxJQUFJLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNqQyxNQUFNLElBQUksS0FBSyxDQUNiLHFCQUFxQixRQUFRLG9EQUFvRCxDQUNsRixDQUFDO0lBQ0osQ0FBQztJQUVELE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQ3pDLENBQUMifQ==
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@forestadmin/mcp-server",
3
- "version": "1.17.2",
3
+ "version": "1.18.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": "1.10.1",
20
- "@forestadmin/forestadmin-client": "1.40.4",
19
+ "@forestadmin/agent-client": "1.11.0",
20
+ "@forestadmin/forestadmin-client": "1.40.5",
21
21
  "@modelcontextprotocol/sdk": "^1.28.0",
22
22
  "cors": "^2.8.5",
23
23
  "express": "^5.2.1",