feat(mcp): register loopover_refresh_repo_docs as a local stdio tool#7969
feat(mcp): register loopover_refresh_repo_docs as a local stdio tool#7969real-venus wants to merge 2 commits into
Conversation
loopover_refresh_repo_docs has a remote MCP tool (src/mcp/server.ts) and a `maintain refresh-docs` CLI command, but no local stdio MCP tool registration. JSONbored#6743 added the REST route + CLI but never the matching stdio tool, so a self-host operator using the local MCP server couldn't call it. Adds the registerStdioTool block following the existing sibling pattern -- a thin POST proxy of the same {repoBase}/repo-docs/refresh route the CLI hits, with an empty body (the route only ever opens a PR -- never merges/commits -- so there is no create-safety flag to forward). Input reuses ownerRepoShape (matching the remote refreshRepoDocsShape); description via stdioToolDescription; category "maintainer". test/unit/mcp-cli-refresh-repo-docs.test.ts drives it in-process (JSONbored#7764 entrypoint guard) so the registration + handler get real Codecov coverage. Count 94 -> 95. Closes JSONbored#7754
|
Superagent didn't find any vulnerabilities or security issues in this PR. |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #7969 +/- ##
==========================================
- Coverage 89.11% 81.54% -7.57%
==========================================
Files 93 89 -4
Lines 21723 23424 +1701
Branches 3755 4517 +762
==========================================
- Hits 19358 19102 -256
- Misses 2187 4126 +1939
- Partials 178 196 +18
Flags with carried forward coverage won't be shown. Click here to find out more.
|
Signed-off-by: venus <153379385+real-venus@users.noreply.github.com>
|
Caution 🛑 LoopOver review result - fixes requiredReview updated: 2026-07-22 00:45:44 UTC
Review summary Nits — 5 non-blocking
CI checks failing
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 (CI is failing (validate, validate-tests (2))). 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. |
Summary
Closes #7754 —
loopover_refresh_repo_docshas a remote MCP tool (src/mcp/server.ts) and amaintain refresh-docsCLI command, but no local stdio MCP tool registration. #6743 added the REST route + CLI but never the matching stdio tool, so a self-host operator using the local MCP server (not the CLI or remote MCP) couldn't call it.What changed (
packages/loopover-mcp/bin/loopover-mcp.ts)registerStdioTool("loopover_refresh_repo_docs", …)block, placed next toloopover_get_maintainer_noise, mirroring the sibling proxy pattern exactly — a thin POST of the same{repoBase}/repo-docs/refreshroute themaintain refresh-docsCLI already calls, with an empty body (the route only ever opens a PR — never merges or commits — so there's no create-safety flag to forward).ownerRepoShape(matching the remoterefreshRepoDocsShape, which is justowner/repo). Description centralized viastdioToolDescription(...)+ aSTDIO_TOOL_DESCRIPTORSentry (category: "maintainer", matching the remote tool).Testing / coverage
test/unit/mcp-cli-refresh-repo-docs.test.tsdrives the tool in-process (the loopover_plan_repo_issues has no REST route, CLI command, or local stdio MCP tool #7764isProcessEntrypointguard +InMemoryTransport, mirroringmcp-cli-repo-focus-manifest.test.ts) so the registration + handler get real Codecov-measured coverage — a subprocess spawn can't be v8-instrumented. The handler is branch-free, so one call exercises it fully; the test asserts the exactPOST /v1/repos/owner/repo/repo-docs/refreshand the returned PR result.test/unit/mcp-tool-rename-aliases.test.tsbumped to 95.No REST/OpenAPI/CLI-surface change (the route and
maintain refresh-docsCLI already exist) —ui:openapi:check,command-reference:check,docs/manifestdrift all clean;build:mcpclean.