使用说明
FastMCP CMDB助手
专为Sangfor CMDB工作流设计的最小FastMCP服务器。它只暴露了 域查找/创建工具以及支持资源(产品线、Zeus 用户目录),因此LLM客户端可以在没有任何演示的情况下对CMDB数据进行推理 城市提示或回声助手等功能。
项目布局
.
├─ app.py # Builds the FastMCP instance and runs the server
├─ config.py # ProjectConfig with CMDB + Zeus endpoint helpers
├─ logging_config.py # Rich console + file logging setup
├─ resources/ # CMDB product lines + Zeus users @resource definitions
├─ tools/ # CMDB domain tools (list + create)
├─ fastmcp.json # FastMCP CLI config (transport / host / port)
├─ pyproject.toml
├─ requirements.txt
└─ README.md
设置
python -m venv .venv
.\.venv\Scripts\activate
pip install -e ".[dev]"
fastmcp dev # uses fastmcp.json (HTTP + SSE)
集 CMDB_COOKIE 在你的壳或 .env 因此,工具和资源都可以调用
Sangfor终点。
配置
ProjectConfig 定义:
cmdb_base_url:默认为https://rudder.sangfor.com/cmdb/api/v1.cmdb_cookie:已从CMDB_COOKIE.product_lines_url,user_directory_url,list_children_url,post_domain_url:派生助手,因此每个模块都使用一致的URL。
工具(tools/cmdb.py)
- exist_cmdb-domain_list –获取
/deploy/tree/root/children/list- 参数:
page,rows(默认值为10000),productId,childrenType. - 退货
{ query, total, domains[], raw }. domains[]字段包括:addr: unique domain/addr string (主键,用于匹配/去重).domainId/id,productId,productName,teamId,teamName.- 联络:
devBy,opsBy,useBy. - 网络元数据:
domainType,domainTypeName,serveType,recordType,reflectAddr,regionId,regionName. - 审核信息:
createdAt,updatedAt,createBy,updateBy.
- 参数:
- create_cmdbdomain –帖子
/deploy/domain- Payload反映CMDB UI字段(
addr,productId,teamId,serveType,domainType,status,regionId、联系人、描述)。 - 响应返回
{ request, result }为了可追溯性。
- Payload反映CMDB UI字段(
这两个工具都验证了这一点 cmdb_cookie 在发出请求之前设置。
资源(resources/__init__.py)
cmdb://product-lines- 呼叫
product_lines_url. - 答复:
{ rows: 1000, products[], raw }. products[]领域:product_id,product_name,business_id,business_dept.显示器product_name,但发送product_idCMDB API。
- 呼叫
zeus://users{?rows}- 呼叫
user_directory_url可配置rows(默认值为1000)。 - 答复:
{ rows, users[], raw }. users[]领域:id,name账户display_name,full_name(优先使用),group,role.
- 呼叫
日志记录
logging_config.py 将富日志路由到控制台 logs/fastmcp.log.
在工具/资源范围内,使用 ctx.info/ctx.error 因此MCP客户端接收
操作运行时的进度更新。
中文速览
- 该项目仅保留 CMDB 相关能力:
exist_cmdb_domain_list/create_cmdb_domain工具,以及cmdb://product-lines、zeus://users资源。 addr是域名查询结果的唯一键,LLM 去重或匹配时务必按addr判断。product_name适合给用户展示,但在 POST/GET 参数中必须传product_id。full_name(姓名+工号)是 Zeus 用户目录的首选匹配字段。- 启动前在环境变量或
.env中设置CMDB_COOKIE,再运行fastmcp dev即可通过 MCP 客户端调用以上能力。