wflow-mcp
OfficialAllows exporting documents from wflow to DATEV format for use in German accounting and tax software.
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., "@wflow-mcpWhich users can approve payments across all organizations?"
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.
wflow-mcp β experimental MCP server for the wflow.com public API
β οΈ Experimental / proof of concept. Not an official wflow product. Built to explore what Claude can do over the wflow public API. Use against a test/playground organization.
π A full offline reference of the wflow public API (all 173 operations + schemas) is bundled at
docs/wflow-public-api.md.
A Model Context Protocol server that lets Claude (Desktop, Code, or any MCP client) operate the wflow.com document platform through its public API β read and change documents, registers (cost centres, contracts, β¦), users, roles and teams, across one or many organizations.
It is built to cover the use cases from the "VyuΕΎitΓ Claude s wflow API" deck plus the long tail of the API, and it does auth, organization routing, pagination and rate-limit handling for you.
What it can do (mapped to the deck)
Slide | Example ask | Tools that serve it |
Users / roles / teams across orgs | "Which users can pay across organizations?" |
|
"Replace user Y with X in all organizations" |
| |
"Create team X and add these users" |
| |
"Prepare re-invoicing docs for client access" |
| |
Bulk document changes | "Set all documents with order Z01 to cost centre CentrΓ‘la" |
|
"Import line items from this table into this invoice" |
| |
"Find documents for these transactions across all orgs" |
| |
Controlling / reporting | "Find inconsistencies in posting" |
|
"Is any cost centre inactive this quarter?" |
| |
"Find deviations vs. the ledger export" |
| |
"Where is the order for this invoice?" |
|
Anything not covered by a typed tool is reachable via wflow_request (browse the full
surface with wflow_api_catalog) β so the server exposes all 173 API operations.
Related MCP server: OpenText Process Automation MCP
Tools (26)
Discovery & generic
wflow_list_organizationsβ orgs the principal can access (foundation for cross-org work)wflow_whoamiβ current account/identity for an orgwflow_api_catalogβ browse/filter the full endpoint catalogwflow_requestβ call any endpoint (method, path, org, query, body)
Documents
wflow_search_documentsβ filter/sort/auto-paginate, single or cross-orgwflow_get_documentΒ·wflow_get_document_eventswflow_update_documentβ create/update; set accounting registers by code, add line itemswflow_bulk_update_documentsβ query β patch every match (dry-run by default)wflow_export_documentsβ export to ERP/accounting formats (datev, excel, isdoc, moneyβ¦)wflow_upload_document_fileΒ·wflow_create_document_with_files
Registers (cost centres, contracts, activities, chart of accounts, partners, projects, β¦)
wflow_get_registerΒ·wflow_upsert_register(PUT = replace set / PATCH = partial)
Users / roles / teams
wflow_list_usersΒ·wflow_get_userΒ·wflow_upsert_userΒ·wflow_delete_userwflow_find_users_with_rightβ cross-org "who can do X" (e.g. who can pay)wflow_list_rolesΒ·wflow_upsert_roleΒ·wflow_delete_rolewflow_list_teamsΒ·wflow_get_teamΒ·wflow_upsert_teamΒ·wflow_delete_team
Setup
cd wflow-mcp
npm install
npm run build
cp .env.example .env # then edit .envConfigure .env
WFLOW_AUTH_MODE=client_credentials
WFLOW_ORG=your-org-slug
WFLOW_CLIENT_ID=your_client_id
WFLOW_CLIENT_SECRET=β¦
WFLOW_READONLY=false # set true to block all writes
WFLOW_MAX_ITEMS=2000 # auto-pagination safety cap per orgVerify it works (live smoke test)
npm run smokeThis spawns the server over stdio exactly like a Claude client, lists the tools, does a set of reads, then creates β bulk-updates β verifies β deletes a throwaway document.
Authentication
Two OAuth 2.0 flows, selected by WFLOW_AUTH_MODE:
1. client_credentials (default, machine-to-machine)
Uses WFLOW_CLIENT_ID + WFLOW_CLIENT_SECRET, scope uccl_common_api. The client must be
granted access to each organization in wflow β Settings β Integrations β API accesses.
This is what the provided _docasny client uses and it works out of the box.
2. interactive (opens the wflow login page β you type your username/password)
Authorization Code + PKCE. Set WFLOW_AUTH_MODE=interactive and WFLOW_CLIENT_ID, then:
npm run login # opens https://account.wflow.com in your browserThe refresh token is cached in ~/.wflow-mcp/tokens.json, so the server starts without
prompting afterwards. With interactive auth, wflow_list_organizations returns every org
your account can see β which is what makes the cross-organization use cases shine.
Requirement: the client must be registered in wflow with grant type Authorization code and must whitelist the redirect URI
http://localhost:53682/callback. Interactive clients are set up via wflow technical support. The provided_docasnyclient is client-credentials only, so interactive mode needs a separate interactive client id.
Add to Claude
Claude Desktop / Claude Code (.mcp.json or claude_desktop_config.json)
{
"mcpServers": {
"wflow": {
"command": "node",
"args": ["/absolute/path/to/wflow-mcp/dist/index.js"],
"env": {
"WFLOW_AUTH_MODE": "client_credentials",
"WFLOW_ORG": "your-org-slug",
"WFLOW_CLIENT_ID": "your_client_id",
"WFLOW_CLIENT_SECRET": "PUT-SECRET-HERE",
"WFLOW_READONLY": "false"
}
}
}
}(Environment variables set here override .env, and don't depend on the working directory.)
Claude Code (CLI, one-liner)
claude mcp add wflow \
-e WFLOW_AUTH_MODE=client_credentials \
-e WFLOW_ORG=your-org-slug \
-e WFLOW_CLIENT_ID=your_client_id \
-e WFLOW_CLIENT_SECRET=PUT-SECRET-HERE \
-- node /absolute/path/to/wflow-mcp/dist/index.jsThen in Claude: "List my wflow organizations", "Which users can pay?", "Set every document with order Z01 to cost centre 123 (dry run first)".
Design notes & safety
Hybrid tool surface. High-value typed tools for the deck's workflows + a generic
wflow_requestfor the entire API. The endpoint catalog (src/endpoints.json, 173 ops) is bundled sowflow_api_catalogworks offline.Cross-org is first-class.
search,list_users,list_teams,find_users_with_rightandbulk_updateacceptorganizations: [...]orallOrganizations: trueand fan out.Registers by code. Set
accounting.costCenter = {code:"123"}(orexternalId/id); wflow resolves the register on write β no id lookup needed. (Assigning an invalid register code is silently ignored by wflow.)Dry-run by default.
wflow_bulk_update_documentspreviews matches unlessapply=true.Read-only mode.
WFLOW_READONLY=trueblocks every non-GET request.Pagination. List/search auto-paginate up to
WFLOW_MAX_ITEMSper org and reporttruncated.Rate limits. 429s are retried once, respecting
x-rate-limit-period.
Project layout
src/
config.ts env + .env loader
auth.ts token manager (client_credentials + interactive PKCE)
client.ts HTTP client, org resolution, pagination
util.ts result helpers + endpoint catalog loader
endpoints.json bundled catalog of all 173 API operations
tools/
discovery.ts list_organizations, whoami, api_catalog, request
documents.ts search, get, update, bulk_update, events, export, upload, create_with_files
registers.ts get_register, upsert_register
people.ts users, roles, teams, find_users_with_right
index.ts server bootstrap (stdio)
login.ts standalone interactive login (npm run login)
scripts/smoke.ts end-to-end test against the live playgroundMaintenance
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
- AlicenseAqualityDmaintenanceπͺ MCP server for programmatic creation and management of n8n workflows. Enables AI assistants to build, modify, and manage workflows without direct user intervention through a comprehensive set of tools and resources for interacting with n8n's REST API.Last updated108884MIT
- Alicense-qualityCmaintenanceA Model Context Protocol server that lets Claude and any other MCP-compatible client work with an OpenText AppWorks Platform tenant in plain English.Last updatedMIT
- Alicense-qualityDmaintenanceMCP Server for interacting with the Langflow API via a natural language interface. It exposes Langflow functionalities as tools for LLMs.Last updatedMIT
- Flicense-qualityCmaintenanceAn MCP server for OData v4 endpoints, especially Microsoft Dataverse/Dynamics 365, enabling authentication, schema discovery, querying, CRUD, and more via natural language.Last updated
Related MCP Connectors
MCP server for generating rough-draft project plans from natural-language prompts.
MCP server for AgentDocs (agentdocs.eu): read, search, write, comment on & share Markdown docs.
An MCP server that let you interact with Cycloid.io Internal Development Portal and Platform
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/wflowcom/wflow-mcp-experimental'
If you have feedback or need assistance with the MCP directory API, please join our Discord server