Skip to content

Add MCP server tool loading to Agent SDK #12

@flyworker

Description

@flyworker

Context

mega-nova-api is implementing an MCP server (MeganovaAI/mega-nova-api#437) and nova_mesh already has MCP client support. The meganova-python Agent SDK should be able to load tools from MCP servers.

Current Agent SDK Tool System

@tool("get_weather", "Get weather")
def get_weather(city: str) -> str: ...

agent = Agent(client=client, tools=[get_weather])

Tools are registered via @tool decorator → ToolRegistry → OpenAI JSON Schema.

Requirements

  • Add optional mcp dependency: pip install meganova[mcp]
  • Create meganova/agents/mcp.py with MCPToolLoader
  • Support loading tools from MCP servers:
    from meganova.agents.mcp import load_mcp_tools
    
    mcp_tools = load_mcp_tools("npx @meganova/mcp-server")
    agent = Agent(client=client, tools=[get_weather, *mcp_tools])
  • Support STDIO and HTTP/SSE transports
  • Convert MCP tool schemas to ToolDefinition format
  • Handle MCP tool execution through MCP client protocol
  • Add example: examples/agent_with_mcp.py

Dependencies

  • mcp Python SDK (optional extra)

Reference

  • nova_mesh implementation: nova_mesh/mcp/client.py, nova_mesh/mcp/skill_pack.py

Metadata

Metadata

Assignees

No one assigned

    Labels

    agent-sdkNova Agent SDK featuresenhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions