⚠️ 已弃用
这个图书馆是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的一部分
许可证
麻省理工学院
