轻量级MCP协议服务器

一个轻量级的MCP协议服务器,允许通过简单的文件添加和装饰器使用扩展工具集,无需修改核心代码。

  • by dwhite-sys
  • Python
  • 本地部署
  • 3 星标
  • 更新于
在 GitHub 查看 dwhite-sys/SimpleMCP

使用说明

SimpleMCP

一种轻量级的类似MCP的替代(模型上下文协议)服务器,可以让你在不接触核心的情况下安装工具“套件”。放下一个新 _kit.py 归档 kits/,拍打 @tool 函数上的装饰器,服务器会自动拾取它们。无需手动导入,无需配置文件,无需大惊小怪。

运作原理

  • 服务器 (server.py):三种操作模式(见下文)。自动在启动时发现所有套件。
  • 套件 (kits/):每个工具包都是一个Python文件 @tool-装饰功能。这 kits/__init__.py auto在启动时发现并导入每个工具包。
  • 注册表 (utils/registry.py):The @tool 装饰器将函数注册到全局字典中。 extract_parameters 抓取类型提示,为工具的I/O构建JSON模式。
  • 配置 (config.py): MCP_MODE 标志(默认 False).集 MCP_MODE=true 通过env-var或直接编辑文件。
  • 客户端 (client.py):Streamlit前端,与服务器对话,并通过Groq路由工具调用。

包括套件

  • sqlite_kit --列出SQLite数据库中的表、列、预览行。
  • web_kit -通过Tavily API进行Web搜索、页面提取、抓取和映射。

添加新套件

  1. 在中创建文件 kits/例如。 kits/my_kit.py
  2. 导入装饰器: from utils import tool
  3. 使用类型提示和文档字符串编写函数:
from utils import tool

@tool
def do_something(query: str, limit: int = 10):
    """Does something cool with a query."""
    # your logic here
    return {"result": "stuff"}
  1. 就是这样。重新启动服务器,它就上线了。

设置

python -m venv .venv
source .venv/bin/activate
pip install fastapi uvicorn tavily streamlit requests groq

设置API密钥:

export TAVILY_API_KEY="your-tavily-key"
export GROQ_API_KEY="your-groq-key"

运行服务器:

HTTP模式 (用于Streamlit客户端/浏览器调试):

uvicorn server:app --host 0.0.0.0 --port 8000

MCP HTTP模式 (HTTP上的标准MCP端点——适用于任何兼容MCP的HTTP客户端):

MCP_MODE=true uvicorn server:app --host 0.0.0.0 --port 8000

在以下位置显示单个MCP端点 /mcp:

  • POST /mcp --JSON-RPC 2.0调度(initialize, tools/list, tools/call);根据客户端的不同,响应为SSE或JSON Accept 头球
  • GET /mcp --服务器发起的消息的SSE流/keepalive

MCP标准模式 (适用于Claude Desktop和任何兼容MCP的主机):

python server.py

运行客户端:

streamlit run client.py

连接到克劳德桌面

将此添加到您的 claude_desktop_config.json:

{
  "mcpServers": {
    "SimpleMCP": {
      "command": "/absolute/path/to/SimpleMCP/venv/python.exe",
      "args": ["/absolute/path/to/server.py"],
      "env": {"TAVILY_API_KEY": "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"}
    }
  }
}

Claude Desktop将生成 server.py 作为子进程,使用MCP JSON-RPC 2.0通过stdin/stdout进行通信。