Skip to content

Commit ed72985

Browse files
authored
Added agent type to context (#110)
* Added context to the rest of the tools + agent attribution data to the context + log it in track event * Added redirect uris to the context * Bumped patch version in the package json of agent-toolkit
1 parent 156013e commit ed72985

File tree

7 files changed

+21
-5
lines changed

7 files changed

+21
-5
lines changed

packages/agent-toolkit/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@mondaydotcomorg/agent-toolkit",
3-
"version": "2.29.0",
3+
"version": "2.29.1",
44
"description": "monday.com agent toolkit",
55
"exports": {
66
"./mcp": {

packages/agent-toolkit/src/core/monday-agent-toolkit.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import { ApiClientConfig } from '@mondaydotcomorg/api';
2+
import { MondayApiToolContext } from './tools/platform-api-tools/base-monday-api-tool';
23

34
export enum ToolMode {
45
API = 'api',
@@ -19,4 +20,5 @@ export type MondayAgentToolkitConfig = {
1920
mondayApiVersion?: ApiClientConfig['apiVersion'];
2021
mondayApiRequestConfig?: ApiClientConfig['requestConfig'];
2122
toolsConfiguration?: ToolsConfiguration;
23+
context?: MondayApiToolContext;
2224
};

packages/agent-toolkit/src/core/tools/platform-api-tools/base-monday-api-tool.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,13 @@ import { trackEvent } from '../../../utils/tracking.utils';
66
import { extractTokenInfo } from '../../../utils/token.utils';
77

88
export type MondayApiToolContext = {
9+
// Operational context
910
boardId?: number;
11+
12+
// Agent metadata (for tracking)
13+
agentType?: string;
14+
agentClientName?: string;
15+
clientRedirectUris?: string[];
1016
};
1117

1218
export type BaseMondayApiToolConstructor = new (api: ApiClient, token?: string) => BaseMondayApiTool<any>;
@@ -85,6 +91,7 @@ export abstract class BaseMondayApiTool<
8591
isError,
8692
params,
8793
toolType: 'monday_api_tool',
94+
...(this.context || {}),
8895
...tokenInfo,
8996
},
9097
});

packages/agent-toolkit/src/mcp/toolkit.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import { API_VERSION } from 'src/utils/version.utils';
1515
export class MondayAgentToolkit extends McpServer {
1616
private readonly mondayApiClient: ApiClient;
1717
private readonly mondayApiToken: string;
18+
private readonly context?: MondayAgentToolkitConfig['context'];
1819
private readonly dynamicToolManager: DynamicToolManager = new DynamicToolManager();
1920
private toolInstances: Tool<any, any>[] = [];
2021
private managementTool: Tool<any, any> | null = null;
@@ -40,6 +41,7 @@ export class MondayAgentToolkit extends McpServer {
4041

4142
this.mondayApiClient = this.createApiClient(config);
4243
this.mondayApiToken = config.mondayApiToken;
44+
this.context = config.context;
4345

4446
this.registerTools(config);
4547
}
@@ -97,6 +99,7 @@ export class MondayAgentToolkit extends McpServer {
9799
const instanceOptions = {
98100
apiClient: this.mondayApiClient,
99101
apiToken: this.mondayApiToken,
102+
context: this.context,
100103
};
101104

102105
const filteredTools = getFilteredToolInstances(instanceOptions, config.toolsConfiguration);

packages/agent-toolkit/src/openai/toolkit.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import { API_VERSION } from 'src/utils/version.utils';
1414
export class MondayAgentToolkit {
1515
private readonly mondayApi: ApiClient;
1616
private readonly mondayApiToken: string;
17+
private readonly context?: MondayAgentToolkitConfig['context'];
1718
tools: Tool<any, any>[];
1819

1920
constructor(config: MondayAgentToolkitConfig) {
@@ -23,6 +24,7 @@ export class MondayAgentToolkit {
2324
requestConfig: config.mondayApiRequestConfig,
2425
});
2526
this.mondayApiToken = config.mondayApiToken;
27+
this.context = config.context;
2628

2729
this.tools = this.initializeTools(config);
2830
}
@@ -35,6 +37,7 @@ export class MondayAgentToolkit {
3537
const instanceOptions = {
3638
apiClient: this.mondayApi,
3739
apiToken: this.mondayApiToken,
40+
context: this.context,
3841
};
3942

4043
const filteredToolInstances = getFilteredToolInstances(instanceOptions, config.toolsConfiguration);

packages/agent-toolkit/src/utils/tools/initializing.utils.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
import { ApiClient } from '@mondaydotcomorg/api';
22
import { Tool } from '../../core/tool';
3-
import { BaseMondayApiTool } from '../../core/tools/platform-api-tools/base-monday-api-tool';
3+
import { BaseMondayApiTool, MondayApiToolContext } from '../../core/tools/platform-api-tools/base-monday-api-tool';
44
import { BaseMondayAppsTool } from 'src/core/tools/monday-apps-tools/base-tool/base-monday-apps-tool';
55

66
export const toolFactory = (
77
tool: new (...args: any[]) => Tool<any, any>,
8-
instanceOptions: { apiClient: ApiClient; apiToken: string },
8+
instanceOptions: { apiClient: ApiClient; apiToken: string; context?: MondayApiToolContext },
99
) => {
1010
if (tool.prototype instanceof BaseMondayApiTool) {
11-
return new tool(instanceOptions.apiClient, instanceOptions.apiToken);
11+
return new tool(instanceOptions.apiClient, instanceOptions.apiToken, instanceOptions.context);
1212
} else if (tool.prototype instanceof BaseMondayAppsTool) {
1313
return new tool(instanceOptions.apiToken);
1414
}

packages/agent-toolkit/src/utils/tools/tools-filtering.utils.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,10 @@ import { ApiClient } from '@mondaydotcomorg/api';
22
import { allGraphqlApiTools, allMondayAppsTools, allMondayDevTools, Tool, ToolType } from '../../core';
33
import { ToolMode, ToolsConfiguration } from '../../core/monday-agent-toolkit';
44
import { toolFactory } from './initializing.utils';
5+
import { MondayApiToolContext } from '../../core/tools/platform-api-tools/base-monday-api-tool';
56

67
export const getFilteredToolInstances = (
7-
instanceOptions: { apiClient: ApiClient; apiToken: string },
8+
instanceOptions: { apiClient: ApiClient; apiToken: string; context?: MondayApiToolContext },
89
config?: ToolsConfiguration,
910
): Tool<any, any>[] => {
1011
let allToolConstructors: Array<new (...args: any[]) => Tool<any, any>> = [];

0 commit comments

Comments
 (0)