Expedify over MCP
Expedify speaks MCP (the Model Context Protocol), so an AI app or agent can drive the whole product. Search your CRM, author and run workflows, query analytics, ask your knowledge base, as tools the model calls directly.
There are two ways in:
- Sign in from ChatGPT, Claude or Gemini. Each person connects their own account. The app works as them, sees only the records they can see, and does only what they allowed on the consent screen.
- A scoped API key for Claude Code, Cursor, n8n or your own agents. The key works for the whole organisation, within the scopes it was given.
MCP is a co-equal surface with the REST API, not an add-on. Both are projections of the same core:
┌──────────────┐
REST /v1/* ───▶│ │
│ ONE core: │ entity registry · scopes · services
MCP /v1/mcp ───▶│ operations │
│ .execute() │
└──────────────┘
Every guarantee you get on REST — the agx_ key, least-privilege scopes, default-deny, tenant isolation, rate limits — applies identically on MCP, because a tool call runs through the exact same gate as the REST endpoint.
Why MCP (and not just REST)
- Agent-native. Tools are curated intents (
search_contacts,run_workflow,ask_knowledge_base) that read like instructions — not a 1:1 mirror of every REST route. A model picks the right tool without you writing glue code. - One permission model. Sign-in and API keys use the same scopes. They decide which tools may run (the catalog itself is public).
- No SDK needed. Chat apps connect with an address and a sign-in, and developer tools with a couple of lines of config (see Connect).
The mental model
| REST | MCP | |
|---|---|---|
| Transport | HTTPS request/response | JSON-RPC (tools/list / tools/call) |
| Endpoint | https://api.expedify.ai/v1/... | https://api.expedify.ai/v1/mcp, or /v1/mcp/<org-slug> for one organisation |
| Auth | Authorization: Bearer agx_… | Sign-in (OAuth) from chat apps, or Authorization: Bearer agx_… (same key) |
| Unit | an endpoint + method | a tool |
| Shape | fine-grained CRUD | curated agent intents |
| Discovery | this OpenAPI reference | tools/list (full catalog; scopes enforced at call) |
Start here
- Connect: add Expedify to ChatGPT, Claude or Gemini, or point Claude Code, Inspector or n8n at the server.
- Auth & scopes: how sign-in permissions and key scopes gate which tools can run (discovery is public).
- Tool catalog — every tool, grouped by module, with schemas + examples (generated from the server, so the count there is always current).
- Workflow tools — expose one of your own workflows as its own
run_…tool. - Recipes — worked end-to-end flows (author a workflow, ask a KB, NL→SQL→chart).
Discovery is public; execution is not
tools/list needs no auth (it returns the static catalog, with no org data). Execution (tools/call) requires a sign-in or a key, and every call is scope-, tenant- and ACL-checked.