Register the hosted MCP server:
https://mcp.unifapi.com
Compatible clients should discover OAuth from:
https://mcp.unifapi.com/.well-known/oauth-protected-resource
Do not add custom scope fields unless the client explicitly supports them. Let the client discover required OAuth details from protected-resource metadata.
| Field | Value |
|---|---|
| MCP server URL | https://mcp.unifapi.com |
| Protected resource metadata | https://mcp.unifapi.com/.well-known/oauth-protected-resource |
| Authorization server | https://api.unifapi.com/api/auth |
| Required MCP scope | unifapi:mcp |
| Transport | Streamable HTTP |
OAuth authorizes the UnifAPI workspace and credit balance. It does not authorize private upstream social, Google, CRM, email, or SaaS accounts.
list_operations to discover available public-data operations.get_operation before calling an unfamiliar operation.call_api for live evidence.401 unauthorized from a previously working OAuth session as expiry, revocation, or wrong audience; restart OAuth.Claude Code:
claude mcp add --transport http unifapi https://mcp.unifapi.com
Codex:
codex mcp add unifapi --url https://mcp.unifapi.com
Cursor-style JSON:
{
"mcpServers": {
"unifapi": {
"url": "https://mcp.unifapi.com"
}
}
}
Use this only when a client cannot complete OAuth or explicitly requires static headers.
{
"mcpServers": {
"unifapi": {
"url": "https://mcp.unifapi.com",
"headers": {
"Authorization": "Bearer YOUR_UNIFAPI_KEY"
}
}
}
}
If a key is needed, prefer secrets outside chat: environment variables, a local .env file the user explicitly tells you to read, or a secret manager. Do not ask the user to paste secrets into the conversation.
Connecting to the MCP server is free. Calls that fetch public data spend UnifAPI workspace credits and may return billing metadata in the tool result.
Common credit errors:
| Error | Meaning |
|---|---|
unauthorized |
Missing, expired, revoked, malformed, or wrong-audience credential |
insufficient_credits |
The connected workspace does not have enough credits |