使用说明
相关工作: 这一问题空间的初步发展已经趋同 mcp快速服务 --一个使用装饰器从普通函数创建MCP服务器的最小Python工具包。该回购仍然可用;首先检查规范仓库以获取最新工具。
---#mcp工具箱
使用模型上下文协议(MCP)将Python函数暴露给AI代理。
什么是mcp工具箱?
mcp-toolbox是一个轻量级的Python工具包,用于构建与mcp兼容的工具服务器。它可以轻松地将Python函数作为AI代理(如Claude)可以发现和使用的工具公开。通过类型提示和内置传输支持自动生成JSON模式,您可以在几分钟内从Python函数转到生产就绪的MCP服务器。
特性
- 基于简单装饰器的注册 -使用@tool、@resource和@prompt装饰器来公开Python函数
- 自动模式生成 -JSON模式由Python类型提示自动生成
- 多个传输 -内置支持stdio和HTTP传输
- 完全符合MCP -实现模型上下文协议规范
- 类型安全 -类型提示在运行时根据生成的模式进行验证
- 最小依赖性 -仅使用Python标准库(无严重依赖关系)
- Docstring集成 -函数文档字符串自动成为工具描述
- 错误处理 -正确的错误传播和有用的消息
安装
pip install mcp-toolbox
或者从源代码安装:
git clone https://github.com/yourusername/mcp-toolbox.git
cd mcp-toolbox
pip install -e .
快速开始
在5分钟内创建一个简单的天气工具服务器:
from mcp_toolbox import MCPServer
server = MCPServer(name="weather-tools")
@server.tool()
def get_weather(city: str) -> str:
"""Get current weather for a city."""
# Your implementation here
return f"Weather in {city}: Sunny, 72F"
if __name__ == "__main__":
server.run_stdio()
使用示例
基本工具注册
from mcp_toolbox import MCPServer
server = MCPServer(name="math-tools")
@server.tool()
def add(a: int, b: int) -> int:
"""Add two numbers."""
return a + b
@server.tool()
def multiply(x: float, y: float) -> float:
"""Multiply two numbers."""
return x * y
server.run_stdio()
高级功能
from mcp_toolbox import MCPServer
from typing import Optional, List
server = MCPServer(
name="data-tools",
description="Tools for working with data"
)
@server.tool(
name="custom_name",
description="Custom description",
tags=["data", "processing"]
)
def process_items(
items: List[str],
filter_keyword: Optional[str] = None
) -> List[str]:
"""Process a list of items with optional filtering."""
if filter_keyword:
return [item for item in items if filter_keyword in item]
return items
@server.resource()
def get_database_status() -> dict:
"""Get current database connection status."""
return {"status": "connected", "queries": 42}
server.run_stdio()
HTTP传输
from mcp_toolbox import MCPServer
server = MCPServer(name="api-tools")
@server.tool()
def health_check() -> str:
"""Server health check."""
return "OK"
# Run on HTTP instead of stdio
server.run_http(host="127.0.0.1", port=8000)
运作原理
- 套准功能 -使用装饰器将Python函数标记为工具
- 生成模式 -类型提示会自动转换为JSON模式
- 启动服务器 -使用stdio或HTTP传输运行服务器
- AI代理连接 -客服通过MCP发现您的工具并致电给他们
API 参考
MCP服务器
server = MCPServer(
name: str, # Server name
description: Optional[str] = None, # Server description
version: str = "1.0.0" # Server version
)
方法:
@tool()-将函数注册为MCP工具@resource()-将函数注册为资源@prompt()-注册提示模板run_stdio()-使用stdio传输运行run_http(host, port)-使用HTTP传输运行
建筑
- 服务器.py -核心MCPServer类和消息处理
- schema.py -键入JSON模式转换提示
- 装饰师.py -基于装修商的注册系统
- transport.py -Stdio和HTTP传输实现
贡献
我们欢迎捐款!请随时提交拉取请求。
- 分叉存储库
- 创建要素分支(
git checkout -b feature/amazing-feature) - 提交您的更改(
git commit -m 'Add amazing feature') - 推到分支(
git push origin feature/amazing-feature) - 打开拉取请求
许可证
此项目根据MIT许可证获得许可-有关详细信息,请参阅许可证文件。
示例
请参阅 examples/ 完整工作示例目录:
weather_server.py-天气工具服务器calculator_server.py-数学计算器服务器
