使用说明
⚠️ 已弃用
这个图书馆是Ourochronos砖砌系统的一部分。它已作为依赖项被删除,不再维护。 此仓库仅供参考。
我们的mcp基地
在ourochronos生态系统中构建MCP(模型上下文协议)服务器的基本框架。
概述
我们的mcp库为mcp服务器实现提供了可重用的模式:一个具有生命周期钩子的抽象基类、一个基于装饰器的工具路由器和一致的响应格式。它减少了样板,并确保生态系统中的所有MCP服务器遵循相同的约定。
安装
pip install our-mcp-base
需要 mcp>=1.0.
用法
基本服务器
from mcp.types import Tool
from our_mcp_base import MCPServerBase
class MyServer(MCPServerBase):
server_name = "my-server"
def get_tools(self) -> list[Tool]:
return [
Tool(name="greet", description="Say hello", inputSchema={...}),
]
def handle_tool(self, name: str, arguments: dict) -> dict:
if name == "greet":
return {"success": True, "message": f"Hello, {arguments['name']}!"}
return {"success": False, "error": f"Unknown tool: {name}"}
if __name__ == "__main__":
MyServer().run()
使用生命周期挂钩
MyServer(
startup_hook=lambda: init_database(),
health_check=lambda: check_db_connection(),
).run()
奔跑 --health-check 执行健康检查并退出,或 --skip-startup-hook 跳过初始化。
工具路由器
from our_mcp_base import ToolRouter
router = ToolRouter()
@router.register("greet")
def handle_greet(name: str, enthusiasm: int = 1) -> dict:
return {"success": True, "message": f"Hello, {name}{'!' * enthusiasm}"}
# In handle_tool:
result = router.dispatch(name, arguments)
响应助手
from our_mcp_base import success_response, error_response, not_found_response
success_response(data="value", count=42)
# → {"success": True, "data": "value", "count": 42}
error_response("Invalid input", code=400)
# → {"success": False, "error": "Invalid input", "code": 400}
not_found_response("Belief", "belief-123")
# → {"success": False, "error": "Belief not found: belief-123"}
自定义错误处理
def handle_db_error(exc: Exception, tool_name: str) -> list[TextContent]:
return [TextContent(type="text", text=json.dumps({"success": False, "error": str(exc)}))]
server = MyServer(error_handlers=[(DatabaseError, handle_db_error)])
API
| 符号 | 说明 |
|---|---|
MCPServerBase |
抽象基类——实现 get_tools() 和 handle_tool() |
ToolRouter |
基于装饰器的工具调度注册表 |
success_response(**kwargs) |
退货 {success: True, ...} |
error_response(error, **kwargs) |
退货 {success: False, error: str, ...} |
not_found_response(type, id) |
返回404样式的错误响应 |
发展
# Install with dev dependencies
make dev
# Run linters
make lint
# Run tests
make test
# Run tests with coverage
make test-cov
# Auto-format
make format
国家所有权
没有。此包仅提供基类和实用程序。State由继承自以下内容的具体MCP服务器实现拥有 MCPServerBase.
Valence的一部分
这块砖是 价 知识基础。看 我们的基础设施 我们的赭石公约。
许可证
麻省理工学院