@mondaydotcomorg/atp-mcp-adapter 0.19.3 → 0.19.5

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.
@@ -0,0 +1,47 @@
1
+ import type { AgentToolProtocolClient, Tool } from '@mondaydotcomorg/atp-client';
2
+ /**
3
+ * MCP tool handler result
4
+ */
5
+ export interface MCPToolResult {
6
+ content: Array<{
7
+ type: 'text';
8
+ text: string;
9
+ }>;
10
+ isError?: boolean;
11
+ }
12
+ /**
13
+ * MCP Server interface (minimal subset needed for tool registration)
14
+ */
15
+ export interface MCPServerLike {
16
+ tool(name: string, description: string, schema: Record<string, unknown>, handler: (args: Record<string, unknown>) => Promise<MCPToolResult>): void;
17
+ }
18
+ /**
19
+ * Registers ATP tools with an MCP server.
20
+ *
21
+ * @example
22
+ * ```typescript
23
+ * import { Server } from '@modelcontextprotocol/sdk/server/index.js';
24
+ * import { AgentToolProtocolClient } from '@mondaydotcomorg/atp-client';
25
+ * import { registerATPTools } from '@mondaydotcomorg/atp-mcp-adapter';
26
+ *
27
+ * const client = new AgentToolProtocolClient({ baseUrl: 'http://localhost:3000' });
28
+ * await client.init();
29
+ * await client.connect();
30
+ *
31
+ * const mcpServer = new Server({ name: 'my-server', version: '1.0.0' }, { capabilities: { tools: {} } });
32
+ * registerATPTools(client, mcpServer);
33
+ * ```
34
+ */
35
+ export declare function registerATPTools(client: AgentToolProtocolClient, mcpServer: MCPServerLike): void;
36
+ /**
37
+ * Registers an array of ATP tools with an MCP server.
38
+ * Use this if you want more control over which tools to register.
39
+ *
40
+ * @example
41
+ * ```typescript
42
+ * const tools = client.getATPTools().filter(t => t.name !== 'search_api');
43
+ * registerToolsWithMCP(tools, mcpServer);
44
+ * ```
45
+ */
46
+ export declare function registerToolsWithMCP(tools: Tool[], mcpServer: MCPServerLike): void;
47
+ //# sourceMappingURL=atp-to-mcp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"atp-to-mcp.d.ts","sourceRoot":"","sources":["../src/atp-to-mcp.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,IAAI,EAAE,MAAM,6BAA6B,CAAC;AAEjF;;GAEG;AACH,MAAM,WAAW,aAAa;IAC7B,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/C,OAAO,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC7B,IAAI,CACH,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,aAAa,CAAC,GAChE,IAAI,CAAC;CACR;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,uBAAuB,EAAE,SAAS,EAAE,aAAa,GAAG,IAAI,CAGhG;AAED;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,aAAa,GAAG,IAAI,CAwBlF"}
@@ -0,0 +1,57 @@
1
+ /**
2
+ * Registers ATP tools with an MCP server.
3
+ *
4
+ * @example
5
+ * ```typescript
6
+ * import { Server } from '@modelcontextprotocol/sdk/server/index.js';
7
+ * import { AgentToolProtocolClient } from '@mondaydotcomorg/atp-client';
8
+ * import { registerATPTools } from '@mondaydotcomorg/atp-mcp-adapter';
9
+ *
10
+ * const client = new AgentToolProtocolClient({ baseUrl: 'http://localhost:3000' });
11
+ * await client.init();
12
+ * await client.connect();
13
+ *
14
+ * const mcpServer = new Server({ name: 'my-server', version: '1.0.0' }, { capabilities: { tools: {} } });
15
+ * registerATPTools(client, mcpServer);
16
+ * ```
17
+ */
18
+ export function registerATPTools(client, mcpServer) {
19
+ const tools = client.getATPTools();
20
+ registerToolsWithMCP(tools, mcpServer);
21
+ }
22
+ /**
23
+ * Registers an array of ATP tools with an MCP server.
24
+ * Use this if you want more control over which tools to register.
25
+ *
26
+ * @example
27
+ * ```typescript
28
+ * const tools = client.getATPTools().filter(t => t.name !== 'search_api');
29
+ * registerToolsWithMCP(tools, mcpServer);
30
+ * ```
31
+ */
32
+ export function registerToolsWithMCP(tools, mcpServer) {
33
+ for (const tool of tools) {
34
+ const schema = {
35
+ type: tool.inputSchema.type,
36
+ properties: tool.inputSchema.properties || {},
37
+ required: tool.inputSchema.required || [],
38
+ };
39
+ mcpServer.tool(tool.name, tool.description || '', schema, async (args) => {
40
+ try {
41
+ const result = await tool.func(args);
42
+ const resultText = typeof result === 'string' ? result : JSON.stringify(result, null, 2);
43
+ return {
44
+ content: [{ type: 'text', text: resultText }],
45
+ };
46
+ }
47
+ catch (error) {
48
+ const errorMessage = error instanceof Error ? error.message : String(error);
49
+ return {
50
+ content: [{ type: 'text', text: `Error: ${errorMessage}` }],
51
+ isError: true,
52
+ };
53
+ }
54
+ });
55
+ }
56
+ }
57
+ //# sourceMappingURL=atp-to-mcp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"atp-to-mcp.js","sourceRoot":"","sources":["../src/atp-to-mcp.ts"],"names":[],"mappings":"AAsBA;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAA+B,EAAE,SAAwB;IACzF,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;IACnC,oBAAoB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;AACxC,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,oBAAoB,CAAC,KAAa,EAAE,SAAwB;IAC3E,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QAC1B,MAAM,MAAM,GAAG;YACd,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI;YAC3B,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,UAAU,IAAI,EAAE;YAC7C,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,QAAQ,IAAI,EAAE;SACzC,CAAC;QAEF,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,IAAI,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,IAA6B,EAAE,EAAE;YACjG,IAAI,CAAC;gBACJ,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACrC,MAAM,UAAU,GAAG,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;gBACzF,OAAO;oBACN,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;iBACtD,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC5E,OAAO;oBACN,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,UAAU,YAAY,EAAE,EAAE,CAAC;oBACpE,OAAO,EAAE,IAAI;iBACb,CAAC;YACH,CAAC;QACF,CAAC,CAAC,CAAC;IACJ,CAAC;AACF,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,4 +1,6 @@
1
1
  export { MCPConnector } from './mcp-connector.js';
2
2
  export { MCPHttpConnector } from './http-connector.js';
3
+ export { registerATPTools, registerToolsWithMCP } from './atp-to-mcp.js';
3
4
  export type { MCPTool, MCPPrompt } from './types.js';
5
+ export type { MCPToolResult, MCPServerLike } from './atp-to-mcp.js';
4
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,YAAY,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACzE,YAAY,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACrD,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC"}
package/dist/index.js CHANGED
@@ -1,3 +1,4 @@
1
1
  export { MCPConnector } from './mcp-connector.js';
2
2
  export { MCPHttpConnector } from './http-connector.js';
3
+ export { registerATPTools, registerToolsWithMCP } from './atp-to-mcp.js';
3
4
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mondaydotcomorg/atp-mcp-adapter",
3
- "version": "0.19.3",
3
+ "version": "0.19.5",
4
4
  "description": "MCP compatibility adapter for Agent Tool Protocol",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -42,9 +42,9 @@
42
42
  "license": "MIT",
43
43
  "dependencies": {
44
44
  "@modelcontextprotocol/sdk": "^0.5.0",
45
- "@mondaydotcomorg/atp-protocol": "0.19.3",
46
- "@mondaydotcomorg/atp-server": "0.19.3",
47
- "zod": "^4.1.11"
45
+ "@mondaydotcomorg/atp-protocol": "0.19.5",
46
+ "@mondaydotcomorg/atp-server": "0.19.5",
47
+ "zod": "^3.25.0"
48
48
  },
49
49
  "devDependencies": {
50
50
  "typescript": "^5.3.3",
@@ -0,0 +1,80 @@
1
+ import type { AgentToolProtocolClient, Tool } from '@mondaydotcomorg/atp-client';
2
+
3
+ /**
4
+ * MCP tool handler result
5
+ */
6
+ export interface MCPToolResult {
7
+ content: Array<{ type: 'text'; text: string }>;
8
+ isError?: boolean;
9
+ }
10
+
11
+ /**
12
+ * MCP Server interface (minimal subset needed for tool registration)
13
+ */
14
+ export interface MCPServerLike {
15
+ tool(
16
+ name: string,
17
+ description: string,
18
+ schema: Record<string, unknown>,
19
+ handler: (args: Record<string, unknown>) => Promise<MCPToolResult>
20
+ ): void;
21
+ }
22
+
23
+ /**
24
+ * Registers ATP tools with an MCP server.
25
+ *
26
+ * @example
27
+ * ```typescript
28
+ * import { Server } from '@modelcontextprotocol/sdk/server/index.js';
29
+ * import { AgentToolProtocolClient } from '@mondaydotcomorg/atp-client';
30
+ * import { registerATPTools } from '@mondaydotcomorg/atp-mcp-adapter';
31
+ *
32
+ * const client = new AgentToolProtocolClient({ baseUrl: 'http://localhost:3000' });
33
+ * await client.init();
34
+ * await client.connect();
35
+ *
36
+ * const mcpServer = new Server({ name: 'my-server', version: '1.0.0' }, { capabilities: { tools: {} } });
37
+ * registerATPTools(client, mcpServer);
38
+ * ```
39
+ */
40
+ export function registerATPTools(client: AgentToolProtocolClient, mcpServer: MCPServerLike): void {
41
+ const tools = client.getATPTools();
42
+ registerToolsWithMCP(tools, mcpServer);
43
+ }
44
+
45
+ /**
46
+ * Registers an array of ATP tools with an MCP server.
47
+ * Use this if you want more control over which tools to register.
48
+ *
49
+ * @example
50
+ * ```typescript
51
+ * const tools = client.getATPTools().filter(t => t.name !== 'search_api');
52
+ * registerToolsWithMCP(tools, mcpServer);
53
+ * ```
54
+ */
55
+ export function registerToolsWithMCP(tools: Tool[], mcpServer: MCPServerLike): void {
56
+ for (const tool of tools) {
57
+ const schema = {
58
+ type: tool.inputSchema.type,
59
+ properties: tool.inputSchema.properties || {},
60
+ required: tool.inputSchema.required || [],
61
+ };
62
+
63
+ mcpServer.tool(tool.name, tool.description || '', schema, async (args: Record<string, unknown>) => {
64
+ try {
65
+ const result = await tool.func(args);
66
+ const resultText = typeof result === 'string' ? result : JSON.stringify(result, null, 2);
67
+ return {
68
+ content: [{ type: 'text' as const, text: resultText }],
69
+ };
70
+ } catch (error) {
71
+ const errorMessage = error instanceof Error ? error.message : String(error);
72
+ return {
73
+ content: [{ type: 'text' as const, text: `Error: ${errorMessage}` }],
74
+ isError: true,
75
+ };
76
+ }
77
+ });
78
+ }
79
+ }
80
+
package/src/index.ts CHANGED
@@ -1,3 +1,5 @@
1
1
  export { MCPConnector } from './mcp-connector.js';
2
2
  export { MCPHttpConnector } from './http-connector.js';
3
+ export { registerATPTools, registerToolsWithMCP } from './atp-to-mcp.js';
3
4
  export type { MCPTool, MCPPrompt } from './types.js';
5
+ export type { MCPToolResult, MCPServerLike } from './atp-to-mcp.js';