Axonity Flow MCP Server
OfficialThe Axonity Flow MCP Server provides a comprehensive API for managing and authoring Axonity tenant resources. It supports full CRUD (create, read, update, soft‑delete/restore) for ten entity types: workflows, agents, tools, skills, policies, reference documents, personas, output schemas, prompt snippets, and flows. All mutations are performed as drafts and require a publish request that goes through human approval; the server never publishes directly.
For each entity type you can:
List all entities, read details, create drafts, update with optimistic locking, soft‑delete and restore, discard drafts, and request publish.
Manage version history: list versions (checkpoints and named majors), read specific historical versions, roll back drafts, delete/restore version entries, name major versions, and read the live published snapshot.
Workflow‑specific tools let you apply structural mutations (add/connect steps/edges), replace the entire document, bulk delete, and read trigger parameters. You can manage triggers: create, list, delete, and rotate webhook tokens; create/delete cron schedules; and create, update, delete conditional triggers.
Runs and execution: start a workflow run against the published version, cancel, delete, archive/unarchive (individually or in bulk), list runs (paginated, per‑workflow or tenant‑wide), read traces, costs, and summaries.
Validation and testing: validate workflow structure and schema, analyze reachable outputs, validate and format Python tool code, execute tool code, and test stored connectors (secrets never exposed).
Memory attachments: attach/detach skills, policies, and reference docs to/from agents and workflows; list links.
Prompt management: read resolved prompt stacks, attach/detach/reorder prompt snippets on flow steps, list prompt snippets (including wildcards), clone them.
Agent personas are created via agent‑scoped operation; then full generic entity operations apply.
Connectors: create/update with placeholder auth, list system tools (read‑only catalog), execute tools, clone flows and prompt snippets.
Tenant‑level: read/update the single company document with versioning, rollback, and publish request.
Approvals: list and get details of publish approvals to monitor requests.
Security: all write operations use read‑only credentials, mutations are safe, secrets are never passed through the agent, and access is tenant‑isolated.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Axonity Flow MCP Serverlist my Axonity workflows"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
@axonity-ai/mcp — Axonity Flow MCP connector
A local Model Context Protocol server that lets an external agent (e.g. Claude Code on your laptop) read, draft, update, and recoverably delete workflows, agents, tools, skills, policies, reference docs, personas, output schemas, prompt snippets and flows in your Axonity tenant — the same verbs the internal Builder team has, minus direct publish.
It runs on your machine and talks to Axonity only over the public REST API, authenticated with a per-tenant service token. The backend re-enforces tenant + scope on every call, so the connector is not a trust boundary.
Setup
Mint a service token in Axonity → Settings → API tokens. Copy it once (it starts with
axs_); you won't see it again. Use a read-only token if you only want the agent to read — it is genuinely enforced, any write from it is refused with a 403. Every token expires (you choose 7, 15, 30, 60 or 90 days at mint time; there is no "never"), and there is no way for the agent to check remaining lifetime in advance — an expired token fails exactly like a revoked one, so mint a fresh one when that happens.Add the connector to Claude Code:
claude mcp add axonity \ --env AXONITY_TOKEN=axs_your_token_here \ --env AXONITY_API_URL=https://app.axonity.ai \ -- npx -y @axonity-ai/mcpAXONITY_API_URLis optional (defaults to the Axonity SaaS URL); set it if you self-host.Do not pass extra CLI arguments to
axonity-mcp; startup only reads environment variables. If arguments are supplied, the process exits with a clear usage-style error.Ask Claude Code things like "list my Axonity workflows", "create a workflow called Onboarding", or "add a step to workflow X".
Related MCP server: Workflows MCP Server
Tools
200+ tools total. axonity_conventions (read this first) covers the authoring
rules — drafts vs live, optimistic locking, per-entity fields, delete/restore,
and how to tell a retryable error from one that will never succeed.
The generic entity family
Ten entities — workflow, agent, tool, skill, policy, reference_doc, persona, output_schema, prompt_snippet, flow — share one shape, though not every entity gets every verb (see the per-entity notes below for the exceptions):
Tool (per | What it does |
| List the tenant's entities. |
| Read one by id (incl. its version — read before you update). |
| Create a new draft. |
| Update a draft ( |
| Soft-delete. Recoverable — see |
| Undo a delete. No version check. |
| Restore candidates. |
| Reset the draft to the last published state. |
| Ask for a draft to be published — creates a pending approval; never publishes. |
Exceptions: persona has no create_persona (create only via
create_agent_persona).
Plus:
apply_workflow_mutationsfor structural workflow edits (add steps, connect edges) via mutation commands, sequenced and version-threaded for you.replace_workflow_documentfor one-shot full-document replacement in a single atomic PUT.read_workflow_trigger_parameters— what input a workflow's triggers expect.bulk_delete_workflows— soft-delete several at once (each with its ownexpectedVersion).
Version history, rollback, and version-level delete
For the ten versioned entities (including flow):
Tool | What it does |
| List version history (checkpoints + named majors). |
| Read one, by integer checkpoint number. |
| Roll the draft back to an old version ( |
| Remove one history entry. Draft and published version are protected. |
| Restore candidates for the row above. |
| Undo the delete above. No version check. |
| The live snapshot, as opposed to the draft. |
| Give a major version a name (label a release). |
{version} (an int) and {versionId} (a UUID) are two different identifiers
across these routes — the tool parameter names say which.
Also
Personas:
read_agent_persona,create_agent_persona— agent-scoped, since a persona can only be created through its agent. Everything else about a persona (list, read, update, delete/restore, versions) is the generic entity family above.Connectors (a tool of type
connector):create_connector,update_connector—authConfigmust be placeholders only; a human fills real secrets in Axonity. (create_tool/update_toolcarry the same guard, so a connector authored either way is covered.)Attach / detach memory:
attach_skill_to_agent,attach_skill_to_workflow,attach_policy_to_agent,attach_reference_to_agent, and adetach_*_from_*for each. Detaching removes the link only — the skill or policy itself is untouched. Read the links back withlist_agent_skills,list_agent_policies,list_agent_reference_docs.Prompt elements (placement): a
prompt_snippetis a library item; it only takes effect once placed into a flow step's prompt stack.read_workflow_prompt_stacks/read_flow_prompt_stacksresolve a workflow/flow to its steps and each step'ssystem/userstacks (this is how you find theflowStepIds). Thenattach_prompt_snippet_to_flow_step(target=system|user, with an order),update_flow_step_prompt,reorder_flow_step_prompts,detach_prompt_snippet_from_flow_step, andlist_flow_step_prompts/list_wildcard_prompts.Company (the tenant's single company document — a singleton, no id):
read_company,update_company(whole-document save withexpectedVersion),list_company_versions,read_company_version,restore_company_version,name_company_major_version,read_company_published, andrequest_publish_company(takes no id — the server resolves your tenant's one company; direct company publish is closed to service tokens).Catalog & cloning:
list_system_tools(read-only catalog — enabling one for an agent isupdate_agentwith the id added tosystemToolIds),clone_flow,clone_prompt_snippet.list_deleted_prompt_snippetscalls/api/v1/prompt-snippets/deleted; the backend returns it as{ items: [... ] }, and the tool forwards that response unchanged.
Validate and run before you publish
Tool | What it does |
| Structural + schema check of a workflow document. Stateless and read-only-token safe; does not verify referenced agents/tools exist. |
| What a given step can read from upstream — bind inputs to real fields instead of guessing. Stateless and read-only-token safe. |
| Syntax and banned-pattern check for Python tool code. Stateless and read-only-token safe. |
| Format tool code with Black. Stateless and read-only-token safe. |
| Actually RUN tool code (not just validate it) and see the real output. |
| Test-run an already-saved connector. The backend decrypts its real secret server-side — the agent supplies only input parameters and never sees the secret. |
Triggers — what makes a workflow run
list_/create_/delete_ for webhook triggers (plus
rotate_webhook_trigger), cron schedules, and conditional triggers
(plus update_conditional_trigger). Trigger deletes are hard deletes with
no restore, and a webhook token is shown once at create or rotate.
Runs — evaluating what you built
start_workflow_run (test a workflow you built — it runs the published
workflow and really executes), cancel_run, delete_run, list_runs,
list_workflow_runs, read_run, read_run_trace, read_run_cost,
read_runs_summary, archive_run / unarchive_run, bulk_archive_runs /
bulk_delete_runs. There is no findings endpoint — evaluation means reading a
run's validator verdicts and its trace.
list_workflow_runs({ workflowId, archivedOnly?, limit?, cursor? }) returns one
page — { items, nextCursor, pageSize, hasMore }, 20 by default and 200 at
most — so follow nextCursor while hasMore is true rather than treating the
first page as the answer. It also lists launches, not runs: the per-item runs
a FOR EACH creates stay inside their launch, so a launch over 4,415 people is one
entry carrying forEachProgress. list_runs is the tenant-wide list and is
not paged this way — it answers with a bare array, capped at 200, walked with
offset.
Approvals
list_publish_approvals({ status?, limit?, offset? }) and
get_publish_approval({ approvalId }) — how you find out whether a
request_publish_* was approved or rejected. Approving and rejecting are
human-only actions in Axonity.
What this is for — and what it is not
Authoring. An agent composing an entity from intent: drafting a workflow, writing a tool, wiring memory onto an agent, and checking its own work. That is what these tools are built for.
Not bulk migration. Do not use the connector to move many entities verbatim from one place to another. Axonity's config export/import moves bytes with no model in the path and fails closed on secrets; content routed through an agent can be subtly altered in transit, which is precisely the risk a fidelity migration cannot take.
Guardrails
These are enforced by the backend, not merely by convention:
The connector never publishes.
request_publish_*creates a pending approval; a human approves it in Axonity, and only then does the draft go live. A direct publish from a service token is refused with a 403, so there is no tool for it and no way around it.A read-only token is genuinely read-only for mutations. Any write from a token without the
writescope is refused with a 403.The four stateless analysis tools are the exception:
validate_workflow,analyze_workflow_reachable_outputs,validate_tool_code, andformat_tool_codecan be called by read-only and write tokens because they never mutate state.The token is tenant-bound. An agent cannot reach another tenant.
Secrets never pass through the agent. A connector's
authConfigaccepts placeholders only; a write carrying something that looks like a real credential is rejected before it leaves the connector. Tenant secrets (/api/v1/secrets) aren't wrapped at all — the backend refuses any service token there outright.Errors carry a machine-readable
code, not just prose. A 409 can mean a stale write (retry) or a live reference conflict (don't — seeaxonity_conventions); the connector tells them apart bycode, never by matching the message text.No tool crosses the authority boundary. A test drives the whole registered surface and fails the build if any tool targets a publish / approve / secret / service-token / deploy route (
test/exclusions.test.ts).Guidance can't silently drift from the backend. The field/enum facts the connector states are pinned to a vendored snapshot of the backend OpenAPI schema;
test/conformance.test.tsfails if a route or documented enum diverges (seetest/fixtures/README.md).
One known exception, not enforced: a framework-provided flow is meant to
be read-only to a tenant, but the backend does not actually block
update_flow/delete_flow against one. Prefer clone_flow over editing a
framework flow in place.
Development
npm install
npm run typecheck
npm test
npm run build # emits dist/Releasing
Publishing runs from a maintainer's machine, not from CI. npm restricts tokens
that bypass 2FA for direct publishing, so a stored NPM_TOKEN cannot ship this
package; npm login is the supported path.
Run npm login in a real terminal — it prints a URL and waits for you to finish
in the browser, so it needs a session that stays attached (an editor's 2-minute
command timeout will kill it mid-flow).
npm login # browser flow; must complete in an attached terminal
npm whoami # confirm the account
git checkout main && git pull
npm version <x.y.z> -m "%s" # commits + tags, so the tag matches the tarball
git push origin main --follow-tags
npm publish # prepublishOnly builds dist/ fresh
npm view @axonity-ai/mcp version # confirmThen cut a GitHub release for the tag. That triggers Verify release, which
rebuilds and packs the tagged commit without publishing — it catches a tag that
was cut from a state CI cannot install.
Keep npm 11 locally: Node 20 bundles npm 10, whose resolver writes an incompatible lockfile tree. CI pins npm 11 for the same reason.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Flicense-qualityDmaintenanceEnables AI assistants to interact with the Onboarded platform through automatic API discovery and execution, with entity memory persistence and optional source code access from local repositories.
- AlicenseAqualityCmaintenanceEnables AI agents to programmatically create, manage, and execute independent Python workflow scripts with full CRUD operations, allowing AI to build and modify automation workflows themselves rather than just executing pre-built ones.61MIT
- Alicense-qualityBmaintenanceExposes identity, tools, workflows, guardrails, and evaluation as MCP tools — so any AI agent can read and write your ecosystem programmatically.27MIT
- Flicense-qualityAmaintenanceProvides a trust and governance layer for AI agents, enabling secure API access, credential vaulting, paid execution with human approval, and automatic call resume.81
Related MCP Connectors
Create, test, publish, and manage Dreamlit notification workflows from AI clients.
Manage SRG+ hubs, channels, content, assets, users, and workspaces from any MCP-aware AI agent.
Runtime permission, approval, and audit layer for AI agent tool execution.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/AxonityAI/axonity-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server