使用说明
一个最小的、以生产为导向的MCP形状的工具服务器脚手架,用于构建具有类型化工具契约、显式调用语义和确定性JSON I/O的代理AI服务,通过FastAPI提供服务。此项目提供了一个可运行的启动器,用于以MCP样式的模式将工具暴露给代理运行时:
显式工具注册表
机器可读输入模式
键入请求/响应合同
确定性调用表面
清洁的生命周期和错误处理
可测试且CI已验证
服务器公开了三个核心HTTP表面
客户端/代理运行时
|
|GET/工具→ 发现可用的工具+模式
|POST/调用→ 使用键入的JSON参数调用工具
|获取/健康z→ 活性判别
|
FastAPI运行时
|
类型验证(Pydantic)
|
工具执行
|
结构化JSON结果或错误
工具定义
一个稳定的名字
人类可读的描述
机器可读的输入模式
严格键入的输出形状
工具包括
sayHello–返回带有时间戳的问候语
reverse–反转输入文本并返回元数据
在本地运行
创建并激活虚拟环境:
python-m venv.venv
source.ven/bin/activate
pip安装-U pip
pip安装-e“.[dev]”
启动服务器
./scripts/run_local.sh
健康检查
卷曲http://127.0.0.1:8000/healthz
列出可用工具(包括模式)
卷曲http://127.0.0.1:8000/tools|python-m json.tool
调用工具
卷曲http://127.0.0.1:8000/invoke \
-H'内容类型:应用程序/json'\
d
“tool”:“sayHello”,
“args”:{“name”:“Dennis”},
“trace_id”:“demo-1”
}'|python-m json.tool
测试
python-m pytest-q
测试套件验证
工具发现
输入验证
调用成功
未知工具的错误行为
GitHub操作工作流
依赖项安装
用Ruff打闹
通过pytest提供完整的测试套件