APIXX.flow logo
Back to app
MCP Server · v1

APIXX MCP Server

Expose your APIXX workspace to AI assistants over the Model Context Protocol. Once connected, Claude / Cursor / ChatGPT can list flows, debug runs, inspect field mappings, and trigger on-demand syncs — all scoped to your tenant.

Endpoint
https://app.apixx.io/mcp
Transport: MCP Streamable HTTP · Method: POST · Auth: Authorization: Bearer mcp_…

Quickstart

  1. Go to Settings → MCP Server and click New token. Copy the mcp_… secret — it's shown once.
  2. Drop the snippet for your assistant below into its config file (or paste the URL+token into its UI).
  3. Restart the assistant and ask “list my apixx flows”. You should see live data.

Tip: issue one token per assistant / device so revocation stays surgical, and set an expiry for short-lived experiments.

Authentication

Generate dedicated MCP tokens from Settings → MCP Server. Tokens are prefixed mcp_, shown once at creation, and scoped to the customer of the user that issued them. They are independent from your REST API keys — revoke them separately.

POST https://app.apixx.io/mcp
Authorization: Bearer mcp_••••••••
Accept: application/json, text/event-stream
Content-Type: application/json
  • Use one token per assistant / device so revocation is surgical.
  • Set an expiry for short-lived experiments (30 / 90 / 365 days).
  • If a token leaks, revoke it in Settings → MCP Server — calls fail immediately.

Client configuration

Claude Desktop

Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):

{
  "mcpServers": {
    "apixx": {
      "url": "https://app.apixx.io/mcp",
      "headers": { "Authorization": "Bearer mcp_••••••••" }
    }
  }
}

Cursor

Open Settings → MCP → Add new MCP server, or edit ~/.cursor/mcp.json:

{
  "mcpServers": {
    "apixx": {
      "url": "https://app.apixx.io/mcp",
      "headers": { "Authorization": "Bearer mcp_••••••••" }
    }
  }
}

ChatGPT (Custom Connector)

In ChatGPT, open Settings → Connectors → Add custom connector and provide:

  • Server URL: https://app.apixx.io/mcp
  • Auth: Bearer token → paste your mcp_… secret

Custom connectors require a paid ChatGPT plan. Once enabled, the model can call any APIXX tool via natural language.

OpenAI Agents SDK

from agents import Agent
from agents.mcp import MCPServerStreamableHttp

server = MCPServerStreamableHttp(
    name="apixx",
    params={
        "url": "https://app.apixx.io/mcp",
        "headers": {"Authorization": "Bearer mcp_••••••••"},
    },
)

agent = Agent(name="apixx-ops", mcp_servers=[server])

Probing manually

curl -X POST https://app.apixx.io/mcp \
  -H "Authorization: Bearer mcp_••••••••" \
  -H "Accept: application/json, text/event-stream" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

Available tools

All tools are read-only except trigger_sync, and all calls are tenant-scoped.

list_flowsList every integration flow with status, source/destination, and last run.
get_flowFetch a single flow by name (schedule, connectors, owner).
get_flow_mappingsInspect the source → destination field mappings for a flow.
list_flow_runsRecent runs for one flow with timing, records processed and error counts.
get_flow_error_summaryTop error classes for a flow in a given window.
list_runsCross-flow run history — useful for ops dashboards.
get_runDetails for a specific run id.
get_run_errorsPer-record errors for a run, with payload excerpts.
list_connectorsConnected systems and current health (auth, quota, last poll).
get_system_healthAggregate health: failing flows, degraded connectors, queue depth.
trigger_syncKick off an on-demand run of a flow. Returns the new run id.

Typical queries

These are the kinds of prompts that work well once APIXX is wired into your assistant. Each one maps to one or more tools above — the model picks the right combination.

Daily operations

  • “Which flows ran in the last 24 hours and how many records did each process?” list_runs
  • “Show me every flow that's currently failing or degraded.” list_flows + get_system_health
  • “Give me a one-line status summary for each flow.” list_flows
  • “What was the last successful run of the Salesforce → Snowflake accounts flow?” list_flow_runs
  • “Summarize today's system health and call out anything that needs attention.” get_system_health

Debugging a failed run

  • “The HubSpot contacts flow failed this morning — what went wrong?” list_flow_runs + get_run_errors
  • “Group the errors on run run_abc123 by error type and show a sample payload for each.” get_run_errors
  • “What are the top 5 error classes on the Shopify orders flow over the last week?” get_flow_error_summary
  • “Find every run in the last hour with status FAILED and tell me which connector they share.” list_runs + list_connectors
  • “Pull the full detail for run run_abc123, including timing and record counts.” get_run

Understanding a flow

  • “What source and destination does the NetSuite invoices flow use?” get_flow
  • “Show me the field mappings for the HubSpot → Salesforce contacts flow.” get_flow_mappings
  • “Which fields in the orders flow have filters or validations applied?” get_flow_mappings
  • “Does any flow write to the customers table in Snowflake?” list_flows + get_flow_mappings

Connectors & health

  • “List every connector I have configured and its current auth status.” list_connectors
  • “Are any of my connectors close to their rate limit or quota?” list_connectors + get_system_health
  • “What's my overall error rate across all flows this week?” get_system_health + list_runs

Taking action

  • “Trigger a sync for the Salesforce accounts flow and give me the run id.” trigger_sync
  • “Re-run every flow that failed in the last hour.” list_runs + trigger_sync
  • “Kick off the nightly NetSuite invoice sync now and watch it until it finishes.” trigger_sync + get_run

Reporting & standups

  • “Write a Slack-ready summary of integration health for this morning's standup.”
  • “Draft a postmortem for yesterday's failed Shopify sync using the run + error data.”
  • “How many records did we move across all flows yesterday, broken down by destination?”

Scopes & safety

  • Every tool resolves the caller's customer_id from the bearer token. There is no cross-tenant access.
  • trigger_sync is the only write operation; everything else is read-only.
  • The server respects the same rate limits and quota caps as your REST API key.
  • Token usage is tracked — see last_used_at in Settings → MCP Server.

Errors

MCP errors follow JSON-RPC. Common cases:

401Missing, malformed, expired, or revoked token. Generate a new one in Settings.
405Wrong HTTP method. Only POST is supported; GET / DELETE return 405.
406Missing Accept header. Always send `Accept: application/json, text/event-stream`.
-32602Invalid tool params — see the per-tool zod schema returned by tools/list.
429Rate limited. Back off and retry after the indicated delay.

See also