MCP server
Operate AXO from Claude or any MCP client through 130+ tools. Hosted endpoint, scoped tokens, streamable HTTP — the same operations your team runs in the app, as tool calls.
The endpoint
The hosted MCP server speaks streamable HTTP (stateless JSON-RPC) at a single URL:
POST https://axoapp.ai/api/mcp1. Generate a token
In the AXO dashboard, open Admin → Connect AI Tools and mint a token. Tokens are scoped per site and role-gated — you pick how much the agent can do. The plaintext mcpt_… value is shown once, alongside ready-to-copy setup in both forms below and a built-in connection test; store it in your client's secret config. Owners and admins can mint tokens.
Scopes
Every token carries one scope. The server derives the scope each tool requires from its operation and rejects calls that exceed the token's scope with a structured insufficient_scope error — so a read token can never mutate your site.
| Scope | Type | Description |
|---|---|---|
| read optional | scope | Read-only tools: analytics, lift, segments, profiles, zones, content — anything that only queries. |
| write optional | scope | Everything in read, plus create/update tools: draft variants, create segments, wire placements, create triggers. |
| admin optional | scope | Everything in write, plus destructive/sensitive tools: delete content, publish site overrides, force variant allocation, GDPR profile erasure. |
Scopes compose with per-token restrictions set at mint time: read-only refuses every tool that changes anything regardless of scope, block destructive tools refuses delete/reset/merge/force tools, and a token can be limited to specific product areas. Tools that hand out access — link tokens, account invites, live trigger fires — are denied unless the token was minted with credential issuance explicitly allowed.
2. Point your client at the endpoint
Two forms, depending on what your client accepts. Config-file clients (Claude Desktop, Claude Code, Cursor, VS Code, Zed) take an HTTP server with a bearer header. URL-only clients — Claude.ai and ChatGPT connector flows, or anything that asks for a single URL — take the connector URL, which carries the token as a query parameter. The Connect AI Tools screen shows both, pre-filled, when the token is minted.
{
"mcpServers": {
"axo": {
"type": "http",
"url": "https://axoapp.ai/api/mcp",
"headers": {
"Authorization": "Bearer mcpt_YOUR_TOKEN"
}
}
}
}3. List the tools
Confirm the connection with the Test connection button on the mint screen, or list tools over JSON-RPC. Every tool ships a rich, agent-readable description and a JSON Schema for its inputs — browse them all in the tool reference, or fetch the machine-readable manifest.
curl -sS https://axoapp.ai/api/mcp \
-H "Authorization: Bearer mcpt_YOUR_TOKEN" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'Skills and the AXO plugin
The server gives Claude AXO's tools. The axo plugin adds the seller workflows that use them: four skills that join a Salesforce account, contact, lead or opportunity to what that company and its people did on your site, written to run beside Salesforce's Salesforce in Claude plugin. The plugin bundles the connector reference (.mcp.json) with the skills, so Claude Code sets up both in one install. On claude.ai and Cowork you add the connector by URL, as described below.
| Skill | Ask it | What it does | Writes? |
|---|---|---|---|
axo:pre-call-brief | “Prep me for my 2pm with Acme” | Merges the Salesforce opportunity and contacts with AXO segments, high-intent pages, recency and hotness into one brief | No |
axo:hot-accounts | “Which of my open opps are hot this week?” | Ranks open Salesforce opportunities by company activity on the site, with a suggested next touch | No |
axo:explain-exposure | “Why did the site show Jane that offer?” | Runs AXO's exposure trace for a contact or session and reports it as written | No |
axo:draft-segment-page | “Draft homepage copy for this lead's audience” | Maps the record to an AXO segment and drafts zone copy or a page preview. Draft only: a human approves and publishes in AXO | Drafts only |
Once connected, the server's instructions tell Claude which of these skills the token can run in full, so a token that is too narrow is reported before the first call.
Install
Claude Code. Mint a token (step 1 above), export it, then add the marketplace and install the plugin. The plugin's .mcp.json reads the token from AXO_MCP_TOKEN, so no secret lives in the plugin files. The marketplace is the private AXO repository, so that path works for people with read access to it; anyone else can unpack the archive below and load it with claude --plugin-dir.
# the token from Admin → Connect AI Tools; .mcp.json reads it from the environment
export AXO_MCP_TOKEN=mcpt_YOUR_TOKEN
claude plugin marketplace add AXO-App/axo
claude plugin install axo@axoclaude.ai, Claude Desktop and Cowork. Upload the whole plugin, then add the connector by URL.
- Download axo-plugin-0.3.1.zip and check its SHA-256 against the value below. In claude.ai or the desktop app, open Customize → Plugins → Add → Upload plugin and pick the archive. The four skills then appear under Customize → Skills with the plugin's name. The plugin is saved to your account, so Cowork and Claude Code load it on their next session without a second install.
- Open the plugin from Customize → Plugins, select its Connectors tab, and select Connect next to
axo. The dialog is the ordinary Add custom connector form, prefilled with the nameaxoand the bundled URLhttps://axoapp.ai/api/mcp. Replace that URL with the connector URL from Admin → Connect AI Tools (the?api_key=form in step 2 above), keep the name, and continue. The URL carries the token, so treat it as a secret. On Team and Enterprise plans an Owner adds the connector for the organization under Organization settings → Connectors, and members then connect. - Once the tab shows the connector as connected, turn it on in the chat's + menu and ask for a brief. The skills call AXO tools by name, so they work with the connector however it was added.
Authorization header in .mcp.json is a Claude Code placeholder for AXO_MCP_TOKEN and does not come across, which is why the prefilled URL has to be replaced with the token-bearing one before you continue. If you use the connector without the plugin, or add it separately, Customize → Connectors → Add custom connector takes the same URL.Which token to mint
Use the narrowest token that covers the skills you want. The server's instructions name, per token, the skills it can run in full.
| Skills | Type | Description |
|---|---|---|
| pre-call-brief, hot-accounts, explain-exposure optional | read · read-only | Every tool these skills call is a read. Mint a read-scope token with read-only checked. |
| draft-segment-page optional | write · propose-only | Lets the drafting tools run and refuses every approve and publish tool at the server, so "a human publishes" is enforced rather than requested. Check block destructive tools as well. |
With Salesforce in Claude
Install both plugins in the same Claude. The AXO skills read Salesforce through the Salesforce plugin's read-only path (discover, describe, dispatch_readonly) and never its write path. They join the two systems on exact normalized email addresses for people and the exact normalized company domain (from Account.Website, falling back to the contacts' corporate email domain) for accounts; free-mail domains are never used as a company key. Personal data reaches AXO only as tool arguments, and company-level visit signals are reported at company level only.
Download
axo-plugin-0.3.1.zip · SHA-256 344bf863f4b1eeac4878fa4bed701c604cece387cdf2578b794b66fe36bc7fc5
The archive holds the manifest, the connector reference, the four skills, the README and changelog, and the evaluation cases. It contains no token.
Do I need to install anything?
No. AXO hosts the MCP server at https://axoapp.ai/api/mcp over streamable HTTP — point any MCP-capable client at it with a bearer token. There is nothing to install and nothing to keep updated.
What stops an agent from breaking my site?
Scoping. MCP tokens are minted per-site with a read, write, or admin scope; the server returns an insufficient_scope error when a tool needs more than the token carries. Mint-time restrictions tighten this further: a read-only token refuses every mutating tool whatever its scope, and destructive tools can be blocked outright. Start an agent on a read token and graduate it deliberately.
How do I connect Claude.ai or ChatGPT?
Use the connector URL instead of the JSON config — those clients take a single URL and have nowhere to put a header. Mint a token in Admin → Connect AI Tools, copy the pre-filled connector URL from the setup card, and paste it into the "add connector" flow. The URL carries the token, so treat it as the secret it is.
Is every tool also available over REST?
The read surface is available over the Pulse REST API for profiles and segments. MCP is the broadest surface and the natural fit for conversational agents; REST fits pipelines and custom code.
Are there ready-made skills for sales teams?
Yes. The axo plugin for Claude bundles the connector reference with four seller skills: pre-call-brief, hot-accounts, explain-exposure and draft-segment-page. They join a Salesforce account, contact, lead or opportunity to AXO website behavior and run beside Salesforce in Claude. The three reporting skills need a read-scope, read-only token; the drafting skill needs a write-scope, propose-only token and never publishes. The plugin installs in Claude Code, claude.ai and Cowork; the archive (axo-plugin-0.3.1.zip) and its SHA-256 are in the Skills and the AXO plugin section of this page.