Real Word documents from chat: proposals, contracts, quotes. It writes .docx files from sections or from markdown, generates priced proposals and freelance service agreements with reference numbers that never repeat, reads an existing Word file back as text and outline, and fills {{placeholders}} in a template while keeping its styles.
Keep the NDA and the statement of work templates in the repository and doc_fill_template against the committed copy. The filled file lands in the same tree, so the diff shows which document went out and when.
| You say | Tool |
|---|---|
| Write a proposal for Beta Corp: checkout rebuild, 4,500 EUR, three phases. | proposal_create |
| Fill my NDA template with this client's details. | doc_fill_template |
| What does this proposal.docx actually say? | doc_read |
The worked proposal issued PROP-2026-0001 at EUR 4,500.00 with a timeline table and a signature block. Template filling substitutes on the joined paragraph text, so a placeholder Word split into three runs is still replaced.
The file is .cursor/mcp.json, and the key inside it is mcpServers.
| Scope | Path |
|---|---|
| This project only | <project>/.cursor/mcp.json |
| Every project | ~/.cursor/mcp.json |
{
"mcpServers": {
"docx": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@theluckystrike/mcp-docx"]
}
}
}
The Customize page shows the server and its tools once it has started.
The npm publish of @theluckystrike/mcp-docx is pending; until then use the .mcpb bundle or a clone and build from the latest release.
There is no hosted endpoint for this one yet. MCP Docx runs locally over stdio with the config above, which is also the only form in which it reads and writes files on your own disk. Three of the servers in this collection are served at https://mcp.zovo.one/mcp/<name> over MCP streamable HTTP: time-tracker, price-tracker and invoice.
The current field table marks `type` as required, with `stdio` for a locally launched server, so write it out rather than relying on command and args alone. The other documented restriction is that `envFile` is stdio-only: a remote HTTP or SSE server does not read it, and its headers belong in the config.
Free: unlimited create, convert and read; 3 proposals or contracts per calendar month; templates up to 10 placeholders. Pro is $19 once, verified offline.
<project>/.cursor/mcp.json applies to that project and can be committed, which suits a server tied to one client. ~/.cursor/mcp.json applies everywhere. Both are managed from the Customize page.
The current field table marks type as required, with stdio for a locally launched server, so include it. Pointing at a remote endpoint, envFile is documented as stdio-only and is not read.
Servers in Cursor's marketplace get an Add to Cursor button. The deeplink reference currently documents prompt, command and rule links only, so for MCP Docx pasting the config block above is the supported route.
MCP Docx in detail · The same server in Claude Code and VS Code · Every server in Cursor · Guides · Cursor docs