MCP服务器框架

our-mcp-base是一个用于构建MCP(模型上下文协议)服务器的基框架,提供生命周期钩子、工具路由器和响应格式化等功能,减少样板代码并确保生态系统中的MCP服务器遵循相同约定。

  • by ourochronos
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 ourochronos/our-mcp-base

使用说明

⚠️ 已弃用

这个图书馆是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的一部分

这块砖是 价 知识基础。看 我们的基础设施 我们的赭石公约。

许可证

麻省理工学院