MCP servers by theluckystrike
Practical Model Context Protocol servers for people who work inside Claude, Cursor and other MCP clients. Every server runs locally over stdio, keeps all data on your machine, and has a genuinely useful free tier. Pro unlocks the limits for a one-time payment: $19 per server or $39 for the bundle, lifetime. Eight of the nine products are also reachable as a hosted remote endpoint with no install at all (see below).
| Server | Demo | What it does | Install |
|---|---|---|---|
| mcp-time-tracker | Track billable time from chat: timers, entries, reports, CSV, invoice summaries | npx -y @theluckystrike/mcp-time-tracker* | |
| mcp-price-tracker | Check and watch product prices on ordinary shop pages, history, target alerts | npx -y @theluckystrike/mcp-price-tracker* | |
| mcp-spreadsheet | ![]() | Read, query, add columns to and convert xlsx/csv files without corrupting them | npx -y @theluckystrike/mcp-spreadsheet* |
| mcp-invoice | ![]() | Create numbered invoices with tax lines and render professional PDFs | npx -y @theluckystrike/mcp-invoice* |
| mcp-expense-tracker | Log receipts and mileage in chat, split the VAT, rebill onto an invoice | npx -y @theluckystrike/mcp-expense-tracker* | |
| mcp-currency | ![]() | Real ECB exchange rates in chat: convert, compare pairs, rate history, cached offline | npx -y @theluckystrike/mcp-currency* |
| mcp-docx | ![]() | Write real Word documents from chat: proposals, contracts, letters and templates | npx -y @theluckystrike/mcp-docx* |
| mcp-timezone | ![]() | Convert times across cities, find meeting slots everyone can make, write the invite | npx -y @theluckystrike/mcp-timezone* |
| mcp-resume | ![]() | Tailor a resume to a posting and write a cover letter that cannot state a fact you did not give it | npx -y @theluckystrike/mcp-resume* |
| mcp-recurring | ![]() | Define a repeating invoice once, generate the ones actually due, idempotent by period | npx -y @theluckystrike/mcp-recurring* |
| mcp-clauses | ![]() | Assemble a contract from a searchable clause library, variables filled or flagged | npx -y @theluckystrike/mcp-clauses* |
| mcp-pdf | ![]() | Merge, split, stamp and read PDFs from chat: page ranges, watermarks, text extraction | npx -y @theluckystrike/mcp-pdf* |
| mcp-calendar | ![]() | Import a calendar export, list events with recurring series expanded, free/busy, bill a meeting | npx -y @theluckystrike/mcp-calendar* |
| mcp-kanban | ![]() | A local task board per project: columns, due dates, estimates, timer handoff, weekly review | npx -y @theluckystrike/mcp-kanban* |
| mcp-image | ![]() | Resize, compress, convert and thumbnail images from chat, with a real before/after byte count | npx -y @theluckystrike/mcp-image* |
| mcp-bank-statement | ![]() | Import a bank CSV, dedupe on re-import, categorise, summarise per currency, find subscriptions | npx -y @theluckystrike/mcp-bank-statement* |
| mcp-quotes | ![]() | Send a priced, VAT-correct quote from chat, then turn the yes into an invoice with one call | npx -y @theluckystrike/mcp-quotes* |
| mcp-barcode | ![]() | QR codes, WiFi and vCard codes, SEPA payment codes and EAN/UPC/Code 128 barcodes, drawn locally | npx -y @theluckystrike/mcp-barcode* |
| mcp-zip | ![]() | Pack a folder with a glob, look inside an archive somebody sent you, unpack it with bomb, traversal and symlink guards | npx -y @theluckystrike/mcp-zip* |
| mcp-billing-docs | ![]() | Credit notes and purchase orders on your invoices, with the VAT split across the rates the invoice used and no credit larger than what it billed | npx -y @theluckystrike/mcp-billing-docs* |
| mcp-deposits | ![]() | Security and retainer deposits held per client, applied to an invoice as a payment that adds to what was already paid rather than replacing it | npx -y @theluckystrike/mcp-deposits* |
| mcp-per-diem | ![]() | Statutory travel allowances on the Polish delegation regulation, the HMRC benchmark scale rates and the US GSA CONUS standard, with the partial-day ladder and every meal deduction shown | npx -y @theluckystrike/mcp-per-diem* |
| mcp-office-suite | ![]() | One install that proxies all eight servers above behind a single config line, 76 tools | npx -y @theluckystrike/mcp-office-suite* |
* npm publish is still pending for all nine packages (see npm status below). Until then, the fastest path is the
.mcpb one-click bundle from the
latest release -- double-click it in Claude
Desktop and it installs, no terminal needed. Or clone and build:
git clone https://github.com/theluckystrike/mcp-servers.git && cd mcp-servers, npm install,
npm run build -w packages/mcp-license -w servers/<name>. Each server's README has the full 60-second install
with all three client configs.
Buy Pro: https://mcp.zovo.one (keys verify offline with Ed25519; no phone-home).
Hosted endpoints (no install)
All eight servers are also live behind streamable HTTP, for clients that connect to a URL instead of spawning a local process:
- Base URL:
https://mcp.zovo.one/mcp--GETreturns an index of the endpoints; each server ishttps://mcp.zovo.one/mcp/<server>(time-tracker, price-tracker, spreadsheet, invoice, expense-tracker, currency, docx, timezone). - Auth:
Authorization: Bearer <token>.GET https://mcp.zovo.one/mcp/tokenmints a free anonymous token (anon_<32 hex>, 30-day KV TTL, refreshed on every request); a Pro license key (MCPL1....) works the same way and lifts the free-tier limits. spreadsheetruns in inline-data mode remotely, since a hosted worker has no disk to read a path from:sheet_load {name, csv}orsheet_load {name, xlsx_base64}loads the data into the request's virtual filesystem first, thensheet_query,sheet_stats,sheet_add_columnandsheet_convertwork on it as usual. The stdio install is still the answer for files that live on your own disk.currencyshares one ECB rate cache across every tenant instead of paying for it per token: the daily and historical rate files are hydrated read-only fromshared:ecb:daily/shared:ecb:historyand never written into any tenant's document, so the endpoint keeps no per-token state at all.docxaccepts an upload the same way spreadsheet accepts inline data (doc_uploadreplaces a file path), and every generated.docxcomes back as the real binary Word file behind a download link, not HTML.- Anything else a tool would normally write to a file (an invoice PDF, a CSV export, a converted spreadsheet,
an .ics invite) comes back as a download link,
https://mcp.zovo.one/mcp/download/<token>, valid for one hour; invoices render as an HTML document rather than a PDF on this path. - office-suite is not hosted: it is a stdio proxy that spawns the other eight as local child processes, which has no meaning on a remote worker. Install it locally to get all eight in one config line instead.
Registry names
The MCP registry listing for all nine of these servers uses word-rich names instead of the plain directory
name, for example time-tracker-timesheet-billable-hours instead of time-tracker, or
office-suite-time-invoice-expense-excel-price instead of office-suite: every extra token is a word the
server's own tool descriptions already use, and registry search matches on whole words, so a name built only
from time-tracker was invisible to a search for "timesheet" or "billable hours". The full list, read from
each server's server.mcpb.json:
| Server | Registry name |
|---|---|
| time-tracker | io.github.theluckystrike/time-tracker-timesheet-billable-hours |
| price-tracker | io.github.theluckystrike/price-tracker-drop-alert-watch |
| spreadsheet | io.github.theluckystrike/excel-spreadsheet-xlsx-csv |
| invoice | io.github.theluckystrike/invoice-pdf-billing-generator |
| expense-tracker | io.github.theluckystrike/expense-tracker-receipts-mileage |
| currency | io.github.theluckystrike/currency-converter-ecb-rates-daily-keyless |
| docx | io.github.theluckystrike/docx-document-generator-proposal-contract-markdown |
| timezone | io.github.theluckystrike/timezone-world-clock-meeting-slots-overlap-ics |
| office-suite | io.github.theluckystrike/office-suite-time-invoice-expense-excel-price |
The old short names are deprecated on the registry; npm package names, directory names and checkout URLs are unchanged.
Why these nine
The median MCP server on the public registry gets installed and never called again. Looking at what actually gets used, two things separate the servers people keep: a config snippet that works on the first try, and a visible demo of the tool actually answering a real prompt before anyone installs it. Both of those are cheap to provide and most servers skip them -- READMEs bury the config three scroll-lengths down, or show no output at all. These servers were picked because they replace a task people already do in a spreadsheet, a SaaS dashboard or a browser tab (tracking time, watching a price, editing a sheet, cutting an invoice, logging a receipt, converting a currency, drafting a Word document, finding a meeting slot across time zones) with one that runs entirely on-device: no account, no telemetry, no server-side data at rest (the hosted endpoints are the one exception, and they say plainly what they keep and for how long). office-suite exists because the most-used server in this category, measured across the registry, is an aggregator: one install beats eight.
Guides
- Track time in Claude Code
- Invoice PDF from chat
- Read Excel in Cursor
- Price drop alerts with Claude
- Expense tracking in Claude
- MCP server free vs pro
- Currency conversion, ECB rates, in Claude
- Word documents and proposals from chat
- Meeting slots across time zones
Also live: 54 client-by-server setup pages (six clients: Claude Desktop, Claude Code, Cursor, VS Code, Windsurf, Cline, times nine servers) and 8 head-to-head compare pages against named competitor MCP servers, sourced from each competitor's own README, GitHub metadata or npm/registry record.
Validation
Before anything ships: 321 unit tests across the nine servers and the shared license package (protocol smoke
tests over real stdio, plus adversarial cases: bad input, oversized strings, path traversal, concurrent
writers, zero-byte files), a 184-check live validation database run against the built servers and the hosted
worker (data/validation.json, run 50), seven rounds of user-value testing through a real MCP client (one
prompt per conversation, not a unit test; round 7 is cross-server, chaining calls across the whole
office-suite bundle), and four rounds of independent Codex model review of the core build plus two more of the
remote hosted worker. Details: docs/AUDIT.md, docs/CURRENCY_AUDIT.md,
docs/DOCX_AUDIT.md, docs/EXPENSE_AUDIT.md,
docs/TIMEZONE_AUDIT.md, docs/USER_VALUE.md through
docs/USER_VALUE_R7.md, docs/CODEX_REVIEW.md through
docs/CODEX_REVIEW_V4.md, docs/CODEX_REVIEW_REMOTE.md,
docs/CODEX_REVIEW_REMOTE_V2.md, docs/REMOTE_RESULT.md.
npm status
None of the nine packages are on npm yet (the account's publish token is dead; see
docs/NPM_AUTH_RESULT.md). The working install paths today are the .mcpb one-click
bundle from the latest release, a clone and
build from source, or the hosted endpoints above -- no local install at all. The npx lines in this README and
in each server's own README start working the moment npm publish succeeds; nothing else about them changes.
Human-gated surfaces
A few distribution surfaces cannot be finished by an agent and are waiting on one human step:
- npm -- publish token is dead; needs
npm login --auth-type=webonce, in a browser, from this account. - Smithery -- CLI and REST are otherwise fully scriptable with a bearer key, but getting that key needs one
browser login:
npx -y @smithery/cli auth login, then open the printedsmithery.ai/auth/cli?s=<session>URL.smithery.yamlis already validated against the CLI schema.
Everything else in this repository -- registry, GitHub, .mcpb release, billing, hosted endpoints, guides,
setup pages, compare pages, Docker MCP catalog PR, Cline marketplace issues, mcpservers.org and mcpmarket.com
submissions -- was completed without a human at the keyboard.
Repository layout: servers/* one package per server, packages/mcp-license shared licensing, billing/ Cloudflare Worker
that sells keys and serves the marketing site (guides, setup pages, compare pages) through Stripe Checkout,
remote/ Cloudflare Worker serving the hosted endpoints, dashboard/ status page, docs/ runbooks.
Built by theluckystrike. https://github.com/theluckystrike Support: support@zovo.one



















