Skip to main content
The Everflow MCP Server is in early access. Email support@everflow.io to request access for your network.
The Everflow MCP Server exposes 16 read-only tools across three reference pages.
All tools are read-only. The MCP Server cannot create, update, or delete data.

Quick reference

ToolPageUse when
get_report_schemaReportingDiscover valid dimensions, filters, and metrics for run_performance_report
run_performance_reportReportingAggregated stats grouped by dimension — offers, affiliates, dates, geo, device, etc.
run_network_summaryReportingOverall totals for a date range, with optional prior-period comparison
search_clicksReportingRaw click records within a time window — max 14 days, up to 1,000 records
search_conversionsReportingRaw conversion records within a time window — up to 500 records
get_clickReportingSingle click event by transaction ID
get_conversionReportingSingle conversion event by conversion ID
get_offerOffers & AffiliatesFull offer detail — caps, targeting, payout, affiliate access
list_offersOffers & AffiliatesPaginated offer list with filters
get_affiliateOffers & AffiliatesFull affiliate detail — activity, users, offer access
list_affiliatesOffers & AffiliatesPaginated affiliate list with filters
get_account_infoAccount & GenericNetwork settings and authenticated user details
get_entity_schemaAccount & GenericDiscover filters and includes for any entity type
get_entityAccount & GenericSingle entity by ID for any supported type
list_entitiesAccount & GenericPaginated entity list for any supported type
search_documentationAccount & GenericSearch Everflow’s help center and API docs

Error responses

When a tool call fails, the MCP Server returns a result with isError: true. The text field of that result is a JSON object with two fields:
{
  "code": "INVALID_ARGUMENT",
  "message": "Missing required parameter: 'transaction_id'."
}
The message is human-readable and safe to surface directly to an end user or AI agent. The code is a stable string your code can branch on without parsing prose.

Error codes

CodeMeaningCommon triggers
INVALID_ARGUMENTA parameter is missing, malformed, or out of rangeMissing required field (transaction_id, from/to, dimensions); invalid date format; filters JSON exceeds 4,096 characters; a string parameter exceeds its length limit (see Limits & Constraints)
UNAUTHENTICATEDThe API key was not recognized by EverflowKey is missing, expired, or belongs to an affiliate/advertiser rather than a network user
PERMISSION_DENIEDThe key is valid but lacks the required module permission for this toolA scoped employee key without Offer Management access calling get_offer; a key without Reporting access calling run_performance_report
INTERNALAn unexpected error occurred in the Everflow backendTransient service failure; try again. If it persists, email support@everflow.io

Handling errors in a script

Check isError before processing content. The code field lets you handle each class of error differently without string-matching the message:
import json

def call_tool(agent_response):
    for block in agent_response.content:
        if not hasattr(block, "text"):
            continue
        try:
            payload = json.loads(block.text)
        except json.JSONDecodeError:
            # Successful tool result — plain text or structured data, not an error envelope
            return block.text

        code = payload.get("code")
        message = payload.get("message", "Unknown error")

        if code == "INVALID_ARGUMENT":
            raise ValueError(f"Bad request: {message}")
        elif code == "UNAUTHENTICATED":
            raise PermissionError(f"Auth failed: {message}")
        elif code == "PERMISSION_DENIED":
            raise PermissionError(f"Insufficient permissions: {message}")
        elif code == "INTERNAL":
            raise RuntimeError(f"Server error: {message}")
AI agents (Claude, Gemini, etc.) read the message field automatically and will describe the problem in natural language without any extra handling on your part. Error code parsing is only necessary when you are processing MCP tool results programmatically in a script.