diff --git a/packages/agent-toolkit/package.json b/packages/agent-toolkit/package.json index bed8a608..8e683a8a 100644 --- a/packages/agent-toolkit/package.json +++ b/packages/agent-toolkit/package.json @@ -1,6 +1,6 @@ { "name": "@mondaydotcomorg/agent-toolkit", - "version": "2.29.0", + "version": "2.29.1", "description": "monday.com agent toolkit", "exports": { "./mcp": { diff --git a/packages/agent-toolkit/src/core/monday-agent-toolkit.ts b/packages/agent-toolkit/src/core/monday-agent-toolkit.ts index 8061fd9a..329ecd85 100644 --- a/packages/agent-toolkit/src/core/monday-agent-toolkit.ts +++ b/packages/agent-toolkit/src/core/monday-agent-toolkit.ts @@ -1,4 +1,5 @@ import { ApiClientConfig } from '@mondaydotcomorg/api'; +import { MondayApiToolContext } from './tools/platform-api-tools/base-monday-api-tool'; export enum ToolMode { API = 'api', @@ -19,4 +20,5 @@ export type MondayAgentToolkitConfig = { mondayApiVersion?: ApiClientConfig['apiVersion']; mondayApiRequestConfig?: ApiClientConfig['requestConfig']; toolsConfiguration?: ToolsConfiguration; + context?: MondayApiToolContext; }; diff --git a/packages/agent-toolkit/src/core/tools/platform-api-tools/base-monday-api-tool.ts b/packages/agent-toolkit/src/core/tools/platform-api-tools/base-monday-api-tool.ts index ea78c29c..46a5d58e 100644 --- a/packages/agent-toolkit/src/core/tools/platform-api-tools/base-monday-api-tool.ts +++ b/packages/agent-toolkit/src/core/tools/platform-api-tools/base-monday-api-tool.ts @@ -6,7 +6,13 @@ import { trackEvent } from '../../../utils/tracking.utils'; import { extractTokenInfo } from '../../../utils/token.utils'; export type MondayApiToolContext = { + // Operational context boardId?: number; + + // Agent metadata (for tracking) + agentType?: string; + agentClientName?: string; + clientRedirectUris?: string[]; }; export type BaseMondayApiToolConstructor = new (api: ApiClient, token?: string) => BaseMondayApiTool; @@ -85,6 +91,7 @@ export abstract class BaseMondayApiTool< isError, params, toolType: 'monday_api_tool', + ...(this.context || {}), ...tokenInfo, }, }); diff --git a/packages/agent-toolkit/src/mcp/toolkit.ts b/packages/agent-toolkit/src/mcp/toolkit.ts index fd3c7567..a9abcb86 100644 --- a/packages/agent-toolkit/src/mcp/toolkit.ts +++ b/packages/agent-toolkit/src/mcp/toolkit.ts @@ -15,6 +15,7 @@ import { API_VERSION } from 'src/utils/version.utils'; export class MondayAgentToolkit extends McpServer { private readonly mondayApiClient: ApiClient; private readonly mondayApiToken: string; + private readonly context?: MondayAgentToolkitConfig['context']; private readonly dynamicToolManager: DynamicToolManager = new DynamicToolManager(); private toolInstances: Tool[] = []; private managementTool: Tool | null = null; @@ -40,6 +41,7 @@ export class MondayAgentToolkit extends McpServer { this.mondayApiClient = this.createApiClient(config); this.mondayApiToken = config.mondayApiToken; + this.context = config.context; this.registerTools(config); } @@ -97,6 +99,7 @@ export class MondayAgentToolkit extends McpServer { const instanceOptions = { apiClient: this.mondayApiClient, apiToken: this.mondayApiToken, + context: this.context, }; const filteredTools = getFilteredToolInstances(instanceOptions, config.toolsConfiguration); diff --git a/packages/agent-toolkit/src/openai/toolkit.ts b/packages/agent-toolkit/src/openai/toolkit.ts index 4e0b05dc..9eac40ec 100644 --- a/packages/agent-toolkit/src/openai/toolkit.ts +++ b/packages/agent-toolkit/src/openai/toolkit.ts @@ -14,6 +14,7 @@ import { API_VERSION } from 'src/utils/version.utils'; export class MondayAgentToolkit { private readonly mondayApi: ApiClient; private readonly mondayApiToken: string; + private readonly context?: MondayAgentToolkitConfig['context']; tools: Tool[]; constructor(config: MondayAgentToolkitConfig) { @@ -23,6 +24,7 @@ export class MondayAgentToolkit { requestConfig: config.mondayApiRequestConfig, }); this.mondayApiToken = config.mondayApiToken; + this.context = config.context; this.tools = this.initializeTools(config); } @@ -35,6 +37,7 @@ export class MondayAgentToolkit { const instanceOptions = { apiClient: this.mondayApi, apiToken: this.mondayApiToken, + context: this.context, }; const filteredToolInstances = getFilteredToolInstances(instanceOptions, config.toolsConfiguration); diff --git a/packages/agent-toolkit/src/utils/tools/initializing.utils.ts b/packages/agent-toolkit/src/utils/tools/initializing.utils.ts index 65512adb..d838a2f2 100644 --- a/packages/agent-toolkit/src/utils/tools/initializing.utils.ts +++ b/packages/agent-toolkit/src/utils/tools/initializing.utils.ts @@ -1,14 +1,14 @@ import { ApiClient } from '@mondaydotcomorg/api'; import { Tool } from '../../core/tool'; -import { BaseMondayApiTool } from '../../core/tools/platform-api-tools/base-monday-api-tool'; +import { BaseMondayApiTool, MondayApiToolContext } from '../../core/tools/platform-api-tools/base-monday-api-tool'; import { BaseMondayAppsTool } from 'src/core/tools/monday-apps-tools/base-tool/base-monday-apps-tool'; export const toolFactory = ( tool: new (...args: any[]) => Tool, - instanceOptions: { apiClient: ApiClient; apiToken: string }, + instanceOptions: { apiClient: ApiClient; apiToken: string; context?: MondayApiToolContext }, ) => { if (tool.prototype instanceof BaseMondayApiTool) { - return new tool(instanceOptions.apiClient, instanceOptions.apiToken); + return new tool(instanceOptions.apiClient, instanceOptions.apiToken, instanceOptions.context); } else if (tool.prototype instanceof BaseMondayAppsTool) { return new tool(instanceOptions.apiToken); } diff --git a/packages/agent-toolkit/src/utils/tools/tools-filtering.utils.ts b/packages/agent-toolkit/src/utils/tools/tools-filtering.utils.ts index a2419fe7..ab21e6c0 100644 --- a/packages/agent-toolkit/src/utils/tools/tools-filtering.utils.ts +++ b/packages/agent-toolkit/src/utils/tools/tools-filtering.utils.ts @@ -2,9 +2,10 @@ import { ApiClient } from '@mondaydotcomorg/api'; import { allGraphqlApiTools, allMondayAppsTools, allMondayDevTools, Tool, ToolType } from '../../core'; import { ToolMode, ToolsConfiguration } from '../../core/monday-agent-toolkit'; import { toolFactory } from './initializing.utils'; +import { MondayApiToolContext } from '../../core/tools/platform-api-tools/base-monday-api-tool'; export const getFilteredToolInstances = ( - instanceOptions: { apiClient: ApiClient; apiToken: string }, + instanceOptions: { apiClient: ApiClient; apiToken: string; context?: MondayApiToolContext }, config?: ToolsConfiguration, ): Tool[] => { let allToolConstructors: Array Tool> = [];