Nineteen servers in this collection each do one job: time tracking, invoicing, quotes, expenses,
spreadsheets, prices, currency, a Word proposal, contract clauses, a resume, PDF merges, an .ics
calendar, a kanban board, image resize, bank CSV reconciliation, barcodes and SEPA payment QR codes,
and safe zip archives. Adding all nineteen to a client one at a time is nineteen config entries,
nineteen absolute paths, nineteen things to remember are running. office-suite is the
same nineteen servers behind one config entry: it starts each one as its own child process over stdio,
forwards every tool, resource and prompt call to whichever child owns the name, and merges their
license state into one pair of tools, license_status and license_activate.
Nothing is reimplemented. Each child keeps its own local JSON storage, exactly as it does standalone.
One command for Claude Code:
claude mcp add office-suite -- npx -y @theluckystrike/mcp-office-suite
Cursor, VS Code, Windsurf and Cline read the same shape of config. Add this block to the client's own MCP config file and restart it:
{
"mcpServers": {
"office-suite": {
"command": "npx",
"args": ["-y", "@theluckystrike/mcp-office-suite"]
}
}
}
Claude Desktop takes the same block in claude_desktop_config.json, or skips JSON
entirely: office-suite.mcpb is a one-click bundle attached to
the latest release, and
opening it shows an installation dialog. There is no account, no API key and no login step: every
child runs locally over stdio and writes to its own folder under
~/.local/share/mcp-servers/<name>/.
Read live off a built bundle: the nineteen children's own tools/list calls sum to 222
tool names. Eighteen of them are the same license_status / license_activate
pair repeated once per child, so the bundle collapses those 36 down to one pair, and 222 minus 36 is
exactly 186, the number a client actually sees on its own tools/list. Out of 186
names, exactly two needed disambiguating: invoice and docx both register a tool called
business_set, so the bundle exposes both, prefixed with the server they came from,
invoice_business_set and docx_business_set, and rewrites each child's own
reply so a message that said "run business_set" says the name you can actually call. Every other tool
keeps its bare name unchanged. Nineteen servers, and the bundle had to rename exactly one collision.
An audit ran the real Claude CLI against the built bundle with all 186 tools on an explicit allowlist, the CLI's own file and web tools denied, an empty working directory, and one running conversation. Six prompts, each written the way a person phrases a request, each needing two or more of the nineteen children in a single sentence. Quoted verbatim, with what happened:
INV-2026-0001, EUR 270.00 plus 23% VAT is EUR 332.10, due in 14 days from the
shared business profile. Scored 2 of 3 for the unnecessary question.zip_bundle_month, and it named the reason the quote PDF was missing from the
archive: rendering a quote to PDF is a Pro feature and none had been rendered. Scored 3 of 3, the
cleanest prompt of the six.Across the six prompts, 20 tool calls went to the bundle, and every single one landed in the correct child and the correct tool inside it: zero cross-child confusion, zero wrong-server picks. The "first tool called with no hint" reach was 5 of 6, 83%; the stricter "was the very first call the working tool" reading was 3 of 6, 50%, but all three misses were the same habit, reading an empty list of clients or contacts before writing to it, not a wrong pick. At 186 tools, 1.7x the 108 tools measured when this bundle held five children, tool selection did not get worse: 20 of 20 correct against 50 of 51 at the smaller count. The total score was 13 of 18 across six prompts, 226.5 seconds of wall clock.
Three defects came out of the same round and are already fixed in the shipped server: a URL handed
to a tool that expects a local file path used to be silently resolved against the server's own
working directory and fail with a path that never existed; find_meeting_slots now always
states the date range it searched and flags it by name when "this week" rolls into the following
Monday; and an empty client or entry list now says which tool creates one automatically from the
fact you already gave, instead of reading as a dead end that buys a confirmation question.
The bundle is not always the right size. Windsurf's Cascade agent caps out at 100 tools across every enabled server, so 186 tools in one entry does not fit at all; installing only the two or three single servers you actually use, at 9 to 16 tools each, leaves room for the rest of that budget. The same logic applies anywhere the count matters more than the config-entry count: a project that only ever needs the time tracker and the invoice server gets the same free tier and the same tools either way, with fewer license checks and no fourteen dormant sibling processes started on every session. Ten of the nineteen children went untouched by this round's six sentences entirely, which is the concrete argument for installing single servers when you know in advance which two or three you will actually use, and the bundle when you do not, or when the client charges per config entry rather than per tool.
Each child keeps its own free tier exactly as documented in its own guide; this bundle changes nothing about those limits, only how many config entries it takes to reach all of them. A single bundle Pro key, $39 once, lifetime, activates Pro on every child at once instead of buying each server's own $19 key separately; activation is all-or-nothing and prints a per-child OK/FAILED table so a bundle that is half Pro cannot look like a full success. Full detail on free versus Pro.
One MCP server, run over stdio, that starts all nineteen sibling servers as child processes and proxies their tools, resources and prompts under one connection. Each child stores its data exactly as it does standalone; the bundle adds no storage of its own.
186. The nineteen children's own tools/list calls sum to 222, but 18 of them are the same license_status/license_activate pair repeated once per child; the bundle collapses those 36 down to one pair, and 222 minus 36 is 186.
Exactly two out of 186: invoice and docx both register business_set, so the bundle exposes invoice_business_set and docx_business_set and rewrites each child's own replies to match. Every other tool keeps its bare name.
Not measured. A six-prompt audit needing two or more children per sentence put 20 of 20 tool calls in the correct child and the correct tool, against 50 of 51 at 108 tools with five children. Every remaining defect was a tool declining to say something it already knew, not a wrong pick.
When a client caps total tools, such as Windsurf's Cascade agent at 100, 186 tools does not fit in one entry at all. It is also the better choice when you already know you only need two or three of the nineteen: same free tier, fewer license checks, no dormant sibling processes started for children you never call.
All MCP servers and prices · All guides · Buy the bundle $39