|
|
преди 3 седмици | |
|---|---|---|
| instrument_config_mcp | преди 3 седмици | |
| scripts | преди 3 седмици | |
| .dockerignore | преди 3 седмици | |
| .gitignore | преди 3 седмици | |
| Dockerfile | преди 3 седмици | |
| README.md | преди 3 седмици | |
| mcp-design.md | преди 3 седмици | |
| pyproject.toml | преди 3 седмици | |
| uv.lock | преди 3 седмици |
基于 FastMCP 的只读配置查询 MCP 服务,用于访问以下接口:
服务特点:
project_key 选择项目环境id 为准详细设计见 mcp-design.md。
sys_config 表DATABASE_URL 指向包含 sys_config 的数据库Windows 下建议固定使用 uv 的 Python 3.13 环境,避免 pywin32 在 Python 3.14 下的兼容问题。
默认数据库地址:
sqlite:///llm_proxy.db
默认上游超时:
UPSTREAM_REQUEST_TIMEOUT=60
服务会从 sys_config 中读取 key 为 mcp_project_data_projects 的 JSON 数组。
示例:
[
{
"project_key": "dev-01",
"project_name": "DEV开发环境",
"base_url": "http://192.168.1.109:32080",
"username": "admin",
"password": "123456",
"enabled": true
}
]
在项目根目录执行:
uv sync --python 3.13
默认以 HTTP 模式启动,默认地址:http://127.0.0.1:8000/mcp
方式一:使用模块启动
uv run --python 3.13 python -m instrument_config_mcp
方式二:使用 console script 启动
uv run --python 3.13 instrument-config-mcp
可选环境变量:
MCP_HOST,默认 127.0.0.1MCP_PORT,默认 8000MCP_PATH,默认 /mcp如果需要指定数据库:
set DATABASE_URL=sqlite:///llm_proxy.db
uv run --python 3.13 python -m instrument_config_mcp
如果需要指定 HTTP 地址:
set MCP_HOST=127.0.0.1
set MCP_PORT=8000
set MCP_PATH=/mcp
uv run --python 3.13 python -m instrument_config_mcp
如果需要指定上游超时:
set UPSTREAM_REQUEST_TIMEOUT=60
uv run --python 3.13 python -m instrument_config_mcp
当前提供以下工具:
project.listlist_locationslist_system_treelist_systemslist_device_typeslist_meter_typessearch_devicessearch_meters除 project.list 外,其他工具都必须传 project_key。
page_size=100page_nummcp_note示例说明:
{
"state": 0,
"state_info": "OK",
"data": {
"page_size": 100,
"page_num": 1,
"total_page": 8,
"total": 115,
"data": []
},
"mcp_note": "Current result is page 1. If the target was not found, continue with page_num=2."
}
仓库内提供了一个简单的 smoke test 脚本:scripts/smoke_test.py
示例 1:查询位置第一页
uv run --python 3.13 python scripts/smoke_test.py list-locations --project-key dev-01 --keyword F1
示例 2:查询系统树
uv run --python 3.13 python scripts/smoke_test.py list-system-tree --project-key dev-01
示例 3:查询设备类型
uv run --python 3.13 python scripts/smoke_test.py list-device-types --project-key dev-01
示例 4:按位置搜索仪表
uv run --python 3.13 python scripts/smoke_test.py search-meters --project-key dev-01 --location-id 162 --show-below true --page-num 1
示例 5:按系统和设备类型搜索设备
uv run --python 3.13 python scripts/smoke_test.py search-devices --project-key dev-01 --system-ids 21 --device-type-ids 5
list-device-types 和 list-meter-types,确认认证链路正常list-locations 或 list-system-tree,确认配置接口可访问search-devices 或 search-meters 做正式搜索project_key not found说明 sys_config 中没有对应的 project_key。
project 'xxx' is disabled说明项目配置存在,但 enabled=false。
login failed重点检查:
base_urlusernamepasswordupstream returned non-JSON response说明上游接口返回的不是 JSON,通常需要检查:
核心文件:
instrument_config_mcp/auth.pyinstrument_config_mcp/db.pyinstrument_config_mcp/config_api.pyinstrument_config_mcp/server.py语法校验:
uv run --python 3.13 python -m compileall .