Access & setup
How do I get access to the MCP Server? The MCP Server is available to all Everflow networks. Any network user with a valid Network API key can connect — no setup or approval required. Which AI clients are supported? Any client that implements the MCP specification. This includes Gemini CLI, Claude Desktop, Cursor, VS Code with Copilot, and others. See the MCP clients directory for a full list. Setup instructions for the most common clients are in the Quickstart. Can affiliate or advertiser users connect? No. Only Network API keys are accepted. Affiliate and advertiser keys will receive a403 Forbidden response. This is by design — the MCP Server exposes network-level data that is not appropriate for affiliate or advertiser access.
Which auth header should I send?
Either. The MCP server accepts X-Eflow-API-Key and X-Api-Key interchangeably, on every endpoint and in every client — the alias is not Slack- or Claude-specific. Use X-Api-Key wherever a client restricts you to standard header names. It applies to MCP only; the REST API at api.eflow.team still requires X-Eflow-API-Key.
Is Everflow in Anthropic’s connector directory?
No. Everflow MCP is a custom remote MCP server that you add yourself — it isn’t listed in Claude’s preset gallery, so searching for it there returns nothing. That’s expected and doesn’t affect what it can do; see the Claude.ai setup.
Does the MCP Server require a separate login or OAuth flow?
No. Authentication is handled by the X-Eflow-API-Key header, the same credential you use for the REST API. There is no browser-based OAuth or additional login step.
Permissions & data scope
Why am I not seeing all affiliates? If your account has limited affiliate scope, the MCP Server enforces that scope — you will only see affiliates assigned to you. This is the same restriction that applies in the Everflow UI and REST API. Callget_account_info and check current_user.is_limited_affiliate_scope to confirm. To see all affiliates, ask a network admin to update your scope in Control Center → Security.
Can the agent access data from other networks?
No. Every tool call is scoped to the network associated with your API key. The MCP Server has no cross-network access.
Does the server protect against prompt injection?
Partly. Responses are scanned for known injection patterns and matches are redacted, and every externally-authored field (offer names, sub-params, referers, and so on) is named in an _untrusted_content object so an agent knows which values came from outside Everflow. See Response safety. These are defenses, not guarantees — keep a human in the loop for anything consequential.
What data can the agent never access?
The MCP Server does not expose: passwords or credentials of any kind, raw payment or banking details, other networks’ data, or any data your API key does not have permission to view through the standard REST API.
Which API key should I use for a connector?
A dedicated one, Read Only, scoped to just the modules that connector needs — not an admin key. Once pasted into a hosted client the key is stored there and never shown again, and its permissions become the connector’s whole capability surface. In a Claude Tag channel it’s a shared identity that anyone in the channel uses. See Choosing a key for a connector.
Does my employee permission level affect what the agent can do?
Yes. The agent operates with the exact same permissions as the API key you provide. If your key belongs to an employee with restricted advertiser or affiliate scope, the agent inherits those restrictions automatically. See Permissions for the full breakdown.
Capabilities & limits
Can I run something on a schedule? Not from Everflow — the MCP Server has no scheduler and never pushes data. Your client can, though: connect Everflow to Claude.ai and use Claude’s scheduled tasks to re-run a prompt hourly, daily or weekly and deliver the result by email or Slack. See Scheduled tasks. For event-driven triggers rather than a fixed cadence, use Webhooks. Can the agent create, update, or delete data? No. The MCP Server is read-only — it cannot create, update, or delete records. Any data changes — offer status, account status, conversions, caps, targeting, payouts — go through the Network API. How current is the data? Reporting data (clicks, conversions, performance reports) reflects the same latency as the REST API — typically near real-time for tracking events, and aggregated metrics (performance reports) reflect data within a few minutes. Entity data (offers, affiliates, advertisers) is fetched live on each request. Are there limits on how much data I can retrieve? Yes. See Limits & Errors for the full breakdown. The main constraints are:search_activity(type="click") returns up to 1,000 records over a maximum 14-day window and is not paginated; search_activity(type="conversion") is paginated (up to 100 records per page, default 50) — follow next_cursor to retrieve all matches. Performance reports are paginated with a maximum of 100 rows per page.
Can I run reports for any date range?
Performance reports (run_performance_report, run_network_summary) have no enforced date range limit beyond what the underlying data supports. search_activity(type="click") is limited to a 14-day window per query. search_activity(type="conversion") has no enforced date range limit and is paginated — page through all matches with page_size + next_cursor.
Is there a rate limit?
Yes. The MCP Server has its own dedicated rate limit of 10 requests/second per network, separate from the REST API quota. MCP requests do not count against your REST API limit, and REST API usage does not affect your MCP quota. Each tool call counts as one or more requests depending on the data it fetches. See Limits & Errors for the full breakdown.
Troubleshooting
One specific tool is missing from the list. Your key almost certainly lacks that tool’s module permission — tools a key cannot access are hidden from the tool list rather than failing at call time. A Reporting-only key sees 9 of the 16 tools. Look the tool up in All Tools to find the module it needs, enable it under Control Center → Security, then restart your client so it refreshes the tool list. The agent says it can’t find any tool, or the tools list is empty. Restart your MCP client after adding the Everflow server config. If the problem persists, verify your config file has valid JSON (no trailing commas) and that theX-Eflow-API-Key header is set correctly.
I’m getting a 401 Unauthorized error.
Your API key is missing or invalid. Verify the key in Control Center → Security and make sure it is copied correctly into your client config with no extra spaces.
I’m getting a 403 Forbidden error.
This usually means you are using an affiliate or advertiser key instead of a Network key. MCP only accepts Network API keys.
The agent returns results, but they seem incomplete.
Check whether your account has limited affiliate scope — get_account_info will confirm this. If your scope is correct and data still seems missing, the relevant records may not exist or may be outside the date range you specified.
The session times out after a period of inactivity.
This is expected behavior. The session idle timeout is 10 minutes (see Limits & Errors). MCP clients that implement the Streamable HTTP spec will negotiate a new session transparently on the next request. If your client does not recover automatically, restart it.
Performance reports return 0 results for a date range I expect to have data.
Check that the timezone parameter matches your network’s reporting timezone. A mismatch can cause date boundaries to shift and return empty results. Use get_account_info to confirm your network’s default timezone before running reports.
A filter I pass seems to be ignored — the results look identical to an unfiltered call.
First check whether your client is holding an older copy of the tool schema. MCP clients cache the tool list when they connect, and filters reach the server two different ways:
- Typed parameters —
search_activitydeclares each filter as its own parameter (offer_id,status,email, …). If your cached schema predates a newly added parameter, your client strips it as an unknown argument before the request is sent. The server never receives it, so it is neither applied nor rejected — the call succeeds and returns unfiltered data. - A JSON
filtersobject —list_entities,count_entitiesandrun_performance_reporttake filters as a single object. Arbitrary keys pass through the client untouched and are validated server-side, so an unrecognized key returns an explicit error rather than being dropped.
filters object is a useful cross-check: if it works there and not as a typed parameter, the cause is a stale client, not the server.