We gave an AI agent the keys to a creator program
Building an MCP server that can spend money meant answering a question most integrations dodge: what should an agent be allowed to do on your behalf?
CollabPal is an MCP server. Connect Claude, ChatGPT or any MCP client with one API key and it can invite creators, post bounties, review work and pay people out.
Most creator program software assumes a human is going to sit in the dashboard and click through it. That assumption is starting to look dated. If you already have an agent drafting your briefs and chasing your inbox, the dashboard is the slow part of your day.
CollabPal is an MCP server. That means Claude, ChatGPT, Grok Bot, OpenClaw or anything else that speaks the Model Context Protocol can operate your program directly: 85 tools covering everything a person can do in the interface. This is a walkthrough of connecting one and putting it to work.
Open Settings, then Account, then API keys. Give the key a name you will recognise later, like the machine or the assistant it belongs to. The secret appears once. Copy it then, because it is stored as a hash and cannot be shown again.
Three options are worth understanding before you click create. You can restrict a key to a single workspace, so an agent working on one program cannot touch another. You can make it read-only, which allows every tool that inspects things and blocks every tool that changes them. And you can give it an expiry, after which it stops working on its own.
For Claude Code, one command registers the server:
claude mcp add --transport http collabpal \
https://www.collabpal.com/api/mcp \
--header "Authorization: Bearer cpk_your_key_here"For Cursor, Claude Desktop or anything else that reads an mcp.json, the equivalent config is:
{
"mcpServers": {
"collabpal": {
"type": "http",
"url": "https://www.collabpal.com/api/mcp",
"headers": {
"Authorization": "Bearer cpk_your_key_here"
}
}
}
}Use the www host. The apex domain redirects, and most MCP clients drop the authorization header when they follow a redirect, which shows up as a confusing 401.
The first call worth making is whoami. It returns the user the key acts as, the workspaces they belong to with their role in each, and any creator programs they have joined. Agents that skip this tend to guess at which workspace they are in and get it wrong.
Every workspace tool takes an optional workspace_id. Leave it off and the tool uses the key's default. Pass one the user is not a member of and the call fails with a clear message rather than quietly acting somewhere else.
Here is the kind of instruction that works well, given to an agent with the server connected:
Set up a bounty for our launch video. $250 per approved submission, two weeks, open to the YouTube tier 1 group. Invite the five creators in my list first, then show me the brief before you publish it.
The agent will typically call whoami, then list_groups to resolve YouTube tier 1 to an id, then invite_creators with the emails, then create_campaign as a draft, then hand the draft back to you. When you approve, publish_campaign takes it live and every creator in the group gets an email.
That flow uses real tools with those exact names. There is no separate agent API pretending to be a person clicking buttons. The tools call the same server actions the dashboard calls.
A key acts as the person who created it, with exactly their permissions and no more. If you are an admin rather than an owner, your agent is an admin too. Row-level security applies identically. An agent cannot see a workspace you cannot see.
A few things stay deliberately out of reach of any key: changing your account email or password, deleting your account, managing API keys, and deleting a workspace. Those are the controls you would use to recover from a compromised key, so handing them to the key would defeat the point.
pay_rewards charges your saved payment method and sends money to creators through Stripe. It is a real transaction, not a status change. The tool is annotated as destructive so well-behaved clients will ask before running it, but you should decide deliberately whether your agent gets a key that can call it at all.
If you want an agent that drafts and reviews but never moves money, make its key read-only. It will still be able to list payouts and tell you what is owed; it just cannot send anything.
Ask your agent to call whoami and then list_creators. If those come back with your real data, everything else in the catalogue works the same way. The full tool list is documented in the repository, grouped by area, and the descriptions are written to be read by a model rather than a person.
Building an MCP server that can spend money meant answering a question most integrations dodge: what should an agent be allowed to do on your behalf?
Six signals you can pull from a creator's public profile before paying for a sponsorship — and what they actually tell you about real audience reach.
Five design choices we made while shipping OpenClaw — and why each one matters when the consumer of your API is an LLM agent, not a human.