Conversation
Adds docs/issues/mcp-refactoring-enhancing/, an implementation brief for replacing the flat read_only_tools allowlist with a per-tool, three-tier permission model (Interactive/Read-only/Write-delete), plus the prerequisite fixes it depends on: per-server mcp_registry grant scoping, the mcp build-feature gap, and a stale docs/modules/mcp.md claim about needing a restart for MCP config changes (the fingerprint-based hot reload already handles this on the next turn). Also corrects docs/modules/mcp.md's Pool-staleness section to describe the actual HarnessPool fingerprint mechanism. Part of tinyhumansai#2373
|
Important Draft PR not reviewedDraft PRs are not automatically reviewed by default.
To automatically review draft PRs, update your CodeRabbit configuration: reviews:
auto_review:
drafts: trueComment |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Tracking issue
Part of #2373 — #2373 ("MCP: tiered tool-call permissions (design + rollout plan)"). This PR adds the design brief the issue points at; it does not close #2373 — the actual implementation work is follow-up, sequenced per the rollout plan below, and #2373 stays open to track that.
Summary
Adds
docs/issues/mcp-refactoring-enhancing/, an implementation brief forreplacing the current flat
read_only_toolsallowlist with a per-tool,three-tier permission model (Interactive / Read-only / Write-delete, each
with a bulk default and per-tool override) — the shape Claude's own
Connectors settings page uses.
Covers, across four files (each under the 500-line cap):
closing the per-server scoping gap on
mcp_registrygrants (issue mcp: the console cannot discover servers, while OpenHuman's registry sits unwired in every tenant #1270'sdeliberately-deferred asymmetry)
mcp_call_tool_consequencerewrite (including a genuinely newBlockedenforcement state), and a migration rule for existing
read_only_toolsdata with a hard "byte-identical approval behavior" merge gate
separate while the new policy shape unifies across both
modal, directory/discover page, the per-server tool-permissions page)
Also fixes a real doc/code divergence found while researching this: the
existing
docs/modules/mcp.md"Pool-staleness caveat" claimed MCP configchanges need a company restart to take effect. That's stale — the code
already does fingerprint-based hot reload (
HarnessPool'smcp_fingerprints), applying a change on the agent's next turn. Correctedin the same commit, with a pointer to the new design brief.
Docs only — no code changes. This is a design/implementation brief for
future work, not the work itself.
Commands run locally
wc -lon every new/changed file to confirm the 500-line capharness/built_in/mod.rs'smcp_fingerprintsfield andensure_with_policydirectly before writing the correctiongit statusbefore and after to confirm only the intended files changed