find_operationsLABSCO SUMMARY
Reads and writes are different tools, and the write one asks first.
Most marketing MCP servers are read-only because the alternative is frightening — an agent that can quietly change a budget. Splitting run_operation from run_write_operation makes the dangerous path explicit and puts an approval in front of it, which is what makes campaign creation and budget changes reasonable to enable at all. The meta-tool design is the other reason this works in practice: a thousand operations as a thousand tool definitions would not fit in a session, so the model searches for what it needs instead.
What it is
A hosted MCP server across a marketing stack — paid media, analytics, organic social, e-commerce, CRM and messaging — reached at one endpoint. It does not register a tool per platform operation. Eight meta-tools let the client search a registry of more than a thousand operations at runtime, so the catalogue can grow without the tool list growing with it.
What you get
- find_operations — search the registry by what you are trying to do, rather than by knowing the API
- get_operation_inputs — the input schema for the operation you picked
- run_operation and run_write_operation — reads and writes are separate tools, and the write path is where approval is enforced
- list_connections — which platform accounts are actually authenticated right now
- upload_media, read_file and get_file_url — get creative assets in, and get generated files back out
- Paid media across Google Ads, Meta Ads, TikTok, LinkedIn, Microsoft, Reddit, Pinterest, Snapchat, Amazon and DV360; analytics through GA4, BigQuery, Search Console and Merchant Center; organic social, Shopify, HubSpot, Klaviyo, WhatsApp and Slack
- Pre-built workflows as slash commands in Claude Code — /markifact:launch-google-search, /markifact:launch-pmax, /markifact:launch-meta-campaign, /markifact:diagnose-underperformer, /markifact:negative-keyword-sweep, /markifact:rotate-creative and /markifact:edit-meta-creative
- A performance-marketer agent persona, and the same workflows compiled for Gemini CLI, Cursor and Codex
Requirements
A Markifact account with your ad accounts connected there — no platform API keys of your own to obtain or paste. The endpoint is https://api.markifact.com/mcp over Streamable HTTP, authorised with OAuth 2.1 and PKCE, with dynamic client registration so there is nothing to provision beforehand. Install paths exist for Claude Code, Claude Desktop, ChatGPT, Cursor, Codex CLI, Windsurf and Gemini CLI, or point any compliant client at the URL. Antigravity is the exception: it takes a command-based mcp-remote entry with a Markifact bearer token, generated at https://www.markifact.com/app/mcp. Free tier available, with paid plans above it.
Setup effort
Follow the published steps — claude plugin marketplace add markifact/markifact-mcp
USE CASES
Auditing an account you just took over
See which accounts are connected, then pull performance across campaigns and find what is wasting spend.
Launching a campaign without opening the ads UI
Run the pre-built workflow that ships a paused Search campaign with its ad groups, keywords and ads in one approval.
Working out why performance dropped last week
Compare the ad platform's numbers against analytics for the same window and follow the discrepancy.
Refreshing creative across platforms
Upload the new assets, then apply them — with the change held until you say go.
Reporting to a client
Pull the numbers, build the document, and take back the generated file.
8 tools
Listed in project docs. Your client may show a different list.
get_operation_inputsrun_operationrun_write_operationlist_connectionsget_file_urlread_fileupload_mediaBEFORE YOU INSTALL
What to know first
Tools you get
8 tools named in the project's documentation. The 1000+ operations are reached through find_operations, get_operation_inputs and run_operation, not as separate tools.
INSTALLATION
Connect your client
Server setup
Setup
claude plugin marketplace add markifact/markifact-mcp/plugin install markifact@markifact
Hosted endpoint
Any MCP client
https://api.markifact.com/mcpAdd this hosted endpoint to your MCP client using the credentials listed under Requirements.
MCP Clients
Claude Code
In your terminal:
claude plugin marketplace add markifact/markifact-mcpThen, inside a Claude Code session, run the slash command /plugin install markifact@markifact — it is typed into Claude Code, not the shell. The first call to any Markifact tool opens an OAuth sign-in in your browser.
ChatGPT
Settings → Apps → enable Developer mode → Create app → paste https://api.markifact.com/mcp
Cursor
curl -fsSL https://raw.githubusercontent.com/markifact/markifact-mcp/main/plugins/cursor/markifact/install.sh | bashCodex
curl -fsSL https://raw.githubusercontent.com/markifact/markifact-mcp/main/plugins/codex/markifact/install.sh | bashGemini CLI
gemini extensions install github.com/markifact/markifact-mcpWindsurf
{
"mcpServers": {
"markifact": {
"serverUrl": "https://api.markifact.com/mcp"
}
}
}Antigravity
{
"mcpServers": {
"markifact": {
"command": "npx",
"args": [
"mcp-remote",
"https://api.markifact.com/mcp",
"--header",
"Authorization: Bearer <YOUR_MARKIFACT_TOKEN>"
]
}
}
}Antigravity takes a command-based entry instead of OAuth: <YOUR_MARKIFACT_TOKEN> is a Markifact bearer token generated at https://www.markifact.com/app/mcp.