LearnNewsExamplesServices
Frontmatter
id7939
titleFeat: Implement Dynamic Tool Proxies for MCP Client
stateClosed
labels
enhancementai
assigneestobiu
createdAtNov 30, 2025, 12:03 AM
updatedAtNov 30, 2025, 12:11 AM
githubUrlhttps://github.com/neomjs/neo/issues/7939
authortobiu
commentsCount1
parentIssue7931
subIssues[]
subIssuesCompleted0
subIssuesTotal0
blockedBy[]
blocking[]
closedAtNov 30, 2025, 12:11 AM

Feat: Implement Dynamic Tool Proxies for MCP Client

Closed v11.14.0 enhancementai
tobiu
tobiu commented on Nov 30, 2025, 12:03 AM

This task aims to enhance the MCP Client by implementing Dynamic Tool Proxies. After connecting to an MCP server, the client will expose the server''s tools as directly callable methods under a client.tools namespace. This improves ergonomics, discovery, and enables future argument validation.

Deliverables

  1. Dynamic Tool Proxy Implementation: Enhance Neo.ai.mcp.client.Client to:
    • Fetch the list of tools from the connected MCP server (using listTools()).
    • Dynamically create proxy methods on a client.tools object for each discovered tool.
    • Each proxy method will automatically call client.callTool() with the correct tool name and passed arguments.
  2. Demo Agent Update: Modify ai/agents/mcp-demo-agent.mjs to demonstrate using the new client.tools.<toolName>() syntax.
  3. Argument Validation (Optional/Future): (Consider for later) Integrate OpenAPI schemas from listTools() to perform client-side argument validation before making the callTool request.
tobiu assigned to @tobiu on Nov 30, 2025, 12:03 AM
tobiu added the enhancement label on Nov 30, 2025, 12:03 AM
tobiu added the ai label on Nov 30, 2025, 12:03 AM
tobiu added parent issue #7931 on Nov 30, 2025, 12:03 AM
tobiu referenced in commit d90957a - "Feat: Implement Dynamic Tool Proxies for MCP Client #7939" on Nov 30, 2025, 12:10 AM
tobiu
tobiu Nov 30, 2025, 12:11 AM

Input from Gemini 2.5:

✦ I have implemented Dynamic Tool Proxies for the MCP Client.

Deliverables Completed

  1. Dynamic Tool Proxy Implementation: Enhanced Neo.ai.mcp.client.Client to dynamically create proxy methods on a client.tools object for each discovered tool. Tool names are converted from snake_case to camelCase for ergonomic access.
  2. Demo Agent Update: Modified ai/agents/mcp-demo-agent.mjs to successfully use the new client.tools.<toolName>() syntax (e.g., ghClient.tools.listIssues()).
tobiu closed this issue on Nov 30, 2025, 12:11 AM