Server data from the Official MCP Registry
Real .docx and .xlsx files from structured data, with automatic Hebrew/Arabic RTL.
About
Real .docx and .xlsx files from structured data, with automatic Hebrew/Arabic RTL.
Remote endpoints: streamable-http: https://docmcp.fly.dev/mcp
Security Report
docmcp is a well-architected MCP server for document generation with appropriate security controls. Authentication is properly enforced on the HTTP endpoint, secrets are stored in environment variables, and quota enforcement prevents abuse. One finding about API key logging in production warrants attention, but the overall code quality is high with good input validation and no malicious patterns detected. Supply chain analysis found 4 known vulnerabilities in dependencies (0 critical, 3 high severity).
6 files analyzed · 9 issues found
Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.
Permissions Required
This plugin requests these system permissions. Most are normal for its category.
How to Install & Connect
Available as Local & Remote
This plugin can run on your machine or connect to a hosted endpoint. during install.
Documentation
View on GitHubFrom the project's GitHub README.
docmcp
Live: https://docmcp.fly.dev — free key at POST /keys/free, 10 docs/month.
Paid: $10/mo for 100, $30/mo for 500. Quotas live in PLANS in src/store.ts.
A paid MCP server that turns structured data into real .docx and .xlsx files.
Agents are good at prose and bad at file formats — they emit Markdown and hope. This
gives them a tool that returns a Word or Excel file with actual headings, tables,
bold headers, frozen panes and RTL support.
Returns a short-lived download URL rather than a base64 blob: a 200KB docx inlined into a tool result costs the caller ~70k tokens.
Two modes, one codebase:
--stdio— local client (Claude Desktop / Code). No auth, no quota, no expiry; files are written toOUT_DIRand the tool returns the path.- default — hosted HTTP at
/mcp. API key required, quota metered, files served as URLs that expire after 24h. This is the product.
Local
npm install
Already registered in Claude Desktop as docmcp (output → ~/Documents/docmcp).
To register elsewhere:
{
"mcpServers": {
"docmcp": {
"command": "/usr/local/bin/node",
"args": ["<repo>/node_modules/tsx/dist/cli.mjs", "<repo>/src/index.ts", "--stdio"],
"env": { "DB_PATH": "<repo>/docmcp.db", "OUT_DIR": "<somewhere>" }
}
}
}
Absolute paths matter — the client launches with a minimal PATH.
Hosted
npm start # http://localhost:8787/mcp
curl -X POST localhost:8787/keys/free
{
"mcpServers": {
"docmcp": {
"type": "http",
"url": "https://your-host/mcp",
"headers": { "Authorization": "Bearer dk_..." }
}
}
}
Tools
| Tool | Does |
|---|---|
create_docx | headings, paragraphs, bullet/numbered lists, tables, page breaks, rtl for Hebrew/Arabic |
create_xlsx | multi-sheet, bold + frozen header, auto-filter, sized columns, numbers stay numbers |
usage | calls used / quota this month |
Env
| Var | Default | Notes |
|---|---|---|
PORT | 8787 | |
BASE_URL | http://localhost:$PORT | Must be the public URL — it goes in download links |
DB_PATH | docmcp.db | SQLite |
OUT_DIR | out | Generated files, swept hourly, 24h TTL |
STRIPE_SECRET_KEY | — | Omit to run without billing |
STRIPE_WEBHOOK_SECRET | — | For /stripe/webhook |
STRIPE_PRICE_STARTER, STRIPE_PRICE_PRO | — | Price IDs behind /buy/:plan |
Plans and quotas live in PLANS in src/store.ts.
Deploy
Any Docker host. A volume must be mounted at /data — the SQLite key database and
generated files live there, and a container filesystem is wiped on every redeploy.
Losing it means every paying customer's key stops working.
fly launch --no-deploy && fly volumes create data --size 1
fly secrets set BASE_URL=https://your-app.fly.dev STRIPE_SECRET_KEY=sk_live_...
fly deploy
BASE_URL must be the public URL — it is baked into every download link handed to a
client. Getting it wrong produces links to localhost.
Billing flow
/buy/starter → Stripe Checkout → webhook checkout.session.completed → key issued →
customer lands on /success and sees the key there. No email provider needed.
customer.subscription.deleted deactivates it. There are no user accounts: the key
is the account.
Test
npm test
Covers both generators (including a ragged table row and a / in a sheet name — both
things an LLM will send eventually), number preservation through an xlsx round-trip,
and that quota stops exactly at the plan limit.
Known gaps
- No PDF. Good PDF output needs headless Chrome or LibreOffice, which triples the deploy. Word and Excel are the actual gap — everyone already ships Markdown→PDF. Add it when a paying user asks.
- A lost key cannot be recovered. It is shown once on
/success. Add email delivery or a "resend by email" route when the first customer asks. - Files and DB are on local disk. Fine for one box with a volume; move to S3 and Postgres when you run two.
- Free keys are rate limited, not abuse-proof. One per IP per 24h plus a global
daily ceiling (
FREE_KEYS_PER_DAY, default 200). Rotating VPNs still defeats it — nothing stops that, and no free tier anywhere survives a determined attacker. The limits exist to bound the worst case, not to eliminate it. /adminneedsADMIN_TOKEN. Unset, the route 404s, so an unconfigured deploy never exposes it. Visit/admin?token=….
Reviews
No reviews yet
Be the first to review this server!
More Developer Tools MCP Servers
Fetch
Freeby Modelcontextprotocol · Developer Tools
Web content fetching and conversion for efficient LLM usage
Toleno
Freeby Toleno · Developer Tools
Toleno Network MCP Server — Manage your Toleno mining account with Claude AI using natural language.
mcp-creator-python
Freeby mcp-marketplace · Developer Tools
Create, build, and publish Python MCP servers to PyPI — conversationally.
MarkItDown
Freeby Microsoft · Content & Media
Convert files (PDF, Word, Excel, images, audio) to Markdown for LLM consumption
MCP Marketplace
Freeby mcp-marketplace · Developer Tools
Search and install MCP servers from inside your AI client.
FinAgent
Freeby mcp-marketplace · Finance
Free stock data and market news for any MCP-compatible AI assistant.
