Connect AI clients to your workspace
Add Zanfia as an MCP server in Claude, Cursor, or any MCP-capable client and let it read and manage your workspace.
Zanfia exposes a hosted Model Context Protocol server. Add it to any MCP-capable AI client — Claude Code, Claude Desktop, Cursor, VS Code, Codex — and the assistant gets typed tools to read and act on your workspace: list products, write course lessons, create offers, post in your community, pull sales stats.
Server endpoint
The server runs at https://app.zanfia.com/mcp (Streamable HTTP transport).
Authentication
The server authenticates with the same bearer tokens as the API: create a scoped API key and send it as an Authorization: Bearer header. Tool access follows the key's scopes — read tools need the matching *:read scope, write tools *:write.
Add it to your client
Claude Code:
claude mcp add zanfia --transport http https://app.zanfia.com/mcp \
--header "Authorization: Bearer YOUR_API_KEY"
Cursor / VS Code / Claude Desktop (JSON MCP config):
{
"mcpServers": {
"zanfia": {
"type": "http",
"url": "https://app.zanfia.com/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_KEY"
}
}
}
}
Codex (OpenAI Codex CLI) — add to ~/.codex/config.toml (or a project-scoped .codex/config.toml), with the API key exported as an environment variable:
[mcp_servers.zanfia]
url = "https://app.zanfia.com/mcp"
bearer_token_env_var = "ZANFIA_API_KEY"
export ZANFIA_API_KEY="YOUR_API_KEY"
You can also manage the entry from the terminal with the codex mcp subcommand (codex mcp list, codex mcp add, …) instead of editing the TOML by hand.
Available tools
The server exposes the full Workspace API surface as ~90 tools. Read tools require the matching *:read scope, write tools *:write — products, offers, courses, media, clients, orders, stats, and discounts sit under the products scope; pages and communities under their own.
| Area | Read tools | Write tools |
|---|---|---|
| Products | list-products | create-product · update-product-info · update-product-status |
| Offers & prices | list-checkouts · get-checkout · list-product-prices | create-checkout · update-checkout · publish-checkout · duplicate-checkout · set-default-checkout · add-checkout-price · update-checkout-price · delete-checkout-price · reorder-checkout-prices |
| Order bumps | list-order-bumps | create-order-bump · update-order-bump · delete-order-bump · attach-order-bump · detach-order-bump |
| Courses & quizzes | get-course-content · get-course-lesson · list-quiz-questions | add-course-module · update-course-module · delete-course-module · add-course-lesson · update-course-lesson · set-lesson-thumbnail · update-lesson-content · delete-course-lesson · set-course-lessons-status · reorder-course-modules · reorder-module-lessons · add-quiz-question · update-quiz-question · delete-quiz-question · reorder-quiz-questions · update-quiz-settings |
| Media library | list-media · get-media · list-media-folders | delete-media · create-media-folder · delete-media-folder |
| Pages | list-pages · get-page | create-page · update-page · publish-page · delete-page · set-main-page |
| Communities | list-communities · list-community-channels · list-channel-posts · list-channel-messages · list-post-comments · get-community-updates | create-community-post · create-post-comment · create-channel · update-channel · delete-channel · create-community-group · update-community-group · delete-community-group · move-community-node |
| Clients & orders | list-clients · get-client · list-orders · get-order | create-client · update-client · change-client-email · grant-client-access · revoke-client-access · change-client-access-period |
| Stats | get-stats-overview · get-recurring-report · get-mrr-history · get-funnel-report · get-traffic-report · get-sessions-report · get-product-stats | — |
| Discounts | list-discounts | create-discount · update-discount · archive-discount · delete-discount |
Destructive tools (deletes, access revocation) say so in their descriptions, so a well-behaved assistant will confirm before using them. File and video uploads are deliberately not MCP tools — binary payloads don't fit tool calls; use the CLI or API for uploads, then reference the media id from MCP.
Scope the key to the job
The assistant can do everything its key allows. Give a read-only key
(products:read, communities:read) to assistants that only analyze
and summarize, and reserve write scopes for assistants you actively supervise.
Community members
The same endpoint also accepts community-member API keys (created by a member of your community in the member platform under Settings → Developer). A member key gets a separate, member-scoped tool set — the MCP twin of the Community API: listing their communities and channels, reading and searching posts, comments and chat, writing posts/comments/messages as themselves (own content only), and raising and tracking their support tickets. None of the workspace tools above are available to member keys.
For agents that keep an eye on a community, the get-community-updates tool (also GET /v1/communities/:communityId/updates?since=<ISO> on the Community API) returns everything new — posts, comments, and chat — across the caller's readable channels in one call: pass the returned nextSince as the next since instead of polling each channel separately. To know when someone talks to you (replies, @-mentions, reactions, DMs), member keys also get get-my-notifications and mark-notifications-read — the member's own notification inbox, shared with the platform bell.
Member requests are rate limited (per minute, per member — a 429 carries Retry-After), and content creates accept a clientRequestId UUID so retries never duplicate a post, comment, or message.
Member access is off by default: it works only in communities where the creator has enabled member API access in the community settings, and flipping the setting off immediately locks out already-issued member keys.
MCP, CLI, or raw API?
- MCP — best when a person chats with an AI client and wants it to act on the workspace directly.
- CLI — best for terminal-based agents, scripts, and CI; also the route for file and video uploads, which MCP deliberately doesn't do.
- Raw API — best for your own integrations and backends.
All three are the same underlying platform with the same permissions model, so you can mix them freely.
Was this article helpful?

