mirror of
https://github.com/paperclipai/paperclip.git
synced 2026-10-26 18:31:34 +01:00
One in-process fetch fixture stands in for an MCP server plus its authorization server, so the whole generic path — discovery, registration, authorization, catalog, review, install, revoke — is deterministic and needs no network or vendor credentials. Every case deliberately connects by URL and never names a gallery app, and asserts the connection carries no `sourceTemplateKey`, so a regression that reintroduced a dependency on curated metadata would fail here. Covers public/bearer/custom-header endpoints, the four registration tiers and their preference order, RFC 8707 `resource` on authorize and token, RFC 8414 and OIDC-suffix discovery for a pathful issuer, `iss` acceptance and mismatch, re-registration on a moved callback, refusal to auto-re-register over an operator-supplied client, SSRF rejection, company isolation, secret redaction in config/refs/API readback, and a client metadata document with no tenant data. The manual-client binding test caught a real bug: a pasted client's callback was never stamped on first use, so its binding check would have accepted any callback forever. Fixed alongside. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>