Agent
Connect over MCP
Attach uplika to the AI agent you already use. No SDK to install, no key to paste.
uplika runs a remote MCP server. Your agent only needs the address; the client handles the rest, including dynamic client registration and OAuth 2.1 with PKCE.
You do two things: give the agent the address, and approve it in the browser.
Server address
https://api.uplika.com/mcp
Per client
Codex
Paste the prompt below and the agent adds uplika to its global settings, so it works in every project.
ChatGPT
Until ChatGPT's app directory lists uplika, add it as a custom MCP server. You no longer need developer mode. In Plugins → Add → Add custom MCP server, enter a name and the server address above, keep OAuth, tick the risk notice and press Create as a plugin. Then sign in and approve.
Claude
The dashboard button opens Claude's add window with the name and address filled in. Press Add, then approve. By hand: paste the address in Customize → Connectors → Add custom connector.
Claude Code
Paste the prompt below and the agent adds uplika to its global settings, so it works in every project.
OpenClaw
Paste the prompt below and the agent adds uplika to its global settings, so it works in every project.
Hermes
Paste the prompt below and the agent adds uplika to its global settings, so it works in every project.
Set up uplika so I can post to social media from right here. 1. Install the uplika plugin (it adds the uplika MCP server and its skills) by running: claude plugin marketplace add uplika/uplika-plugin claude plugin install uplika@uplika --scope user 2. Reload plugins, or tell me to restart this session, so the uplika tools load. 3. Call list_accounts. When the approval screen opens in my browser, walk me through clicking Allow to finish. 4. Then list my connected social accounts so we can confirm it worked. Tell me when it's done.
Install as a plugin
codex plugin marketplace add uplika/uplika-plugin codex plugin add uplika@uplika
A plugin adds the same MCP server plus skills that know the order to call the tools in. Agents with a terminal run these lines themselves; the address-only setup above still works.
What you approve
| Name | Type | Description |
|---|---|---|
accounts:read | read | List connected channels. |
posts:read | read | Read publishing history, replies and insights. |
posts:write | write | Publish, delete, reply, hide and upload. |
offline_access | oauth | Keep the agent connected after the browser closes. |
The approval screen lists exactly these. Nothing else is granted, and you can revoke it from the dashboard at any time.
It connected but something is off
Four things account for almost every report. None of them need us to change anything on our side.
| The tool list is empty | No channel is selected yet | Approve on the consent screen with at least one channel picked. The tools appear once the token exists. |
|---|---|---|
| It keeps asking me to authorize | The client cached a failed authorization | Remove the connector in the client and add it again. Our side keeps no half finished state to clear. |
| Publishing is refused with no_accounts | The call did not say which channel | Call select_channels first. It returns the account ids that publish expects. |
| Only some of the tools show up | The approval was narrowed | Authorize again and leave the scopes as they come. A read-only token has no publishing tools. |
Common questions
Do I need an API key to connect an agent?
No. MCP authenticates with OAuth, and the client registers itself. API keys exist only for calling the REST API directly, so nothing is pasted into the agent.
Which agents can connect?
Any client that speaks HTTP MCP with OAuth. The ones listed here are the ones we have walked through end to end, but a client that is not on the list connects the same way.
Why did approval stop and ask me to connect a channel?
Because a token with no channel behind it can publish nowhere. The agent would call publish, get an empty account list, and report success it did not have.