diff --git a/packages/agents-a365-tooling-extensions-claude/package.json b/packages/agents-a365-tooling-extensions-claude/package.json index 31916337..d339b239 100644 --- a/packages/agents-a365-tooling-extensions-claude/package.json +++ b/packages/agents-a365-tooling-extensions-claude/package.json @@ -38,7 +38,7 @@ "@microsoft/agents-a365-runtime": "workspace:*", "@microsoft/agents-a365-tooling": "workspace:*", "@microsoft/agents-hosting": "*", - "@modelcontextprotocol/sdk": "*" + "@modelcontextprotocol/sdk": "workspace:*" }, "devDependencies": { "@eslint/js": "^9.39.1", diff --git a/packages/agents-a365-tooling/package.json b/packages/agents-a365-tooling/package.json index 242dbc97..9f8f5d73 100644 --- a/packages/agents-a365-tooling/package.json +++ b/packages/agents-a365-tooling/package.json @@ -35,7 +35,7 @@ "dependencies": { "@microsoft/agents-a365-runtime": "workspace:*", "@microsoft/agents-hosting": "*", - "@modelcontextprotocol/sdk": "*", + "@modelcontextprotocol/sdk": "workspace:*", "express": "^5.2.0" }, "devDependencies": { diff --git a/packages/agents-a365-tooling/src/contracts.ts b/packages/agents-a365-tooling/src/contracts.ts index 6166d026..bf8726da 100644 --- a/packages/agents-a365-tooling/src/contracts.ts +++ b/packages/agents-a365-tooling/src/contracts.ts @@ -9,13 +9,13 @@ export interface MCPServerConfig { export interface McpClientTool { name: string; - description: string; + description?: string; inputSchema: InputSchema; } export interface InputSchema { type: string; - properties: Record; + properties?: Record; required?: string[]; additionalProperties?: boolean; } \ No newline at end of file diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5637a0ed..9226d352 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -17,7 +17,7 @@ overrides: '@opentelemetry/sdk-node': ^0.204.0 '@opentelemetry/sdk-trace-base': ^2.1.0 '@opentelemetry/semantic-conventions': ^1.37.0 - '@modelcontextprotocol/sdk': ^1.19.0 + '@modelcontextprotocol/sdk': ^1.24.0 '@azure/monitor-opentelemetry-exporter': ^1.0.0-beta.32 '@azure/identity': ^4.12.1 langchain: ^1.0.1 @@ -201,7 +201,7 @@ importers: version: link:../agents-a365-observability '@openai/agents': specifier: ^0.1.5 - version: 0.1.11(@cfworker/json-schema@4.1.1)(ws@8.18.3)(zod@4.1.12) + version: 0.1.11(@cfworker/json-schema@4.1.1)(ws@8.18.3)(zod@4.1.13) '@opentelemetry/api': specifier: ^1.9.0 version: 1.9.0 @@ -347,8 +347,8 @@ importers: specifier: ^1.1.0-alpha.85 version: 1.1.0-alpha.85 '@modelcontextprotocol/sdk': - specifier: ^1.19.0 - version: 1.22.0(@cfworker/json-schema@4.1.1) + specifier: ^1.24.0 + version: 1.24.2(@cfworker/json-schema@4.1.1)(zod@4.1.13) express: specifier: ^5.1.0 version: 5.2.0 @@ -391,7 +391,7 @@ importers: dependencies: '@anthropic-ai/claude-agent-sdk': specifier: ^0.1.30 - version: 0.1.47(zod@4.1.12) + version: 0.1.47(zod@4.1.13) '@microsoft/agents-a365-runtime': specifier: workspace:* version: link:../agents-a365-runtime @@ -402,8 +402,8 @@ importers: specifier: ^1.1.0-alpha.85 version: 1.1.0-alpha.85 '@modelcontextprotocol/sdk': - specifier: ^1.19.0 - version: 1.22.0(@cfworker/json-schema@4.1.1) + specifier: ^1.24.0 + version: 1.24.2(@cfworker/json-schema@4.1.1)(zod@4.1.13) devDependencies: '@eslint/js': specifier: ^9.39.1 @@ -504,7 +504,7 @@ importers: version: 1.1.0-alpha.85 '@openai/agents': specifier: ^0.1.5 - version: 0.1.11(@cfworker/json-schema@4.1.1)(ws@8.18.3)(zod@4.1.12) + version: 0.1.11(@cfworker/json-schema@4.1.1)(ws@8.18.3)(zod@4.1.13) devDependencies: '@eslint/js': specifier: ^9.39.1 @@ -561,14 +561,14 @@ importers: specifier: ^1.1.0-alpha.85 version: 1.1.0-alpha.85 '@modelcontextprotocol/sdk': - specifier: ^1.19.0 - version: 1.22.0(@cfworker/json-schema@4.1.1) + specifier: ^1.24.0 + version: 1.24.2(@cfworker/json-schema@4.1.1)(zod@4.1.13) '@openai/agents': specifier: ^0.1.5 - version: 0.1.11(@cfworker/json-schema@4.1.1)(ws@8.18.3)(zod@4.1.12) + version: 0.1.11(@cfworker/json-schema@4.1.1)(ws@8.18.3)(zod@4.1.13) '@openai/agents-openai': specifier: '*' - version: 0.3.2(@cfworker/json-schema@4.1.1)(ws@8.18.3)(zod@4.1.12) + version: 0.3.2(@cfworker/json-schema@4.1.1)(ws@8.18.3)(zod@4.1.13) '@opentelemetry/api': specifier: ^1.9.0 version: 1.9.0 @@ -592,7 +592,7 @@ importers: version: 17.2.3 openai: specifier: ^4.0.0 - version: 4.104.0(ws@8.18.3)(zod@4.1.12) + version: 4.104.0(ws@8.18.3)(zod@4.1.13) devDependencies: '@babel/preset-typescript': specifier: ^7.27.1 @@ -714,10 +714,10 @@ importers: version: 1.1.0-alpha.85 '@openai/agents': specifier: ^0.1.5 - version: 0.1.11(@cfworker/json-schema@4.1.1)(ws@8.18.3)(zod@4.1.12) + version: 0.1.11(@cfworker/json-schema@4.1.1)(ws@8.18.3)(zod@4.1.13) '@openai/agents-core': specifier: ^0.1.5 - version: 0.1.11(@cfworker/json-schema@4.1.1)(ws@8.18.3)(zod@4.1.12) + version: 0.1.11(@cfworker/json-schema@4.1.1)(ws@8.18.3)(zod@4.1.13) dotenv: specifier: ^17.2.2 version: 17.2.3 @@ -1356,11 +1356,12 @@ packages: resolution: {integrity: sha512-lwcEIzPuwJ/enScjQW0IfY1JpSWJoBpof6rBLaOQvkhvbTPCYx1CEFspAezWhqsSuJHMp9UNNqwsx7W//UazaQ==} hasBin: true - '@modelcontextprotocol/sdk@1.22.0': - resolution: {integrity: sha512-VUpl106XVTCpDmTBil2ehgJZjhyLY2QZikzF8NvTXtLRF1CvO5iEE2UNZdVIUer35vFOwMKYeUGbjJtvPWan3g==} + '@modelcontextprotocol/sdk@1.24.2': + resolution: {integrity: sha512-hS/kzSfchqzvUeJUsdiDHi84/kNhLIZaZ6coGQVwbYIelOBbcAwUohUfaQTLa1MvFOK/jbTnGFzraHSFwB7pjQ==} engines: {node: '>=18'} peerDependencies: '@cfworker/json-schema': ^4.1.1 + zod: ^4.1.12 peerDependenciesMeta: '@cfworker/json-schema': optional: true @@ -2587,10 +2588,6 @@ packages: html-escaper@2.0.2: resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} - http-errors@2.0.0: - resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} - engines: {node: '>= 0.8'} - http-errors@2.0.1: resolution: {integrity: sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==} engines: {node: '>= 0.8'} @@ -2865,6 +2862,9 @@ packages: jose@4.15.9: resolution: {integrity: sha512-1vUQX+IdDMVPj4k8kOxgUqlcK518yluMuGZwqlr44FS1ppZB/5GWh4rZG89erpOBOJjU/OBsnCVFfapsRz6nEA==} + jose@6.1.3: + resolution: {integrity: sha512-0TpaTfihd4QMNwrz/ob2Bp7X04yuxJkjRGi4aKmOqwhov54i6u79oCv7T+C7lo70MKH6BesI3vscD1yb/yzKXQ==} + js-tiktoken@1.0.21: resolution: {integrity: sha512-biOj/6M5qdgx5TKjDnFT1ymSpM5tbd3ylwDtrQvFQSu0Z7bBYko2dF+W/aUkXUPuk6IVpRxk/3Q2sHOzGlS36g==} @@ -3372,10 +3372,6 @@ packages: resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} engines: {node: '>= 0.6'} - raw-body@3.0.1: - resolution: {integrity: sha512-9G8cA+tuMS75+6G/TzW8OtLzmBDMo8p1JRxN5AZ+LAp8uxGA8V8GZm4GQ4/N5QNQEnLmg6SS7wyuSmbKepiKqA==} - engines: {node: '>= 0.10'} - raw-body@3.0.2: resolution: {integrity: sha512-K5zQjDllxWkf7Z5xJdV0/B0WTNqx6vxG70zJE4N0kBs4LovmEYWJzQGxC9bS9RAKu3bgM40lrd5zoLJ12MQ5BA==} engines: {node: '>= 0.10'} @@ -3519,10 +3515,6 @@ packages: resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} engines: {node: '>=10'} - statuses@2.0.1: - resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} - engines: {node: '>= 0.8'} - statuses@2.0.2: resolution: {integrity: sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==} engines: {node: '>= 0.8'} @@ -3820,9 +3812,9 @@ packages: snapshots: - '@anthropic-ai/claude-agent-sdk@0.1.47(zod@4.1.12)': + '@anthropic-ai/claude-agent-sdk@0.1.47(zod@4.1.13)': dependencies: - zod: 4.1.12 + zod: 4.1.13 optionalDependencies: '@img/sharp-darwin-arm64': 0.33.5 '@img/sharp-darwin-x64': 0.33.5 @@ -4607,7 +4599,7 @@ snapshots: dependencies: '@langchain/core': 1.0.6(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.204.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.0))(openai@6.9.1(ws@8.18.3)(zod@4.1.12)) '@langchain/langgraph': 1.0.2(@langchain/core@1.0.6(@opentelemetry/api@1.9.0)(@opentelemetry/exporter-trace-otlp-proto@0.204.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.2.0(@opentelemetry/api@1.9.0))(openai@6.9.1(ws@8.18.3)(zod@4.1.12)))(zod-to-json-schema@3.25.0(zod@4.1.12))(zod@4.1.12) - '@modelcontextprotocol/sdk': 1.22.0(@cfworker/json-schema@4.1.1) + '@modelcontextprotocol/sdk': 1.24.2(@cfworker/json-schema@4.1.1)(zod@4.1.12) debug: 4.4.3(supports-color@5.5.0) zod: 4.1.12 optionalDependencies: @@ -4639,7 +4631,7 @@ snapshots: '@microsoft/m365agentsplayground@0.2.20': {} - '@modelcontextprotocol/sdk@1.22.0(@cfworker/json-schema@4.1.1)': + '@modelcontextprotocol/sdk@1.24.2(@cfworker/json-schema@4.1.1)(zod@4.1.12)': dependencies: ajv: 8.17.1 ajv-formats: 3.0.1(ajv@8.17.1) @@ -4650,8 +4642,9 @@ snapshots: eventsource-parser: 3.0.6 express: 5.2.0 express-rate-limit: 7.5.1(express@5.2.0) + jose: 6.1.3 pkce-challenge: 5.0.0 - raw-body: 3.0.1 + raw-body: 3.0.2 zod: 4.1.12 zod-to-json-schema: 3.25.0(zod@4.1.12) optionalDependencies: @@ -4659,6 +4652,27 @@ snapshots: transitivePeerDependencies: - supports-color + '@modelcontextprotocol/sdk@1.24.2(@cfworker/json-schema@4.1.1)(zod@4.1.13)': + dependencies: + ajv: 8.17.1 + ajv-formats: 3.0.1(ajv@8.17.1) + content-type: 1.0.5 + cors: 2.8.5 + cross-spawn: 7.0.6 + eventsource: 3.0.7 + eventsource-parser: 3.0.6 + express: 5.2.0 + express-rate-limit: 7.5.1(express@5.2.0) + jose: 6.1.3 + pkce-challenge: 5.0.0 + raw-body: 3.0.2 + zod: 4.1.13 + zod-to-json-schema: 3.25.0(zod@4.1.13) + optionalDependencies: + '@cfworker/json-schema': 4.1.1 + transitivePeerDependencies: + - supports-color + '@napi-rs/wasm-runtime@0.2.12': dependencies: '@emnapi/core': 1.7.1 @@ -4678,61 +4692,61 @@ snapshots: '@nodelib/fs.scandir': 2.1.5 fastq: 1.19.1 - '@openai/agents-core@0.1.11(@cfworker/json-schema@4.1.1)(ws@8.18.3)(zod@4.1.12)': + '@openai/agents-core@0.1.11(@cfworker/json-schema@4.1.1)(ws@8.18.3)(zod@4.1.13)': dependencies: debug: 4.4.3(supports-color@5.5.0) - openai: 5.23.2(ws@8.18.3)(zod@4.1.12) + openai: 5.23.2(ws@8.18.3)(zod@4.1.13) optionalDependencies: - '@modelcontextprotocol/sdk': 1.22.0(@cfworker/json-schema@4.1.1) - zod: 4.1.12 + '@modelcontextprotocol/sdk': 1.24.2(@cfworker/json-schema@4.1.1)(zod@4.1.13) + zod: 4.1.13 transitivePeerDependencies: - '@cfworker/json-schema' - supports-color - ws - '@openai/agents-openai@0.1.11(@cfworker/json-schema@4.1.1)(ws@8.18.3)(zod@4.1.12)': + '@openai/agents-openai@0.1.11(@cfworker/json-schema@4.1.1)(ws@8.18.3)(zod@4.1.13)': dependencies: - '@openai/agents-core': 0.1.11(@cfworker/json-schema@4.1.1)(ws@8.18.3)(zod@4.1.12) + '@openai/agents-core': 0.1.11(@cfworker/json-schema@4.1.1)(ws@8.18.3)(zod@4.1.13) debug: 4.4.3(supports-color@5.5.0) - openai: 5.23.2(ws@8.18.3)(zod@4.1.12) - zod: 4.1.12 + openai: 5.23.2(ws@8.18.3)(zod@4.1.13) + zod: 4.1.13 transitivePeerDependencies: - '@cfworker/json-schema' - supports-color - ws - '@openai/agents-openai@0.3.2(@cfworker/json-schema@4.1.1)(ws@8.18.3)(zod@4.1.12)': + '@openai/agents-openai@0.3.2(@cfworker/json-schema@4.1.1)(ws@8.18.3)(zod@4.1.13)': dependencies: - '@openai/agents-core': 0.1.11(@cfworker/json-schema@4.1.1)(ws@8.18.3)(zod@4.1.12) + '@openai/agents-core': 0.1.11(@cfworker/json-schema@4.1.1)(ws@8.18.3)(zod@4.1.13) debug: 4.4.3(supports-color@5.5.0) - openai: 6.9.1(ws@8.18.3)(zod@4.1.12) - zod: 4.1.12 + openai: 6.9.1(ws@8.18.3)(zod@4.1.13) + zod: 4.1.13 transitivePeerDependencies: - '@cfworker/json-schema' - supports-color - ws - '@openai/agents-realtime@0.1.11(@cfworker/json-schema@4.1.1)(zod@4.1.12)': + '@openai/agents-realtime@0.1.11(@cfworker/json-schema@4.1.1)(zod@4.1.13)': dependencies: - '@openai/agents-core': 0.1.11(@cfworker/json-schema@4.1.1)(ws@8.18.3)(zod@4.1.12) + '@openai/agents-core': 0.1.11(@cfworker/json-schema@4.1.1)(ws@8.18.3)(zod@4.1.13) '@types/ws': 8.18.1 debug: 4.4.3(supports-color@5.5.0) ws: 8.18.3 - zod: 4.1.12 + zod: 4.1.13 transitivePeerDependencies: - '@cfworker/json-schema' - bufferutil - supports-color - utf-8-validate - '@openai/agents@0.1.11(@cfworker/json-schema@4.1.1)(ws@8.18.3)(zod@4.1.12)': + '@openai/agents@0.1.11(@cfworker/json-schema@4.1.1)(ws@8.18.3)(zod@4.1.13)': dependencies: - '@openai/agents-core': 0.1.11(@cfworker/json-schema@4.1.1)(ws@8.18.3)(zod@4.1.12) - '@openai/agents-openai': 0.1.11(@cfworker/json-schema@4.1.1)(ws@8.18.3)(zod@4.1.12) - '@openai/agents-realtime': 0.1.11(@cfworker/json-schema@4.1.1)(zod@4.1.12) + '@openai/agents-core': 0.1.11(@cfworker/json-schema@4.1.1)(ws@8.18.3)(zod@4.1.13) + '@openai/agents-openai': 0.1.11(@cfworker/json-schema@4.1.1)(ws@8.18.3)(zod@4.1.13) + '@openai/agents-realtime': 0.1.11(@cfworker/json-schema@4.1.1)(zod@4.1.13) debug: 4.4.3(supports-color@5.5.0) - openai: 5.23.2(ws@8.18.3)(zod@4.1.12) - zod: 4.1.12 + openai: 5.23.2(ws@8.18.3)(zod@4.1.13) + zod: 4.1.13 transitivePeerDependencies: - '@cfworker/json-schema' - bufferutil @@ -6042,14 +6056,6 @@ snapshots: html-escaper@2.0.2: {} - http-errors@2.0.0: - dependencies: - depd: 2.0.0 - inherits: 2.0.4 - setprototypeof: 1.2.0 - statuses: 2.0.1 - toidentifier: 1.0.1 - http-errors@2.0.1: dependencies: depd: 2.0.0 @@ -6507,6 +6513,8 @@ snapshots: jose@4.15.9: {} + jose@6.1.3: {} + js-tiktoken@1.0.21: dependencies: base64-js: 1.5.1 @@ -6801,7 +6809,7 @@ snapshots: is-inside-container: 1.0.0 wsl-utils: 0.1.0 - openai@4.104.0(ws@8.18.3)(zod@4.1.12): + openai@4.104.0(ws@8.18.3)(zod@4.1.13): dependencies: '@types/node': 20.19.25 '@types/node-fetch': 2.6.13 @@ -6812,19 +6820,25 @@ snapshots: node-fetch: 2.7.0 optionalDependencies: ws: 8.18.3 - zod: 4.1.12 + zod: 4.1.13 transitivePeerDependencies: - encoding - openai@5.23.2(ws@8.18.3)(zod@4.1.12): + openai@5.23.2(ws@8.18.3)(zod@4.1.13): optionalDependencies: ws: 8.18.3 - zod: 4.1.12 + zod: 4.1.13 openai@6.9.1(ws@8.18.3)(zod@4.1.12): optionalDependencies: ws: 8.18.3 zod: 4.1.12 + optional: true + + openai@6.9.1(ws@8.18.3)(zod@4.1.13): + optionalDependencies: + ws: 8.18.3 + zod: 4.1.13 optionator@0.9.4: dependencies: @@ -6962,13 +6976,6 @@ snapshots: range-parser@1.2.1: {} - raw-body@3.0.1: - dependencies: - bytes: 3.1.2 - http-errors: 2.0.0 - iconv-lite: 0.7.0 - unpipe: 1.0.0 - raw-body@3.0.2: dependencies: bytes: 3.1.2 @@ -7125,8 +7132,6 @@ snapshots: dependencies: escape-string-regexp: 2.0.0 - statuses@2.0.1: {} - statuses@2.0.2: {} string-length@4.0.2: @@ -7396,6 +7401,10 @@ snapshots: dependencies: zod: 4.1.12 + zod-to-json-schema@3.25.0(zod@4.1.13): + dependencies: + zod: 4.1.13 + zod@4.1.12: {} zod@4.1.13: {} diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 6e43ca75..3ed0aa51 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -23,7 +23,7 @@ overrides: "@opentelemetry/semantic-conventions": "^1.37.0" # Model Context Protocol SDK - "@modelcontextprotocol/sdk": "^1.19.0" + "@modelcontextprotocol/sdk": "^1.24.0" # Azure packages "@azure/monitor-opentelemetry-exporter": "^1.0.0-beta.32" diff --git a/tests/package.json b/tests/package.json index 714a6a03..afe9a3b7 100644 --- a/tests/package.json +++ b/tests/package.json @@ -40,7 +40,7 @@ "@microsoft/agents-a365-observability-hosting": "workspace:*", "@microsoft/agents-a365-runtime": "workspace:*", "@microsoft/agents-hosting": "workspace:*", - "@modelcontextprotocol/sdk": "*", + "@modelcontextprotocol/sdk": "workspace:*", "@openai/agents": "*", "@openai/agents-openai": "*", "@opentelemetry/api": "*",