Skip to content

docs(constitution): shrink MCP allowlist section to load-bearing boundaries#28

Merged
mobileskyfi merged 2 commits into
mainfrom
docs/const-mcp-allowlist
Jun 15, 2026
Merged

docs(constitution): shrink MCP allowlist section to load-bearing boundaries#28
mobileskyfi merged 2 commits into
mainfrom
docs/const-mcp-allowlist

Conversation

@mobileskyfi

@mobileskyfi mobileskyfi commented Jun 15, 2026

Copy link
Copy Markdown
Contributor

June-gloom Phase 1 — CONSTITUTION clean move (MCP allowlist)

First of the CONSTITUTION clean moves now that the MATRIX restructure is done. The full MCP safety model lives in commands/mcp/README.md (dedicated "Safety model — the CDB is the allowlist", "Tools", "Resources", "Transports" sections), so this is dedup.

What changes

  • docs/CONSTITUTION.md MCP section: keep the two load-bearing boundaries — authorization = the CDB allowlist (linking the __default__-never-widens rule kept in Identity and CDB), and stdio-only (HTTP is the proxy surface's job) — plus the mcp=ro|rw + confirm:true write-gate mention and a pointer. Move the mechanics (ad-hoc rejection + --allow-adhoc-targets, the scoped tool list, the centrs:// resources, validate dry-run) to the mcp README. ~28 → ~13 lines.

Verification

  • bun run lint:ci: markdownlint 0 errors (MD051 passes), cspell / secretlint / agent-lint clean

Docs only.

🤖 Generated with Claude Code

Summary by CodeRabbit

Documentation

  • Enhanced MCP surface documentation to clarify and refine core architectural boundaries. Updated descriptions now emphasize key authorization enforcement mechanisms and transport specifications, focusing on essential load-bearing constraints. Removed granular implementation-specific technical details to streamline the documentation, providing clearer architectural guidance with improved focus on critical system constraints and policies.

…boundaries

June-gloom Phase 1, CONSTITUTION clean move. The full MCP safety model (ad-hoc
rejection + --allow-adhoc-targets, the mcp=ro|rw + confirm:true write gate, the
scoped tool surface, the centrs:// resources, validate dry-run) is documented in
commands/mcp/README.md (Safety model / Tools / Resources / Transports sections).
Keep the two cross-cutting boundaries — authorization = the CDB allowlist
(linking the __default__ rule), and stdio-only (HTTP is the proxy's job) — plus a
pointer; move the mechanics.

CONSTITUTION 479→468. MD051 lint passes; lint:ci green.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings June 15, 2026 21:17
@coderabbitai

coderabbitai Bot commented Jun 15, 2026

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

@mobileskyfi, we couldn't start this review because you've reached your PR review rate limit.

More reviews will be available in 42 minutes and 22 seconds. Learn how PR review limits work.

Your organization has used up its prepaid credits, and credit purchases are no longer available. Enable the review add-on in the billing tab to keep reviews running — you're only billed for reviews past your plan's rate limits ($0.25/file).

⌛ How to resolve this issue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans include higher PR review limits than trial, open-source, and free plans. In all cases, reviews become available again over time. During sustained high-volume PR review activity, CodeRabbit may temporarily slow when the next review becomes available.

Please see our Fair Usage Limits Policy for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 4a95f99b-d0f9-4060-b596-8c3516827b0a

📥 Commits

Reviewing files that changed from the base of the PR and between dbce811 and c04f128.

📒 Files selected for processing (1)
  • docs/CONSTITUTION.md
📝 Walkthrough

Walkthrough

The docs/CONSTITUTION.md MCP surface section is rewritten to remove a longer bullet list covering tool verbs, write-confirmation semantics, published resources, and per-device write policies, replacing it with a tighter two-point description of the CDB allowlist authorization boundary and stdio-only transport constraint.

Changes

MCP Boundary Documentation

Layer / File(s) Summary
MCP surface section rewrite
docs/CONSTITUTION.md
Replaces the prior multi-bullet MCP description with two concise boundary statements: CDB allowlist as authorization gate (unregistered targets rejected, adhoc escape hatch off by default) and MCP transport restricted to stdio with HTTP/remote handled by the proxy surface.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~3 minutes

Possibly related PRs

  • tikoci/centrs#19: Also modifies the MCP allowlist/CDB boundary description in docs/CONSTITUTION.md, touching overlapping identity and __default__ behavior with MCP allowlist implications.

Poem

A rabbit rewrote the MCP wall,
Two clear rules now standing tall:
CDB allows, stdio flows,
HTTP to the proxy goes—
Less words, same law, that's all! 🐇✏️

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately describes the main change: shrinking the MCP allowlist section in CONSTITUTION.md to focus on load-bearing boundaries.
Description check ✅ Passed The description is well-structured with clear sections (What changes, Verification), explains the deduplication rationale, documents the verification steps, but lacks explicit response to the template's structured format (Change type, Validation run, etc.).
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch docs/const-mcp-allowlist

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates docs/CONSTITUTION.md to de-duplicate MCP safety-model details by keeping only the “load-bearing” MCP boundaries in the constitution and pointing readers to commands/mcp/README.md for the full model.

Changes:

  • Shrinks the MCP allowlist section to focus on CDB allowlist authorization and stdio-only transport.
  • Moves detailed MCP mechanics/tool/resource documentation references to commands/mcp/README.md.

Comment thread docs/CONSTITUTION.md Outdated
Comment on lines +274 to +277
- **Authorization is the CDB allowlist.** RouterOS-facing tools resolve targets
through the CDB only; an unregistered target is rejected
(`cdb/target-not-registered`), and `__default__` never widens the allowlist (see
Identity and CDB). The off-by-default `--allow-adhoc-targets` is the only escape.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good catch — reworded. The flag is parsed (src/mcp/config.ts) but commands/mcp/README.md confirms it's reserved (no inline host+credential schema today), so the line now reads: "reserved for future inline-target flows — today no RouterOS-facing tool exposes an inline host+credential schema, so the CDB allowlist is the only active target source." No implied current bypass.

…bypass

Address Copilot on PR #28: the flag is parsed but no RouterOS-facing tool exposes
an inline host+credential schema today (commands/mcp/README.md), so calling it
"the only escape" overstated it. Reword to match: reserved for future
inline-target flows; the CDB allowlist is the only active target source.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@mobileskyfi mobileskyfi merged commit ca09c27 into main Jun 15, 2026
10 checks passed
@mobileskyfi mobileskyfi deleted the docs/const-mcp-allowlist branch June 15, 2026 21:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants