wraft-mcp
This server provides MCP tools to manage Wraft documents, templates, and approval flows via the Wraft REST API. Key capabilities:
Documents: Create from templates (preferred) or raw markdown, update, list/filter, retrieve, build PDFs, and transition approval states.
Templates & Content Types: Create data templates from markdown with placeholders, list/retrieve templates, list content types (e.g., NDA, Offer Letter) to inspect fields.
Approval Flows: List flows, get flow details, list flow states, and move documents through workflows.
Identity: Verify API key via
whoamito get user, email, organization, roles.Operational: Pagination on all list tools; field machine names are lowercased with spaces to underscores and stripped special chars. Write operations are not idempotent: check before retrying timed-out calls. Supports stdio and Streamable HTTP.
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., "@wraft-mcpCreate a document from the 'Project Proposal' template."
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.
wraft-mcp
The mcp server for Wraft, the open-source document lifecycle platform. It gives Cursor, Claude Code, Claude Desktop, and any other MCP client a curated tool set for running the document lifecycle end to end:
Scaffold the pipeline — create themes, layouts, approval flows, and content types (variants) with their fillable fields
Author templates — write a document body in markdown;
[Field Name]placeholders become fillable fieldsProduce documents — fill a template with values, build the PDF, and move the document through its approval flow
Automate — wire adaptor steps (build document, email, HTTP, conditions) into workflow DAGs with conditional edges
One shared tool set, two ways to run it:
stdio (
wraft-mcp) — your MCP client spawns the server locally; auth via env varsStreamable HTTP (
wraft-mcp-http) — a hosted, stateless service at/mcp; auth via per-requestx-api-keyheader
Setup
Local (stdio) — recommended for individuals. Add to your MCP client config:
{
"mcpServers": {
"wraft": {
"command": "npx",
"args": ["-y", "wraft-mcp@0"],
"env": {
"WRAFT_BASE_URL": "https://app.your-wraft.example",
"WRAFT_API_KEY": "wraft_..."
}
}
}
}Remote (hosted HTTP):
{
"mcpServers": {
"wraft": {
"url": "https://mcp.your-domain.example/mcp",
"headers": { "x-api-key": "wraft_..." }
}
}
}Client timeouts: build_document can run up to 120 s. Raise your MCP client's tool-call timeout accordingly (Cursor: "timeout" per server entry) or builds will appear to fail while still completing server-side.
During development (before npm publish): "command": "node", "args": ["/ABS/PATH/wraft-mcp/dist/index.cjs"].
Related MCP server: task-orchestrator
Tools
Documents
Tool | What it does |
| Documents in the organisation |
| Preferred create path: fills a template's placeholders from a field-values map and creates the document |
| Raw-payload create (escape hatch) |
| Update content (creates a version) |
| Generate the PDF (synchronous, up to ~2 min) |
| Move a document through its approval flow |
| Pre-authored templates with fillable fields |
| Author a template from markdown — |
Scaffolding
Tool | What it does |
| Content types (document variants) with their fields |
| Create a variant with fields, wired to a layout, flow, and theme |
| Field types (String, Text, Date, …) for |
| Approval flows and their states |
| Create a flow (default Draft → Publish states; custom states/approvers need the Wraft UI) |
| Themes: font + colors (font-file assets must pre-exist; pass ids) |
| Layouts: engine, page-template slug ( |
| Uploaded assets by type (theme fonts, layout letterheads) — source of ids for |
| Automation workflows (DAGs of adaptor steps) and their full structure |
| Create a workflow: steps (adaptor + config, referenced by key) connected by edges; triggers need the Wraft UI |
| Run a workflow with trigger data and get per-step results (synchronous) |
| Run history and per-step results of a run |
| Verify the key: user, email, organisation, roles |
Notes for agents
Pagination:
list_*tools acceptpageand returnpage_number/total_pages/total_entries— paginate before concluding something doesn't exist. Exceptions:list_flow_statesandlist_field_typesreturn plain arrays.Field machine names:
create_document_from_templatetakesfieldskeyed by machine name — the field's name lowercased, apostrophes stripped, spaces →_, other characters removed ("Client Name"→client_name). Get field names fromget_data_template(undercontent_type.fields).Writes are not idempotent: a timed-out
create_*orbuild_documentcall may still have completed. List or fetch before retrying — a blind retry creates a duplicate.No update/delete for scaffolding: themes, layouts, flows, content types, and workflows can be created but not modified or removed via MCP — clean up mistakes in the Wraft web UI. Workflow triggers also need the UI (execution is available via
execute_workflow).
API keys
Keys are unscoped. A Wraft API key carries its owner's full role permissions — the curated tool list limits what the agent can reach, not what the credential could do elsewhere. Create a dedicated least-privilege user for MCP keys.
IP-whitelisted keys don't work via the hosted server. Wraft sees the MCP server's IP, not yours, so whitelisted keys get
403 ip_not_whitelisted. Use a key without an IP whitelist for hosted access, or run stdio from an allowed machine. Do not whitelist the MCP server's egress IP — that nullifies the control for everyone behind the proxy.Keys are never logged by this server; redaction of
x-api-key/authorizationmust also be configured in any logging/APM middleware added around it.
Hosted deployment
See deploy/README.md — Docker image, env reference, ready-made compose + nginx edge, and the hosting checklist.
Development
npm install
npm test # unit tests
npm run typecheck
npm run build # dist/index.cjs (stdio) + dist/http.cjs (HTTP)
# live smoke against a running Wraft (runs whoami by default; exits non-zero on tool errors):
WRAFT_BASE_URL=http://localhost:4000 WRAFT_API_KEY=wraft_... npm run smoke
# or pass tool calls:
node scripts/smoke.mjs dist/index.cjs '{"name":"list_flows","arguments":{}}'
# optional pre-push gate (typecheck + tests + build before every push):
git config core.hooksPath .githooksLicense
AGPL-3.0-only — see LICENSE.md.
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
- AlicenseAqualityBmaintenanceMCP server for MDMA (Markdown Document with Mounted Applications) — interactive Markdown with forms, approval gates, tables, and more. Exposes the MDMA spec, authoring prompts, package metadata, and live docs to AI assistants so agents can author and integrate MDMA correctly.Last updated75658MIT
- Alicense-qualityAmaintenanceServer-enforced workflow discipline for AI agents. An MCP server providing persistent work items, dependency graphs, quality gates, and actor attribution. Schemas define what agents must produce — the server blocks the call if they don't. Works with any MCP-compatible client.Last updated199MIT
- AlicenseAqualityDmaintenanceMCP server for Word document (.docx) creation and manipulation — the production-grade document automation tool for AI agents.Last updated926MIT
- Alicense-qualityCmaintenanceA sovereign, MIT-licensed MCP server for professional-service workflow tools that runs on your infrastructure with Ed25519 signing, enabling autonomous agents to discover and invoke tools securely.Last updatedMIT
Related MCP Connectors
MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.
Artifact store for AI agents. Hosted OAuth at mcp.artifacta.io/mcp; local stdio via npm/PyPI.
MCP server for generating rough-draft project plans from natural-language prompts.
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/salsabeeljamal/wraft-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server