Repository navigation
docs(adr): ADR-070 MCP gateway, ADR-071 bring your own MCP server - #738
seanspeaks wants to merge 6 commits into
Conversation
One MCP endpoint on a Frigg app that merges native tools (API module capabilities) with tools from remote MCP servers, resolves the acting user's credentials, and applies an adopter-set tool policy. Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01StH4nGULZCjQWwhDgbG6ns
There was a problem hiding this comment.
If your organization's extra usage balance is empty, an organization admin can add extra usage credits at claude.ai/admin-settings/usage. If its monthly spend limit was reached, an admin can raise it on the same page. If neither applies, contact Anthropic support.
Once extra usage is available, someone with write access to this repository can comment @claude review on this pull request to trigger a review.
✅ Deploy Preview for friggframework-org canceled.
|
Adds a Comparable tools section (cloud agent gateways, agent tool platforms, embedded integration platforms, MCP infrastructure gateways), what the design takes from them, what differs, and a buy-instead alternative. Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01StH4nGULZCjQWwhDgbG6ns
Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01StH4nGULZCjQWwhDgbG6ns
Version 1 stays curated. Adds section 9 on admin-added and user-added stored connectors, the rules that change for them, and an open question. Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01StH4nGULZCjQWwhDgbG6ns
Moves customer-added servers out of ADR-070 into their own ADR: stored connectors scoped to an organization or a user, the review and pinning rules for each, the outbound request guard, and the link to ADR-063. Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01StH4nGULZCjQWwhDgbG6ns
Bugbot is paused — on-demand spend limit reachedBugbot uses usage-based billing for this team and has hit its on-demand spend limit. A team admin can raise the spend limit in the Cursor dashboard, or wait for the next billing cycle to continue. |
A stored connector is a data-defined module, which ADR-063 does not cover, so it follows that ADR's patterns (immutable versions, lifecycle, no secrets in the record, ADR-056 ownership) without sharing its table. Native tools are generated from ADR-063 capability manifests. New routes move under /api/v2. Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01StH4nGULZCjQWwhDgbG6ns
|



Summary
Two proposed ADRs. Docs only, no code.
ADR-070: MCP Gateway
One MCP endpoint on a Frigg app that an adopter's in-product agent talks to.
mcp-toolsurface from ADR-020) and tools passed through from remote MCP servers.McpRemoteRequesterfor the client side of MCP authorization (discovery, client registration, PKCE,resourceparameter).OAuth2Requesterhas none of these today.providerkey.x-frigg-appuserid/x-frigg-apporgidheaders.ADR-071: Bring Your Own MCP Server
Builds on ADR-070. Lets an adopter's customers add MCP servers the adopter never reviewed.
write).curated: false, no name collisions.DRAFTtoRETIREDlifecycle, no secrets in the record, ADR-056 ownership). A data-defined integration cannot call a stored connector's tools.Also adds both register rows and points the
extension-mcp-serverentry in ADR-017 at ADR-070.Why now
A Frigg adopter is adding agent connectors (a Slack action and two per-seat data providers with remote MCP servers). Without ADR-070, the adopter builds a second token store and connect flow in its own backend. ADR-071 is the follow-on its customers will ask for.
For review
Each ADR ends with open questions, each with a lean. The ones I would most like a second opinion on:
Numbers 070 and 071 were chosen because 064, 066, 067 and 069 are claimed by open PRs (#711, #729, #736). ADR-053, ADR-056 and ADR-063 are referenced by number only, since they are not on
nextyet. ADR-063 was read from the open stack; ADR-053 and ADR-056 were not read, only cited as ADR-063 cites them.Test plan
🤖 Generated with Claude Code
https://claude.ai/code/session_01StH4nGULZCjQWwhDgbG6ns