模型控制协议服务器

一个模块化的模型控制协议(MCP)服务器,提供与GitHub仓库交互的工具。

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

使用说明

MCP服务器

一个模块化的模型控制协议(MCP)服务器,提供与GitHub存储库交互的工具。

特性

  • 模块化设计,具有可扩展的工具处理程序
  • 支持HTTP和stdio传输
  • GitHub存储库分析工具
  • 命令执行能力
  • CORS支持跨源请求

安装

  1. 安装所需的依赖项:
    pip install -r requirements.txt
    

用法

HTTP模式

使用可选的主机和端口以HTTP模式启动服务器:

python server.py --http --host 0.0.0.0 --port 8000

这将启动服务器并使其可在以下位置访问 http://localhost:8000 (或指定的主机/端口)。

标准模式

在stdio模式下启动服务器以进行基于管道的直接通信:

python server.py

当客户端通过stdin/stdout直接调用MCP服务器时,使用此模式。

可用工具

服务器提供以下工具:

  • 获取时间:获取当前时间
  • 计算:执行简单计算
  • get_weather:获取某个地点的模拟天气数据
  • github _博客:克隆和分析GitHub存储库
  • execute_命令:在系统shell中执行命令

API终点

在HTTP模式下运行时,服务器提供以下端点:

  • GET/初始化:初始化连接并获取可用工具
  • GET/list_tools:列出所有可用工具
  • POST/执行工具:使用参数执行特定工具

API使用示例

执行工具

POST /execute_tool
Content-Type: application/json

{
  "name": "github_repo",
  "arguments": {
    "action": "clone",
    "repo_url": "https://github.com/example/repo.git"
  }
}

扩展服务器

要添加新工具,请执行以下操作:

  1. 在中创建一个新的处理程序类 handlers 扩展的目录 BaseHandler
  2. 实施 execute 处理程序中的方法
  3. 在中注册您的处理程序 _setup_handlers 方法in server.py
  4. 在中创建相应的工具定义 _setup_tools 方法

测试

该服务器包括一套使用pytest和pytest-asyncio的全面单元测试。

运行测试

要运行测试,请执行以下操作:

pytest

要获得更详细的输出:

pytest -v

要运行具有代码覆盖率的测试,请执行以下操作:

pytest --cov=handlers --cov=utils

添加新测试

添加新处理程序时,在 tests 目录:

  1. 创建名为的测试文件 test_yourhandler.py
  2. 使用pytest夹具 conftest.py 在适当的情况下
  3. 为处理程序中的所有公共方法编写测试