P

mcp-server-metatool

...
Created 1/22/2025bymetatool-ai

Language:

Python

Stars:

3

Forks:

2

MCP Server MetaTool

Warning
⚠️ This repo is no longer maintained!

Check out this Node.js substitute: metatool-ai/mcp-server-metamcp.
It has way better performance and fewer bugs.
(I am the author there too.)

Overview

Metatool MCP Server is a proxy server that joins multiple MCP servers and forward tool calls to the appropriate server. It should be used with metatool-app, the GUI tool manager for MCP which is also open source, together.

sequenceDiagram
    participant MCPClient as MCP Client (e.g. Claude Desktop)
    participant MetaToolMCP as MetaTool MCP Server
    participant MetaToolApp as MetaTool App
    participant MCPServers as Installed MCP Servers in Metatool App

    MCPClient ->> MetaToolMCP: Request list tools
    MetaToolMCP ->> MetaToolApp: Get tools configuration & status
    MetaToolApp ->> MetaToolMCP: Return tools configuration & status

    loop For each listed MCP Server
        MetaToolMCP ->> MCPServers: Request list_tools
        MCPServers ->> MetaToolMCP: Return list of tools
    end

    MetaToolMCP ->> MetaToolMCP: Aggregate tool lists
    MetaToolMCP ->> MCPClient: Return aggregated list of tools

    MCPClient ->> MetaToolMCP: Call tool
    MetaToolMCP ->> MCPServers: call_tool to target MCP Server
    MCPServers ->> MetaToolMCP: Return tool response
    MetaToolMCP ->> MCPClient: Return tool response

How it works

  • mcp-server-metatool itself is both a MCP client and a MCP server
  • On startup, it connects to the metatool-app API to get a list of MCP servers to connect to
  • On list_tools call of MCP, it joins all tools from all MCP servers with namespace isolation.
  • On call_tool call of MCP, it forwards the call to the appropriate server.

Installation

Best way to use this is through uv

            A METATOOL_API_KEY environment variable must be set
export METATOOL_API_KEY="my_api_key" # get from metatool-ai/metatool-app, which is self hostable and free
uvx mcp-server-metatool

You need a MCP Client to connect to this server to use it.

Additional Configuration

A METATOOL_API_BASE_URL environment variable can be set to point to another metatool instance

export METATOOL_API_BASE_URL="http://localhost:12005"

License

Apache License 2.0

Last updated: 2/23/2025

Publisher info

metatool-ai's avatar

metatool-ai

4
followers
0
following
3
repos

More MCP servers built with Python

mcp-logo-gen

By sshtunnelvision137
ledger-mcp-server

MCP Server for my ledger

By mprokopov1
clickhouse_mcp_server

A MCP server for ClickHouse

By ThomAub1