远程MCP服务器

一个使用MCP框架的简单客户端-服务器应用,支持Docker容器化部署,提供远程工具调用功能。

  • by CampbellJohn
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 campbelljohn/remote-mcp-server

使用说明

远程MCP服务器

一个使用MCP(模型上下文协议)框架和Docker容器化的简单客户端-服务器应用程序。

项目概述

该项目演示了一个具有客户端连接的简单MCP服务器。服务器公开了客户端可以远程调用的工具。整个应用程序使用Docker进行容器化,以便于部署和一致的环境。

特性

  • MCP服务器:将API端点公开为可以远程调用的工具
  • MCP客户端:连接到服务器并调用可用工具
  • 模块化工具架构:服务器工具被组织在单独的文件中,以提高可维护性
  • Docker支持:客户端和服务器都是容器化的
  • Docker Compose:轻松编排客户端和服务器容器

示例工具

你好,世界

一个简单的问候工具,返回问候消息。

参数:

  • name (string):要问候的名字

退货:

  • 问候语字符串

计算器

执行基本算术运算。

参数:

  • operation (string):要执行的操作(加、减、乘、除)
  • a (浮点数):第一个数字
  • b (浮点数):第二个数字

退货:

  • 包含操作和结果的字典

入门指南

先决条件

  • Docker和Docker Compose
  • Python 3.12(如果在本地运行)

使用Docker运行

  1. 克隆存储库:

    git clone <repository-url>
    cd remote-mcp-server
    
  2. 构建并运行容器:

    docker-compose up --build
    
  3. 服务器将在以下时间可用 http://localhost:8000/mcp

本地运行

服务器

  1. 导航到服务器目录:

    cd server
    
  2. 安装依赖项:

    pip install -r requirements.txt
    
  3. 运行服务器:

    python server.py
    

客户端

  1. 导航到客户端目录:

    cd client
    
  2. 安装依赖项:

    pip install -r requirements.txt
    
  3. 运行客户端:

    python client.py
    

添加新工具

要向服务器添加新工具,请执行以下操作:

  1. 在中创建一个新的Python文件 server/tools 目录
  2. 定义a register_tool 接受服务器参数的函数
  3. 使用服务器装饰器定义您的工具
  4. 在中导入并注册您的工具 server/tools/__init__.py

例子:

# server/tools/new_tool.py
from mcp.server.fastmcp import Context

def register_tool(server):
    @server.tool(
        name="new_tool",
        description="Description of the new tool"
    )
    def new_tool(param1: str, param2: int, ctx: Context) -> dict:
        # Tool implementation
        return {"result": "some result"}

然后更新 __init__.py:

from . import new_tool

def register_all_tools(server):
    # ... existing tools
    new_tool.register_tool(server)

许可证

版权所有(c)2025约翰·坎贝尔