2.2 KiB
2.2 KiB
DetMir MCP
Read-only MCP facade over the DetMir operational surfaces that usually regress under load:
- ActivityWatch core
- worktime API
- DLP policy and case services
- Grafana health
- 1C manager brief
This server exists to give mcpdrill a stable MCP target for reproducing timeout, saturation, stale-status, and mixed-read operator-path failures.
Tools
aw_health_summaryworktime_todayworktime_managementdlp_mode_getdlp_health_summarygrafana_overviewonec_manager_brief
All tools are read-only.
Run
cd /mnt/usb_hdd2/Projects/ActivityWatch-Russian/detmir-mcp
cp .env.example .env
sh run-local.sh
Default transport is stdio.
Run for mcpdrill
mcpdrill wants HTTP, not stdio. Start the server like this:
cd /mnt/usb_hdd2/Projects/ActivityWatch-Russian/detmir-mcp
export DETMIR_MCP_TRANSPORT=streamable-http
export DETMIR_MCP_HOST=0.0.0.0
export DETMIR_MCP_PORT=8765
export DETMIR_MCP_STATELESS_HTTP=0
sh run-local.sh
Endpoint:
http://<reachable-host-ip>:8765/mcp
Do not use 127.0.0.1 inside mcpdrill target configs; use a host/IP reachable from the Docker worker.
run-local.sh intentionally keeps the uv environment outside the repository tree. This machine stores the repo on a mounted filesystem where .venv creation inside the project is not reliable.
Example config:
Quick checks
Tool list:
curl -sS http://127.0.0.1:8765/mcp \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
Example tool call:
curl -sS http://127.0.0.1:8765/mcp \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"dlp_mode_get","arguments":{}}}'
What to stress first
worktime_today+worktime_managementto reproduce5610contention.dlp_mode_get+dlp_health_summaryto expose stale policy/status views.grafana_overview+onec_manager_briefto check adjacent operator dependencies.- Mixed runs across all tools to reproduce operator-path degradation.