Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 1 addition & 24 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -956,33 +956,10 @@ delegation. Omitting `account` uses the default account.
> (the server is built against that candid contract). #4086 renames the on-demand
> delegation methods from the earlier `mcp_prepare_account_delegation` /
> `mcp_get_account_delegation` and removes `mcp_set_access` / `mcp_access_enabled`.
> The live round-trip works once that II build is deployed to the configured
> `II_URL`. Passing `account_number = null` resolves to the anchor's current
> Passing `account_number = null` resolves to the anchor's current
> (user-controllable) default account at the origin — which may be a named account
> the user set as their default there, not necessarily the anchor's base account.

## Roadmap

- [x] Candid tools over MCP streamable-HTTP; `discover_app_canisters`; Candid
reference resources.
- [x] OAuth 2.1 auth (authorization-code + PKCE): II's `/mcp` **registration-delegation**
handshake binds the connection's session key (a fragment-delivered, canister-signed
delegation redeemed via `mcp_register_v2`), with **Consent-Bound Completion** binding
`…/oauth/connect/redeem` to both the initiator (`mcp_connect` cookie) and the consenter (the
fragment delegation); expiring tokens. The same-browser phishing variant is closed
by a hosted-redirect allow-list (see Auth). (The RFC 8628 device grant was dropped.)
- [x] On-demand **domain identities**: the registered session key mints per-app
account delegations directly via II canister methods
(`canister_query`/`canister_update_call`/`get_app_principal` `derivation_origin`); no per-app browser flow.
- [x] **Per-app accounts**: `list_app_accounts(derivation_origin)` lists the user's accounts at
an app (via `mcp_get_accounts`), and `canister_query`/`canister_update_call`/`get_app_principal` take an
`account` name to act as a specific (non-default) account.
- [ ] Deploy the `mcp_register_v2` + `mcp_get_accounts` + `mcp_prepare_delegation` +
`mcp_get_delegation` canister methods (server is built against the merged II
candid contract; the live round-trip lands with the II side).
- [ ] Persist sessions/delegations (currently in-memory, lost on restart).
- [ ] Scoped delegations / per-call confirmation for sensitive methods.

## License

Licensed under the [Apache License, Version 2.0](LICENSE).
Expand Down
2 changes: 1 addition & 1 deletion docs/anthropic-directory-submission.md
Original file line number Diff line number Diff line change
Expand Up @@ -184,7 +184,7 @@ financial ledger methods. No open compliance question remains on this topic;
if a reply arrives, answer with the shipped posture.

Related honesty point for the same step: there is **no per-call confirmation**
for sensitive methods server-side today (an open roadmap item in the README) —
for sensitive methods server-side today —
mitigations are the explicit access-level choice on the II consent screen
("Questions only" vs "Actions & questions", enforced at IC ingress),
revocability at any time via id.ai/manage/settings (≤5 min latency), and
Expand Down
Loading