跳转至

快速开始

本指南将引导您使用 toolregistry-server 将工具暴露为服务的基本用法。

使用 RouteTable

RouteTable 是中央路由层,桥接 ToolRegistry 和协议适配器。

from toolregistry import ToolRegistry
from toolregistry_server import RouteTable

# 创建注册表并注册工具
registry = ToolRegistry()

@registry.register
def greet(name: str) -> str:
    """按名称问候某人。"""
    return f"Hello, {name}!"

@registry.register
def add(a: float, b: float) -> float:
    """两数相加。"""
    return a + b

# 创建路由表
route_table = RouteTable(registry)

# 列出所有路由
for route in route_table.list_routes():
    print(f"{route.path} -> {route.tool_name}")

创建 OpenAPI 服务器

使用 FastAPI 将工具暴露为 RESTful HTTP 端点:

from toolregistry import ToolRegistry
from toolregistry_server import RouteTable
from toolregistry_server.openapi import create_openapi_app

# 设置注册表和路由表
registry = ToolRegistry()

@registry.register
def greet(name: str) -> str:
    """按名称问候某人。"""
    return f"Hello, {name}!"

route_table = RouteTable(registry)

# 创建 FastAPI 应用
app = create_openapi_app(route_table)

# 使用 uvicorn 运行
if __name__ == "__main__":
    import uvicorn
    uvicorn.run(app, host="0.0.0.0", port=8000)

您的工具现在可以通过 http://localhost:8000/ 的 POST 端点访问。

创建 MCP 服务器

通过模型上下文协议暴露工具,用于 LLM 集成:

from toolregistry import ToolRegistry
from toolregistry_server import RouteTable
from toolregistry_server.mcp import create_mcp_server, run_streamable_http

# 设置注册表和路由表
registry = ToolRegistry()

@registry.register
def greet(name: str) -> str:
    """按名称问候某人。"""
    return f"Hello, {name}!"

route_table = RouteTable(registry)

# 创建并运行 MCP 服务器
server = create_mcp_server(route_table)

if __name__ == "__main__":
    import asyncio
    asyncio.run(run_streamable_http(server, host="0.0.0.0", port=8000))

使用命令行工具

无需编写代码即可启动服务器的最快方式:

# 启动 OpenAPI 服务器
toolregistry-server openapi --config config.json --port 8000

# 启动 MCP 服务器(stdio 传输)
toolregistry-server mcp --config config.json

# 启动 MCP 服务器(可流式 HTTP 传输)
toolregistry-server mcp --config config.json --transport streamable-http --port 8000

参见 命令行工具参考配置指南 了解配置文件格式的详细信息。

下一步