feat(mcp): register loopover_get_automation_state as a local stdio tool - #7938
Conversation
loopover_get_automation_state is a remote MCP tool (src/mcp/server.ts) and has a CLI mirror (maintain automation-state), but no local stdio MCP tool registration existed in packages/loopover-mcp/bin/loopover-mcp.ts -- so a self-host operator on the local MCP server could not call it. JSONbored#6742 added the REST route + CLI subcommand but never the matching stdio registration. Register it following the exact pattern of its five JSONbored#6382 siblings: a STDIO_TOOL_DESCRIPTORS entry (category 'agent', mirroring the remote tool) plus a registerStdioTool block that reuses the same GET {repoBase}/ automation-state call the maintain CLI already makes, via ownerRepoShape and toolRepoBase. No HTTP logic is duplicated. Tests: add it to the maintain stdio-proxy suite (proxy + API-failure cases, auto-covered by the existing MAINTAIN_TOOLS loop) and bump the discovery tool-count invariant from 87 to 88. Closes JSONbored#7752
|
Superagent didn't find any vulnerabilities or security issues in this PR. |
|
Warning ⏸️ LoopOver review result - manual review recommendedReview updated: 2026-07-21 20:05:01 UTC
Review summary Nits — 3 non-blocking
Decision drivers
Context & advisory signals — never blocks the verdict
Linked issue satisfactionAddressed Review context
Contributor next steps
Signal definitions
🧪 Chat with LoopOverAsk LoopOver a question about this PR directly in a comment — grounded only in the same cached, public-safe facts shown above, never a new claim.
Full command reference: https://loopover.ai/docs/loopover-commands 🧪 Experimental — new and may change. 🟩 Safe / merged · 🟦 Advisory · 🟨 Held for review · 🟥 Blocked / closed 💰 Earn for open-source contributions like this. Gittensor lets GitHub contributors earn for the work they already do — register to start earning →. Checked by LoopOver, a quiet PR intelligence layer for OSS maintainers.
|
|
LoopOver is closing this pull request on the maintainer's behalf (conflicts with the base branch — resolve and open a fresh PR). This is an automated maintenance action — to pursue this change, please open a new pull request with the issues resolved. Closed PRs may be analyzed later to improve review accuracy, but they are not automatically reopened or re-reviewed. |
Closes #7752
loopover_get_automation_stateis registered as a remote MCP tool (src/mcp/server.ts) and has a CLI mirror (maintain automation-state), but there was no local stdio MCP tool registration for it inpackages/loopover-mcp/bin/loopover-mcp.ts— so a self-host operator using the local stdio MCP server (not the CLI or remote MCP) couldn't call it. #6742 added the REST route + CLI subcommand but not the matching stdio registration, so it fell outside the #6382 batch.Change — following the exact pattern of its five #6382 siblings:
STDIO_TOOL_DESCRIPTORSentry (categoryagent, mirroring the remote tool's category insrc/mcp/server.ts).registerStdioTool("loopover_get_automation_state", …)block placed with itsmaintain-family siblings, usingownerRepoShapeand reusing the sameGET ${toolRepoBase(owner, repo)}/automation-statecall themaintain automation-stateCLI already makes — no duplicated HTTP logic.Tests:
maintainstdio-proxy suite (mcp-cli-maintain-tools.test.ts): the existingMAINTAIN_TOOLSloop now covers it for both the proxy-contract case (asserts it hits/v1/repos/owner/repo/automation-state) and the API-failure case. The fixture server already serves/automation-state.mcp-tool-rename-aliases.test.tsfrom 87 → 88 (both thelistToolsandtools --jsonassertions) and appended the count-history comment, matching the convention the sibling registrations (loopover_get_gate_config_effective has a REST route but no remote MCP tool or local stdio MCP tool #7800/loopover_get_pr_maintainer_packet has a REST route but no remote MCP tool or local stdio MCP tool #7802/loopover_get_upstream_ruleset has a REST route but no remote MCP tool or local stdio MCP tool #7807) established.Verified locally:
tsc -p packages/loopover-mcpclean,mcp-cli-maintain-tools(19) +mcp-tool-rename-aliases(10) +mcp-automation-state/mcp-output-schemasall pass, roottsc --noEmitclean for the changed files.