工具注册表服务器
](https://pypi.org/project/toolregistry-server/)  
定义自定义工具,并通过OpenAPI或MCP接口为其提供服务。建于 工具注册表.
概述
toolregistry-server 允许您将Python函数注册为工具,并通过多种协议将其作为服务公开。它提供:
- 中央路线表:桥接的统一路由层
ToolRegistry以及协议适配器 - OpenAPI适配器:将工具作为RESTful HTTP端点公开,并自动生成OpenAPI模式
- MCP适配器:通过显示工具 模型上下文协议 用于LLM集成
- 认证:内置承载令牌身份验证支持
- 命令行界面:用于运行服务器的命令行界面
生态系统
| 包 | 描述 | PyPI | 文档 |
|---|
toolregistry (core)
↓
toolregistry-server (tool server)
↓
toolregistry-hub (tool collection + server config)安装
基本安装
pip install toolregistry-server支持OpenAPI
pip install toolregistry-server[openapi]支持MCP
pip install toolregistry-server[mcp]完整安装
pip install toolregistry-server[all]快速开始
使用路由表
from toolregistry import ToolRegistry
from toolregistry_server import RouteTable
# Create a registry and register tools
registry = ToolRegistry()
@registry.register
def greet(name: str) -> str:
"""Greet someone by name."""
return f"Hello, {name}!"
# Create a route table
route_table = RouteTable(registry)
# List all routes
for route in route_table.list_routes():
print(f"{route.path} -> {route.tool_name}")创建OpenAPI服务器
from toolregistry import ToolRegistry
from toolregistry_server import RouteTable
from toolregistry_server.openapi import create_openapi_app
# Setup registry and route table
registry = ToolRegistry()
# ... register tools ...
route_table = RouteTable(registry)
# Create FastAPI app
app = create_openapi_app(route_table)
# Run with uvicorn
if __name__ == "__main__":
import uvicorn
uvicorn.run(app, host="0.0.0.0", port=8000)创建MCP服务器
from toolregistry import ToolRegistry
from toolregistry_server import RouteTable
from toolregistry_server.mcp import create_mcp_server
# Setup registry and route table
registry = ToolRegistry()
# ... register tools ...
route_table = RouteTable(registry)
# Create MCP server
server = create_mcp_server(route_table)
# Run the server
if __name__ == "__main__":
import asyncio
asyncio.run(server.run())使用CLI
# Start OpenAPI server
toolregistry-server --mode openapi --port 8000
# Start MCP server (stdio)
toolregistry-server --mode mcp
# With authentication
toolregistry-server --mode openapi --auth-token "your-secret-token"建筑
┌─────────────────────────────────────────────────────────────┐
│ ToolRegistry │
│ (tool definitions) │
└─────────────────────────┬───────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ RouteTable │
│ (central routing layer) │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ RouteEntry │ │ RouteEntry │ │ RouteEntry │ ... │
│ └─────────────┘ └─────────────┘ └─────────────┘ │
└─────────────────────────┬───────────────────────────────────┘
│
┌───────────────┼───────────────┐
▼ ▼ ▼
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ OpenAPI Adapter │ │ MCP Adapter │ │ gRPC Adapter │
│ (FastAPI) │ │ (MCP SDK) │ │ (future) │
└─────────────────┘ └─────────────────┘ └─────────────────┘
│ │ │
▼ ▼ ▼
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ HTTP Clients │ │ MCP Clients │ │ gRPC Clients │
└─────────────────┘ └─────────────────┘ └─────────────────┘文档
贡献
欢迎投稿!请查看我们的 贡献指南 了解详情。
许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
