Authentication
The three kinds of credentials in PipMCP - upstream API credentials, MCP endpoint tokens and management API tokens.
PipMCP deals with three separate kinds of credentials. Keeping them apart is what lets an agent use your API without ever holding your API keys.
| Credential | Who uses it | Where it goes | Prefix |
|---|---|---|---|
| Upstream credential | PipMCP | From PipMCP to your API | (yours) |
| Endpoint access token | AI clients | From the client to your MCP endpoint | pmcp_ |
| Management API token | Your scripts and CI | From your code to the PipMCP API | pmk_ |
Upstream credentials
Stored on a connection. PipMCP adds them to each upstream request at the last moment. They are envelope-encrypted, never shown again after saving, never logged and never sent to AI models or clients.
| Auth type | Fields | How it is sent |
|---|---|---|
| None | – | No credentials |
| API key (header) | Header name (default X-API-Key), API key |
X-API-Key: <key> |
| API key (query) | Parameter name (default api_key), API key |
?api_key=<key> |
| Bearer token | Token | Authorization: Bearer <token> |
| Basic auth | Username, password | Authorization: Basic … |
| OAuth 2.0 authorization code | Authorization URL, token URL, scopes, client ID, client secret, extra authorize parameters | Bearer access token, refreshed automatically |
| OAuth 2.0 client credentials | Token URL, scopes, client ID, client secret, audience | Bearer access token, fetched and renewed automatically |
| Custom headers | One Name: value per line |
Each header as given |
When you import a spec, PipMCP maps its security schemes to the matching auth type: apiKey to API key (header or query), http bearer to bearer, http basic to basic, and oauth2 to authorization code (or client credentials when that is the only grant).
OAuth 2.0 connections require a paid plan. The redirect URL to register with your provider is:
https://pipmcp.com/app/oauth/callback
Endpoint access tokens
AI clients authenticate to an MCP endpoint with a bearer token:
Authorization: Bearer pmcp_...
- Created on the endpoint page and shown once. Only a SHA-256 hash is stored.
- Bound to one endpoint; a token for one endpoint is rejected by every other.
- Scopes:
tools:list(discover tools) andtools:call(run them). New tokens get both. - Optional expiry; revocable at any time.
An invalid, expired or revoked token gets HTTP 401 with a WWW-Authenticate header:
WWW-Authenticate: Bearer resource_metadata="https://pipmcp.com/.well-known/oauth-protected-resource/mcp/<workspace>/<endpoint>", scope="tools:list tools:call"
A token without tools:call that tries to call a tool gets HTTP 403 with error="insufficient_scope".
Tokens are the supported way to authorize MCP clients today. OAuth-based authorization for MCP clients is not yet generally available.
Management API tokens
Your own code uses workspace API tokens to call the Management API:
Authorization: Bearer pmk_...
Create them under Settings, API tokens. Each token has explicit scopes:
| Scope | Allows |
|---|---|
integrations:read / integrations:write |
List and read integrations / create, import and publish |
tools:read / tools:write |
List tools / update tools |
connections:read / connections:write |
List connections / create and test them |
endpoints:read / endpoints:write |
List endpoints / create and update them |
executions:read |
Read execution logs |
usage:read |
Read usage for the current period |
Tokens can expire after 1 to 730 days or never, and can be revoked at any time. Actions taken with a token are attributed to the user who created it in the audit log.
Dashboard accounts
Dashboard users sign in with email and password and can enable two-factor authentication under their account settings. Workspace roles (owner, admin, developer, viewer, billing) control what each member can change.