MCP connector with OAuth
The hosted MCP server at https://api.rocketverifier.com/mcp supports OAuth. Users add it to their AI assistant, sign in, approve, and start verifying. No API key to copy.
Looking for tools and API key setup?
The MCP Server page lists every tool and covers the local @rocketverifier/mcp package. API key Bearer auth on the hosted endpoint still works.
For users: connect in one click
Claude
- Open Settings > Connectors and choose Add custom connector.
- Name it RocketVerifier and paste
https://api.rocketverifier.com/mcpas the URL. - Click Connect. A RocketVerifier window opens; sign in, pick your personal account or an organization, and click Allow.
ChatGPT
- Open Settings > Connectors (developer mode must be on for custom connectors).
- Create a connector with the URL
https://api.rocketverifier.com/mcpand authentication set to OAuth. - Sign in to RocketVerifier when prompted and approve.
Other MCP clients
Any client that supports the MCP authorization spec works the same way: give it the server URL and it handles the rest. Menu names change between client versions; look for remote MCP server or custom connector.
What the user controls
The connection shows up in Settings > Connected apps at app.rocketverifier.com, labeled with the client's name and an Unverified app badge (self-registered clients are not reviewed). Verifications run on the account the user picked, and the user can set a monthly credit cap on the consent screen or disconnect at any time.
For MCP client developers
RocketVerifier implements the MCP authorization flow: protected resource metadata (RFC 9728), authorization server metadata (RFC 8414), dynamic client registration (RFC 7591), and the authorization code flow with PKCE S256 and the resource parameter (RFC 8707).
1. Discover the authorization server
Call the MCP endpoint without credentials. It answers 401 and points to its metadata:
POST https://api.rocketverifier.com/mcp
HTTP/1.1 401 Unauthorized
WWW-Authenticate: Bearer resource_metadata="https://api.rocketverifier.com/.well-known/oauth-protected-resource"{
"resource": "https://api.rocketverifier.com",
"authorization_servers": ["https://app.rocketverifier.com"],
"bearer_methods_supported": ["header"],
"scopes_supported": [
"verify:single", "verify:bulk", "jobs:read", "jobs:write", "webhooks:manage",
"credits:read", "monitors:read", "monitors:write", "account:read"
],
"resource_documentation": "https://docs.rocketverifier.com/oauth/mcp"
}Then fetch https://app.rocketverifier.com/.well-known/oauth-authorization-server for the endpoints. The full document is in the reference.
2. Register a client
Content-Type: application/json
{
"client_name": "My MCP Client",
"redirect_uris": ["http://127.0.0.1:33418/callback"],
"grant_types": ["authorization_code", "refresh_token"],
"response_types": ["code"],
"token_endpoint_auth_method": "none",
"scope": "verify:single verify:bulk jobs:read credits:read"
}{
"client_id": "rvapp_xxxxxxxxxxxx",
"client_id_issued_at": 1793530800,
"client_name": "My MCP Client",
"redirect_uris": ["http://127.0.0.1:33418/callback"],
"grant_types": ["authorization_code", "refresh_token"],
"response_types": ["code"],
"token_endpoint_auth_method": "none",
"scope": "verify:single verify:bulk jobs:read credits:read"
}| Rule | Detail |
|---|---|
| Public clients only | token_endpoint_auth_method must be none. No client secret is issued. |
| Redirect URIs | Must be https:// or loopback (http://127.0.0.1, http://[::1], http://localhost). Custom schemes and plain http on other hosts are rejected with invalid_redirect_uri. |
| Status | Created unverified. The consent screen shows the Unverified app badge. |
| Errors | RFC 7591 JSON: {"error": "invalid_redirect_uri" | "invalid_client_metadata", "error_description": "..."} |
3. Authorize with PKCE and resource
https://app.rocketverifier.com/oauth/authorize
?response_type=code
&client_id=rvapp_xxxxxxxxxxxx
&redirect_uri=http%3A%2F%2F127.0.0.1%3A33418%2Fcallback
&scope=verify:single%20verify:bulk%20jobs:read%20credits:read
&state=STATE
&code_challenge=CHALLENGE
&code_challenge_method=S256
&resource=https%3A%2F%2Fapi.rocketverifier.com4. Exchange the code
curl https://app.rocketverifier.com/api/oauth/token \
-d grant_type=authorization_code \
-d client_id=rvapp_xxxxxxxxxxxx \
-d code=CODE_FROM_REDIRECT \
-d redirect_uri=http://127.0.0.1:33418/callback \
-d code_verifier=VERIFIER \
-d resource=https://api.rocketverifier.com5. Call the MCP server
POST https://api.rocketverifier.com/mcp
Authorization: Bearer rv_at_xxxxxxxxxxxxxxxxxxxxxxxx
Content-Type: application/json
Accept: application/json, text/event-streamRefresh on 401 with error="invalid_token" as described in the reference. Refresh tokens rotate, so store each new one before using the new access token.
