Skip to content

Plan / Interface: direct MCP onboarding - #1626

Merged
jhrozek merged 2 commits into
mainfrom
plan/direct-mcp-onboarding
Sep 16, 2026
Merged

jhrozek merged 2 commits into
mainfrom
plan/direct-mcp-onboarding

Conversation

@jhrozek

@jhrozek jhrozek commented Sep 16, 2026

Copy link
Copy Markdown
Contributor

Summary

Defines the human-reviewed interface contract for URL-first direct MCP onboarding.

The proposal adds a host-local mecated mcp add/list/login/remove lifecycle, hardened issuer discovery, keyring-first wrapping-key custody with an attended encrypted file-key fallback, narrow atomic settings mutation, observable login, offline status, and crash-recoverable removal. It keeps deployment administration out of HarnessService, preserves the existing direct-DCR openid/no-refresh contract, and defers broker changes, SDK helpers, machine-readable output, hot reload, generic scope negotiation, and multiple-issuer UI.

Review history

  • Devil's-advocate review completed and corrections folded in.
  • OAuth/MCP protocol and architecture specialist reviews completed.
  • Post-decision MoE review completed, including a dedicated over-engineering pass.
  • The reduced contract retains keyring custody and the core add/list/login/remove journey while removing speculative SDK/JSON and unrelated protocol expansion.

Verification

  • bash .claude/skills/to-acceptance-plan/scripts/check-acceptance-plan.sh docs/acceptance/direct-mcp-onboarding.md
  • bash .claude/skills/to-acceptance-plan/scripts/check-acceptance-plan-test.sh
  • task docs
  • git diff --check

Ref: #1613

jhrozek and others added 2 commits September 16, 2026 13:04
Propose a host-local lifecycle for direct OAuth MCP servers: URL-first add, offline list, explicit login, and recoverable remove. Keep deployment administration out of HarnessService and require daemon restart for configuration changes.

Use hardened same-origin issuer discovery, keyring-first wrapping-key custody with an attended encrypted file-key fallback, strict single-target settings mutation, redacted progress, and a tombstoned DCR removal state so interrupted deletes can resume safely.

This revision folds in the post-decision OAuth, architecture, adversarial, and scope reviews. It fixes discovery and RFC 9207 gaps, pins the complete credential-key locator, separates layered reads from the writable settings target, and makes removal crash-recoverable.

It also removes work that lacked a current consumer: SDK and JSON output contracts, generic scope-policy redesign, multiple-issuer UI, add-only workflow variants, exact formatting guarantees, and architecture-shaped acceptance tests. Three reduced-scope choices remain explicit for human confirmation before the Plan / Interface PR.

Co-Authored-By: mecatl <noreply@mecatl.dev>
Relates to #1613

Co-Authored-By: mecatl <noreply@mecatl.dev>
@jhrozek
jhrozek merged commit b9f8cc5 into main Sep 16, 2026
29 checks passed
@jhrozek
jhrozek deleted the plan/direct-mcp-onboarding branch September 16, 2026 13:14
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