From a7a48819b47a614af286a9a8b6e60345364f414a Mon Sep 17 00:00:00 2001 From: Proofable Date: Mon, 5 Oct 2026 13:01:42 -0500 Subject: [PATCH 1/2] docs: AAIF authority-at-dispatch reviewer packet (prod 17f1763, 8/8) + SDK 0.1.4 alignment --- .gitattributes | 1 + changelog.mdx | 19 +++++++++++ mcp/guarded-action.mdx | 8 ++--- .../2026-10-05/README.md | 31 +++++++++++++++++ .../2026-10-05/SHA256SUMS | 3 ++ .../2026-10-05/manifest.json | 34 +++++++++++++++++++ .../2026-10-05/trace.jsonl | 8 +++++ scripts/validate-doc-copy.mjs | 3 ++ 8 files changed, 103 insertions(+), 4 deletions(-) create mode 100644 .gitattributes create mode 100644 public/evidence/aaif/authority-at-dispatch/2026-10-05/README.md create mode 100644 public/evidence/aaif/authority-at-dispatch/2026-10-05/SHA256SUMS create mode 100644 public/evidence/aaif/authority-at-dispatch/2026-10-05/manifest.json create mode 100644 public/evidence/aaif/authority-at-dispatch/2026-10-05/trace.jsonl diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..0d4eebe --- /dev/null +++ b/.gitattributes @@ -0,0 +1 @@ +public/evidence/aaif/** text eol=lf diff --git a/changelog.mdx b/changelog.mdx index 0b9b45e..edc9e40 100644 --- a/changelog.mdx +++ b/changelog.mdx @@ -16,6 +16,25 @@ Package records: [`proofable/sdk`](https://github.com/proofable/sdk/blob/main/CH Published APIs and verifier schemas may change between minor versions. Breaking changes are listed in each entry and in the repo changelogs. + +## Delegated mounts fail closed without an allow-list + +`@proofable/sdk@0.1.4` makes an empty or missing `allowedActions` list grant nothing for a delegated permission, matching the hosted contract. A delegated host action is denied with `ACTION_NOT_ALLOWED`; controller-owned mounts keep their existing behavior. See [Run your first guarded action](/mcp/guarded-action). + +```bash +npm install @proofable/sdk@0.1.4 +``` + + + = 2) fail('INVENTORY', 'comma list with no reader orientation'); From 67153de55f81a093f3ce61ce1c94b4fd5d5c6b20 Mon Sep 17 00:00:00 2001 From: Proofable Date: Mon, 5 Oct 2026 14:17:15 -0500 Subject: [PATCH 2/2] docs: MCP auth-first lane (/mcp/oauth) across setup, oauth, and host snippets --- README.md | 2 +- agents/team-agents.mdx | 2 +- api/authentication.mdx | 2 +- changelog.mdx | 4 ++-- mcp/auth.mdx | 2 +- mcp/endpoints.mdx | 3 ++- mcp/oauth.mdx | 2 +- mcp/overview.mdx | 2 +- mcp/setup.mdx | 2 +- reference.mdx | 4 ++-- sdks/cli.mdx | 2 +- snippets/connect-hosts.mdx | 10 +++++----- 12 files changed, 19 insertions(+), 18 deletions(-) diff --git a/README.md b/README.md index 86fb798..d6add8d 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ Published site: [docs.proofable.me](https://docs.proofable.me) Start here: [github.com/proofable/sdk](https://github.com/proofable/sdk) -Use with any MCP client: `https://mcp.proofable.me/mcp` +Use with any MCP client: `https://mcp.proofable.me/mcp/oauth` Product: [proofable.me](https://proofable.me) diff --git a/agents/team-agents.mdx b/agents/team-agents.mdx index afc2661..75fd042 100644 --- a/agents/team-agents.mdx +++ b/agents/team-agents.mdx @@ -19,7 +19,7 @@ Every tool uses the same endpoint. - Add `https://mcp.proofable.me/mcp`, then finish the sign-in your client opens. + Add `https://mcp.proofable.me/mcp/oauth`, then finish the sign-in your client opens. **`proofable_agent_create`** per agent. Default is your signed-in profile. Pass an existing dedicated account address only when that agent needs its own spend account. diff --git a/api/authentication.mdx b/api/authentication.mdx index d21387d..e5d22db 100644 --- a/api/authentication.mdx +++ b/api/authentication.mdx @@ -27,7 +27,7 @@ Send users to your checkout with `gateId`; the enforcement policy bills your app ## MCP OAuth -MCP clients authenticate via **OAuth 2.0 Authorization Code with PKCE**. Register `https://mcp.proofable.me/mcp` and finish the sign-in your client opens. Only Claude connectors and Devin render a control called Connect. Official CLI: `npx -y @proofable/sdk`. +MCP clients authenticate via **OAuth 2.0 Authorization Code with PKCE**. Register `https://mcp.proofable.me/mcp/oauth` and finish the sign-in your client opens. Only Claude connectors and Devin render a control called Connect. Official CLI: `npx -y @proofable/sdk`. Request only the scopes you need: diff --git a/changelog.mdx b/changelog.mdx index edc9e40..8036c29 100644 --- a/changelog.mdx +++ b/changelog.mdx @@ -169,9 +169,9 @@ Media placeholders for this changelog page. Drop the finished files under docs/i - TODO: screenshot — Connect flow: add https://mcp.proofable.me/mcp, click Connect, sign in. + TODO: screenshot — Connect flow: add https://mcp.proofable.me/mcp/oauth, complete sign-in. Suggested path: docs/images/releases/mcp-0.1.0-connect.png - TODO: 30-60s clip — first run: register endpoint, Connect, ask for profile and current proofs. + TODO: 30-60s clip — first run: register endpoint, sign in, ask for profile and current proofs. Suggested path: docs/images/releases/mcp-0.1.0-first-run.mp4 */} diff --git a/mcp/auth.mdx b/mcp/auth.mdx index 1a91d1e..a2bb50f 100644 --- a/mcp/auth.mdx +++ b/mcp/auth.mdx @@ -4,7 +4,7 @@ description: "Pick the auth path for your caller: browser sign-in for interactiv icon: lock --- -Interactive MCP clients sign in through the host. Register `https://mcp.proofable.me/mcp` (public-first: connects anonymously, then upgrades with sign-in) and finish the browser sign-in your client opens. The host runs OAuth 2.0 with PKCE and can refresh the session for up to 30 days. +Interactive MCP clients sign in through the host. Register `https://mcp.proofable.me/mcp/oauth` (auth-first: without a credential even `initialize` answers `401 + WWW-Authenticate`, which starts host OAuth) and finish the browser sign-in your client opens. The host runs OAuth 2.0 with PKCE and can refresh the session for up to 30 days. For servers, CI, and environments that cannot open a browser, use a durable server key instead. Both paths hit the same endpoint and the same Proofable profile. diff --git a/mcp/endpoints.mdx b/mcp/endpoints.mdx index 12f139b..afaa70e 100644 --- a/mcp/endpoints.mdx +++ b/mcp/endpoints.mdx @@ -10,7 +10,8 @@ The **MCP URL** and the **HTTP API** use different transports and base paths. Di | URL | Role | |-----|------| -| `https://mcp.proofable.me/mcp` | MCP. [Setup](./setup) | +| `https://mcp.proofable.me/mcp/oauth` | MCP, auth-first lane. Interactive clients register this: without a credential even `initialize` answers `401 + WWW-Authenticate`, which starts host OAuth. [Setup](./setup) | +| `https://mcp.proofable.me/mcp` | MCP, public-first lane. Anonymous `initialize` and directory discovery, and the RFC 8707 resource for server-key (Bearer) callers. | ## OAuth discovery diff --git a/mcp/oauth.mdx b/mcp/oauth.mdx index ec06a11..3398ceb 100644 --- a/mcp/oauth.mdx +++ b/mcp/oauth.mdx @@ -7,7 +7,7 @@ icon: shield-check Proofable MCP uses the **Authorization Code** grant. The user signs in on Proofable with the same passkey or wallet flow as the product. - **Default:** add `https://mcp.proofable.me/mcp` and finish the sign-in your client opens. Only Claude connectors and Devin render a control called Connect. Optional terminal installer: `npx -y @proofable/sdk setup`. Use this page for custom MCP hosts, security review, standalone sign-in, or raw HTTP integration. + **Default:** add `https://mcp.proofable.me/mcp/oauth` and finish the sign-in your client opens. The bare `https://mcp.proofable.me/mcp` endpoint serves directory discovery and server-key (Bearer) callers. Only Claude connectors and Devin render a control called Connect. Optional terminal installer: `npx -y @proofable/sdk setup`. Use this page for custom MCP hosts, security review, standalone sign-in, or raw HTTP integration. ## Flow overview diff --git a/mcp/overview.mdx b/mcp/overview.mdx index 576664b..665ea24 100644 --- a/mcp/overview.mdx +++ b/mcp/overview.mdx @@ -11,7 +11,7 @@ Connect one endpoint and every client reads the same profile: the proofs you alr Connect once. The same agents, selected context, limits, and current proofs are there in every supported client. -Add `https://mcp.proofable.me/mcp` to the client, then sign in. +Add `https://mcp.proofable.me/mcp/oauth` to an interactive client, then sign in. The bare `https://mcp.proofable.me/mcp` endpoint stays for directory discovery and server-key (Bearer) callers. Interactive hosts use OAuth. For servers, CI, and headless agents, send a server key as a Bearer token. See [Add Proofable to any MCP client](./setup). diff --git a/mcp/setup.mdx b/mcp/setup.mdx index c3619ec..c0b1aa5 100644 --- a/mcp/setup.mdx +++ b/mcp/setup.mdx @@ -42,6 +42,6 @@ Use the [JavaScript SDK](/sdks/javascript), [HTTP API](/api/overview), or [hoste - Confirm the connection. Run `npx -y @proofable/sdk doctor --live`. - Two Proofable entries. Keep one plugin or manual server entry. Running setup again removes a leftover entry when the plugin already supplies it. - Need agent context in a project. Run `npx -y @proofable/sdk mount --apply `. See [Load agent context](/agents/runtime-mount). -- Search-only endpoint. Use `https://mcp.proofable.me/mcp`. The docs MCP endpoint only searches documentation. +- Search-only endpoint. Use `https://mcp.proofable.me/mcp/oauth` in an interactive client (or the bare `https://mcp.proofable.me/mcp` for a server key). The docs MCP endpoint only searches documentation. To disconnect, run `npx -y @proofable/sdk disconnect`. [MCP tools](/mcp/tools) and [authentication](/mcp/auth) cover the full reference. diff --git a/reference.mdx b/reference.mdx index a58a4b2..b6f368c 100644 --- a/reference.mdx +++ b/reference.mdx @@ -9,7 +9,7 @@ Pick the surface that matches the caller. The table below maps each one to its e | Surface | Use it for | Endpoint or package | Signs in with | |---|---|---|---| -| [MCP](/mcp/overview) | Any app, chat, or agent that speaks MCP | `https://mcp.proofable.me/mcp` | OAuth, or an access key | +| [MCP](/mcp/overview) | Any app, chat, or agent that speaks MCP | `https://mcp.proofable.me/mcp/oauth` | OAuth, or an access key | | [JavaScript SDK](/sdks/javascript) | Apps, backends, and React | `@proofable/sdk` | Hosted sign-in, or an access key on servers | | [CLI](/sdks/cli) | Terminal setup and agent context | `npx -y @proofable/sdk` | OAuth, or an access key | | [HTTP API](/api/overview) | Any language or backend | `https://api.proofable.me` | Signed requests, a session, or an access key | @@ -31,7 +31,7 @@ Pick the surface that matches the caller. The table below maps each one to its e | Full docs | `https://docs.proofable.me/llms-full.txt` | | MCP discovery | `https://mcp.proofable.me/.well-known/mcp.json` | -This docs site also serves a search-only MCP endpoint at `https://docs.proofable.me/mcp`. It searches these pages. Your profile, proofs, and agents live at `https://mcp.proofable.me/mcp`. +This docs site also serves a search-only MCP endpoint at `https://docs.proofable.me/mcp`. It searches these pages. Your profile, proofs, and agents live at `https://mcp.proofable.me/mcp/oauth`. ## Sections diff --git a/sdks/cli.mdx b/sdks/cli.mdx index 36d8b8b..846e71b 100644 --- a/sdks/cli.mdx +++ b/sdks/cli.mdx @@ -20,4 +20,4 @@ npx -y @proofable/sdk The commands above require no permanent install. If you use the CLI regularly, run `npm install -g @proofable/sdk`; then the shorter `proofable setup`, `proofable doctor --live`, and `proofable auth` commands are available. -The CLI configures hosted MCP and loads trusted agent context. HTTP agents should fetch [Proofable OpenAPI](https://api.proofable.me/openapi.json). Assistants should use [Proofable MCP](https://mcp.proofable.me/mcp). +The CLI configures hosted MCP and loads trusted agent context. HTTP agents should fetch [Proofable OpenAPI](https://api.proofable.me/openapi.json). Assistants should use [Proofable MCP](https://mcp.proofable.me/mcp/oauth). diff --git a/snippets/connect-hosts.mdx b/snippets/connect-hosts.mdx index 6dce3f4..8b0f12c 100644 --- a/snippets/connect-hosts.mdx +++ b/snippets/connect-hosts.mdx @@ -1,6 +1,6 @@ - [Add Proofable to Cursor](cursor://anysphere.cursor-deeplink/mcp/install?name=proofable&config=eyJ1cmwiOiJodHRwczovL21jcC5wcm9vZmFibGUubWUvbWNwIn0%3D) + [Add Proofable to Cursor](cursor://anysphere.cursor-deeplink/mcp/install?name=proofable&config=eyJ1cmwiOiJodHRwczovL21jcC5wcm9vZmFibGUubWUvbWNwL29hdXRoIn0%3D) Enable Proofable in Customize and complete the sign-in Cursor opens. @@ -20,7 +20,7 @@ In Customize, open Connectors and add a custom connector with this URL: ```text - https://mcp.proofable.me/mcp + https://mcp.proofable.me/mcp/oauth ``` Choose Connect and complete sign-in. On Team and Enterprise, an owner adds the connector first. @@ -41,11 +41,11 @@ Enable developer mode in Settings, add a custom MCP connection with the URL below, and complete the sign-in ChatGPT opens. Your plan or workspace policy must allow custom connections. ```text - https://mcp.proofable.me/mcp + https://mcp.proofable.me/mcp/oauth ``` - [Add Proofable to VS Code](vscode:mcp/install?%7B%22name%22%3A%22proofable%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fmcp.proofable.me%2Fmcp%22%7D) + [Add Proofable to VS Code](vscode:mcp/install?%7B%22name%22%3A%22proofable%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fmcp.proofable.me%2Fmcp%2Foauth%22%7D) Start Proofable from MCP: List Servers and complete the sign-in VS Code opens. @@ -53,7 +53,7 @@ Add this URL in your client's MCP settings, then complete its sign-in: ```text - https://mcp.proofable.me/mcp + https://mcp.proofable.me/mcp/oauth ``` For terminal clients, use the setup skill above. [Authentication](/mcp/auth) covers clients that require a server key.