使用说明
TMF620命令行界面与MCP
此仓库通过两个接口公开TMF620命令层:
- 用于渐进式发现的紧凑型HTTP CLI API
- 这里用作基准测试和测试的参考表面的MCP服务器
文件索引: docs/README.md
发动机特定 oa引擎CLI over HTTP控制平面配置文件
保持在 oa_engine 知识库;此存储库拥有通用
CLI风格的HTTP协议。
存储库布局:
tmf620/-TMF620模拟API、共享客户端、命令、服务器和基准测试tests/-pytest-discoverable包装器加上独立一致性、API和edge-case脚本docs/-长格式协议文档和指南benchmarks/-基准脚本和基准数据scripts/-回购入口点脚本specs/-源代码OpenAPI和协议规范tmf620/config/-TMF620运行时配置文件DOMAIN.md/AGENTS.md-回购级合约和代理指令tmf620/config/config.json-规范运行时数据和配置
TMF620示例实现保存在服务本地文件夹中,因此可以独立于其他系统进行部署。
对于一次只需要一个命令分支的代理,CLI API是更便宜的发现路径。这里保留MCP服务器作为发现有效载荷、工具列表大小和延迟测量的比较点。
保持两者的实际原因是:
- 紧凑型发现:代理可以从
GET /cli/tmf620/catalogmgt而不是预先获取完整的MCP工具列表 - 渐进式帮助:代理可以一次扩展一个命令分支
help - 更强的MCP契约:MCP工具现在公开显式模式,而不是通用模式
args物体 - 更简单的自动化:
curl对人类和代理都很有效,尤其是在命令界面已经结构化的情况下 - 一个共享的命令层:相同的命令定义支持HTTP CLI API、MCP参考表面和基准
TMF620产品目录管理,分为三层:
- 模拟TMF620 API
- 共享Python客户端
- 客户端上的两个适配器:HTTP CLI API和MCP
这将操作逻辑保持在一个地方,同时通过相同的TMF620命令集支持HTTP和MCP适配器。
请求路径:
- HTTP CLI API->
tmf620/server.py->tmf620/commands.py->tmf620/core.py->TMF620 API - MCP客户端->
tmf620/server.py->tmf620/core.py->TMF620 API
组件
1.模拟TMF620 API
文件: tmf620/mock_api.py
- 基于FastAPI的TMF620模拟服务器
- 示例目录、产品和规格
- Swagger文档
2.共享TMF620客户端
文件: tmf620/core.py
- 配置加载
- HTTP请求处理
- 健康检查
- TMF620资源的通用CRUD帮助程序
- 目录、类别、产品、价格、规格、进出口作业和枢纽运营
3.共享命令层
文件: tmf620/commands.py
- 规范TMF620命令注册表
- 机器可读的发现/帮助有效载荷
- shell和HTTP适配器共享的结构化命令调用
4.MCP+HTTP CLI适配器
文件: tmf620/server.py
- FastAPI+官方MCP SDK(
FastMCP) - 暴露
/cli/tmf620/catalogmgt作为主要的HTTP CLI端点 - 保持
/cli和/api/cli作为兼容性别名 - 公开用于基准测试和测试覆盖率的显式MCP工具
- 将HTTP CLI请求委托给
tmf620/commands.py - 将MCP工具委托到共享命令层
为模拟API+MCP服务器使用TMF620组合文件。
docker compose -f docker-compose.yml up --build
TMF620堆栈公开了:
- 模拟API
http://localhost:8801/tmf-api/productCatalogManagement/v5 - MCP运输
http://localhost:7701/mcp - 位于的HTTP CLI API
http://localhost:7701/cli/tmf620/catalogmgt
容器使用环境重写,而不是重写配置文件。在匹配的撰写文件中设置它们,或使用 .env 使用Docker Compose编写文件:
TMF620_API_URL
没有Docker
使用此路径进行本地开发 uv.
安装依赖项
uv sync
启动模拟API
uv run tmf620-mock-server
使用HTTP CLI API
curl http://localhost:7701/cli/tmf620/catalogmgt
curl "http://localhost:7701/cli/tmf620/catalogmgt?verbose=true"
curl -X POST http://localhost:7701/cli/tmf620/catalogmgt \
-H "Content-Type: application/json" \
-d '{"command":"help","args":{"command":"offering patch"}}'
curl -X POST http://localhost:7701/cli/tmf620/catalogmgt \
-H "Content-Type: application/json" \
-d '{"command":"catalog list","args":{"lifecycle_status":"Active","limit":5}}'
启动MCP服务器
uv run tmf620-mcp-server
默认MCP服务器URL:
http://localhost:7701
配置
tmf620/config/config.json 由HTTP CLI API和MCP服务器使用:
{
"mcp_server": {
"host": "localhost",
"port": 7701,
"name": "TMF620 Product Catalog API"
},
"tmf620_api": {
"url": "http://localhost:8801/tmf-api/productCatalogManagement/v5"
}
}
环境变量在运行时覆盖文件值:
TMF620_API_URL
您还可以用以下命令覆盖配置路径 TMF620_CONFIG_PATH.
HTTP CLI命令
# Discovery
curl http://localhost:7701/cli/tmf620/catalogmgt
curl "http://localhost:7701/cli/tmf620/catalogmgt?verbose=true"
curl -X POST http://localhost:7701/cli/tmf620/catalogmgt \
-H "Content-Type: application/json" \
-d '{"command":"help","args":{"command":"offering"}}'
# Read/list commands
curl -X POST http://localhost:7701/cli/tmf620/catalogmgt \
-H "Content-Type: application/json" \
-d '{"command":"catalog list","args":{"limit":5}}'
curl -X POST http://localhost:7701/cli/tmf620/catalogmgt \
-H "Content-Type: application/json" \
-d '{"command":"catalog list","args":{"lifecycle_status":"Active","limit":5}}'
# Create/patch commands use JSON bodies because TMF620 resource payloads are wide
curl -X POST http://localhost:7701/cli/tmf620/catalogmgt \
-H "Content-Type: application/json" \
-d '{"command":"catalog create","args":{"body":{"name":"Business Catalog","lifecycleStatus":"Active"}}}'
MCP使用
Claude桌面配置示例:
{
"mcpServers": {
"tmf620-mcp": {
"command": "uv",
"args": ["run", "tmf620-mcp-server"],
"cwd": "/path/to/tmf620-mcp-server"
}
}
}
可用的MCP工具:
tmf620_healthtmf620_configtmf620_discover- 每个叶子命令一个显式工具
tmf620/commands.py
测试
# Mock API
curl http://localhost:8801/tmf-api/productCatalogManagement/v5/productCatalog
# HTTP CLI API
curl http://localhost:7701/cli/tmf620/catalogmgt
curl -X POST http://localhost:7701/cli/tmf620/catalogmgt -H "Content-Type: application/json" -d '{"command":"catalog list","args":{}}'
# MCP server
curl http://localhost:7701/health
# Pytest suite
pytest tests
代币基准
使用内置基准测试来测量实时MCP工具有效负载以及紧凑的HTTP CLI发现流:
uv run tmf620-benchmark token
uv run tmf620-benchmark token --output json
延迟基准
当您希望请求到应答的计时,而不仅仅是调用计时时,请使用延迟基准:
uv run tmf620-benchmark latency 30 --warmup 1
包装
控制台脚本由以下人员公开 pyproject.toml:
tmf620-mock-servertmf620-mcp-servertmf620-benchmark
