Connect your AI tools to CPIDroid.
The CPIDroid MCP server exposes campaign management tools through JSON-RPC, so compatible AI clients can inspect and manage campaigns with your permission.
Server URLhttps://mcp.cpidroid.com
Getting started
Create an active token with type MCP, register the server URL in your AI client, and provide the token as an HTTP Bearer token.
One server, many tools
Send JSON-RPC 2.0 requests to the server URL. The standard methods initialize, ping, tools/list, and tools/call are supported.
Keep the token private
Tokens authenticate access to campaign data. Store them in your AI client configuration and never place them in browser code or public repositories.
Available tools
Call a tool by name and provide its arguments in the params.arguments object.
| Tool | Description | Arguments | Docs |
|---|---|---|---|
campaign/add
|
Create a CPIDroid campaign for the authenticated user | apikey, platform, application_url, campaign_type, budget, bid, download_rate, tracking_provider, redirect_url, target_countries, device, os, app_name, app_icon, keyword_sets, limit_strategy, event_name, event_conversion_time, event_description, confirm |
View Docs |
campaign/list
|
List CPIDroid campaigns with optional filters | apikey, status, limit |
View Docs |
campaign/get
|
Get CPIDroid campaign details and stats | apikey, campaign_id |
View Docs |
campaign/start
|
Start a pending or capped CPIDroid campaign | apikey, campaign_id |
View Docs |
campaign/pause
|
Pause a running or capped CPIDroid campaign | apikey, campaign_id |
View Docs |
wallet/balance
|
Get the authenticated user's USD balance | apikey |
View Docs |
Example requests
Each example uses JSON-RPC 2.0. Replace the placeholder with your MCP token before sending the request.
tools/call · campaign/add{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "campaign/add",
"arguments": {
"apikey": "YOUR_MCP_API_KEY",
"platform": "android",
"application_url": "https://play.google.com/store/apps/details?id=com.example.app",
"campaign_type": "cpi",
"budget": 100,
"bid": 0.5,
"confirm": {
"tracking": 1,
"policy": 1
}
}
}
}
tools/call · campaign/list{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "campaign/list",
"arguments": {
"apikey": "YOUR_MCP_API_KEY",
"status": "all",
"limit": 25
}
}
}
tools/call · campaign/get{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "campaign/get",
"arguments": {
"apikey": "YOUR_MCP_API_KEY",
"campaign_id": 12345
}
}
}
tools/call · campaign/start{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "campaign/start",
"arguments": {
"apikey": "YOUR_MCP_API_KEY",
"campaign_id": 12345
}
}
}
tools/call · campaign/pause{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "campaign/pause",
"arguments": {
"apikey": "YOUR_MCP_API_KEY",
"campaign_id": 12345
}
}
}
tools/call · wallet/balance[]
Errors and responses
error object with a code and message. Tool failures are returned as an error response instead of campaign data.Response contract
Successful calls return jsonrpc, the matching request id, and a result. Tool results contain a content array whose text payload is JSON-encoded campaign data.