Skip to content

feat(account): connect from stdio and prepare MCP 1.0.7 - #99

Merged
escott- merged 12 commits into
mainfrom
feat/limited-mode-account-tool
Sep 14, 2026
Merged

feat(account): connect from stdio and prepare MCP 1.0.7#99
escott- merged 12 commits into
mainfrom
feat/limited-mode-account-tool

Conversation

@escott-

@escott- escott- commented Sep 13, 2026

Copy link
Copy Markdown
Collaborator

Summary

An unconfigured stdio MCP now exposes init and account, allowing a user to connect through browser device login or, when the API enables it, create an account through email and SMS verification. Credentials are saved locally and the user reconnects to enable the full tool set. This prepares public release 1.0.7.

  • Browser login saves the API key and API origin, and preserves guidance when an editor-supplied key will override the saved credentials after restart.
  • Inline signup requires the consent notice followed by an explicit affirmative reply. Pending attempts use private atomic storage. The account tool and setup wizard share save-before-ack credential delivery; failed writes leave recovery available, and restarting a finalized signup resumes credential retrieval.
  • Account actions are serialized. Signup failures return MCP errors without echoing raw remote response bodies. Account inputs are excluded from failure-hook capture; transcript and subagent processing scrub setup codes, credentials, and unnamed tool results.
  • account remains local to stdio and excluded from the hosted HTTP and OpenAI agentic surfaces. The backend foundation is deployed; inline signup and phone verification remain disabled pending real-Twilio staging validation.

Test plan

  • GitHub checks on the final head: formatting, workspace/all-target Clippy with warnings denied, workspace/all-target tests, macOS and Windows compilation, DCO, CodeQL, public package boundary, and supply-chain/secret scans.
  • Dev-host cargo test --locked -p mcp-server -p mcp-client -p mcp-tools, including doc tests.
  • Nine real-binary stdio regression scenarios against a deterministic loopback backend, now run in CI: browser save/reconnect, inline save-before-ack, failed-write restart recovery, failed acknowledgement, declined/ambiguous consent, rejected signup, editor override, disabled inline signup, and private failure-hook handling. JSON-RPC outputs are checked for fixture keys, client secrets, JWTs, and verification codes.
  • Production device-login API round trip from an isolated credential-free MCP: exactly two tools initially, credential file mode 0600, secret-free tool results, and 35 tools after authenticated reconnect. The uniquely named validation key was revoked. This checks the live device API; real-phone signup and the browser page UI remain separate staging checks.
  • npm launcher tests and 30 Python release/public-boundary/DCO/workflow tests.

Release follows protected merge and the annotated v1.0.7 tag process. The deployment overlay pin requires the published immutable artifacts. Real-Twilio staging, regional identity-guard hardening, and production flag activation remain tracked in the rollout handoff.

@escott-
escott- force-pushed the feat/limited-mode-account-tool branch from 5c9787c to bd2a4bf Compare September 13, 2026 22:55
escott- and others added 9 commits September 13, 2026 16:00
Without credentials the stdio server now serves init + account instead of a
dead process. account offers the browser device-login route, saves the minted
key itself, and never returns secrets. Hook transcript capture redacts
account-setup secrets. (ContextStream plan 352329e9, step 8)

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Signed-off-by: escott- <escott05@gmail.com>
…s; keep it off the hosted surfaces

Signed-off-by: escott- <escott05@gmail.com>
…d setup wizard

Client helpers for the /auth/mcp-signup family, a private pending-connection
record for restart recovery, consent handled as notice + verbatim reply, the
key saved before acknowledgement and never surfaced. (plan 352329e9 step 12)

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Signed-off-by: escott- <escott05@gmail.com>
…esh the account schema baseline

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Signed-off-by: escott- <escott05@gmail.com>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Signed-off-by: escott- <escott05@gmail.com>
Signed-off-by: escott- <escott05@gmail.com>
Signed-off-by: escott- <escott05@gmail.com>
…aths

Signed-off-by: escott- <escott05@gmail.com>
@escott-
escott- force-pushed the feat/limited-mode-account-tool branch from bd2a4bf to 96ac2d2 Compare September 13, 2026 23:00
Signed-off-by: escott- <escott05@gmail.com>
Signed-off-by: escott- <escott05@gmail.com>
Signed-off-by: escott- <escott05@gmail.com>
@escott- escott- changed the title Limited mode: real two-tool server with an account tool (browser and inline email + SMS routes) feat(account): connect from stdio and prepare MCP 1.0.7 Sep 13, 2026
@escott-
escott- marked this pull request as ready for review September 13, 2026 23:08
@escott-
escott- merged commit e712bdd into main Sep 14, 2026
10 checks passed
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