P

mcp-registry

...
Created 12/26/2024byARadRareness

Categories

ai-toolsllmmcppython

Language:

Python

Stars:

13

Forks:

2

MCP Registry & FastMCP-HTTP

This repository is a combination of two complementary components.

MCP Registry is a server solution that manages and coordinates multiple MCP (Model Context Protocol) servers. It provides:

  • Central registration for MCP servers
  • Dynamic port allocation
  • Health monitoring of registered servers
  • Unified access to tools across all registered servers

FastMCP-HTTP is a Python package that provides an HTTP REST client-server solution for MCP. It offers a unified interface for accessing tools, prompts and resources through HTTP endpoints.

Components

HTTP Server

The FastMCPHttpServer provides an HTTP server solution for MCP.

HTTP Client

The FastMCPHttpClient offers both synchronous and asynchronous interfaces to interact with FastMCP servers. It is extended to also function as a client to the MCP registry server.

Registry Server

The MCP Registry Server acts as a central coordinator for multiple MCP servers. It handles server registration, health monitoring, and provides a unified interface to access tools across all connected servers.

MCP Explorer

The MCP Explorer provides a graphical user interface for interacting with MCP servers and their tools.

Installation

  1. Clone the repository
  2. Install the dependencies:
pip install -r requirements.txt

Examples

Using the registry server

FastMCPHttpServer

from fastmcp_http.server import FastMCPHttpServer

mcp = FastMCPHttpServer("MyServer", description="My MCP Server")

@mcp.tool()
def my_tool(text: str) -> str:
    return f"Processed: {text}"

if __name__ == "__main__":
    mcp.run_http()

FastMCPHttpClient

from fastmcp_http.client import FastMCPHttpClient


def main():
    # Connect to the registry server
    client = FastMCPHttpClient("http://127.0.0.1:31337")

    servers = client.list_servers()
    print(servers)

    tools = client.list_tools()
    print(tools)


            
        
            
                    result = client.call_tool("my_tool", {"text": "Hello, World!"})
    print(result)


if __name__ == "__main__":
    main()

Standalone

FastMCPHttpServer

from fastmcp_http.server import FastMCPHttpServer

mcp = FastMCPHttpServer("MyServer", description="My MCP Server")

@mcp.tool()
def my_tool(text: str) -> str:
    return f"Processed: {text}"

if __name__ == "__main__":
    mcp.run_http(register_server=False, port=15151)

FastMCPHttpClient

from fastmcp_http.client import FastMCPHttpClient


def main():
    client = FastMCPHttpClient("http://127.0.0.1:15151")

    tools = client.list_tools()
    print(tools)

    result = client.call_tool("my_tool", {"text": "Hello, World!"})
    print(result)


if __name__ == "__main__":
    main()

Usage

  1. Start the MCP Registry (start_registry_server.py)
  2. Start an MCP server (and verify that it is properly registered in the registry)
  3. Start a client and connect to the registry url

License

MIT License

Last updated: 2/20/2025

Publisher info

ARadRareness's avatar

ARadRareness

1
followers
0
following
7
repos

More MCP servers built with Python

mcp-atlassian

MCP server for Atlassian tools (Confluence, Jira)

By sooperset3200
https://github.com/fastnai/mcp-fastn

Unified Context Layer (UCL) is a multi-tenant Model Context Protocol (MCP) server that enables AI agents, automation platforms, and applications to connect to over 1,000 SaaS tools—such as Slack, Jira, Gmail, Shopify, Notion, and more—via a single standardized /command endpoint.

By Fastn
Web-To-MCP

Bridge the gap between design and code. Send pixel-perfect website components directly to Cursor or Claude Code using Model Context Protocol (MCP). No more screenshots or descriptions needed.

By Web-To-MCP