Straight answer first. The npm packages are not published. A probe of
registry.npmjs.org on 2026-09-07 returned no versions for
@theluckystrike/mcp-invoice, mcp-time-tracker, mcp-spreadsheet,
mcp-zip, mcp-pdf or mcp-quotes. That matches the npm status
section of the repository README: the publish token on the account is dead and re-authenticating it
needs a browser login by a human. The npx -y @theluckystrike/mcp-... lines printed
throughout the READMEs start working the moment that happens, and nothing else about them changes.
Three paths work today.
An .mcpb file is a zip holding the built server and its manifest. Claude Desktop opens
one with an install dialog and runs it on the Node runtime it ships with, so your own PATH, your nvm
version and your JSON escaping never enter into it.
invoice.mcpb.Release v0.20.0 carries 31 bundles, one per server plus the office-suite bundle. Across all releases
the assets have been downloaded 5,314 times, counted by summing
download_count over gh api repos/theluckystrike/mcp-servers/releases --paginate
on 2026-09-07.
git clone https://github.com/theluckystrike/mcp-servers.git
cd mcp-servers
npm install
npm run build -w packages/mcp-license -w servers/invoice
Swap servers/invoice for whichever you want, or list several after more
-w flags. The license package has to be in the list because every server links against
it. The result is servers/invoice/dist/index.js, which you point a client at:
claude mcp add --scope user invoice -- node /absolute/path/to/mcp-servers/servers/invoice/dist/index.js
For Claude Desktop, the same two strings go into command and args, both
absolute.
Every server also runs behind streamable HTTP. Open mcp/connect and it mints a free anonymous token and prints a ready URL per server. Paste one into any client that takes a remote server URL, which includes the Claude connector dialog and several IDE pickers. There is no header to set, because the token is already in the path.
The connect page states the free terms on its face: 600 calls an hour, the same free-tier server limits as a local install, and a data space kept for 30 days and refreshed for another 30 on every write. Reloading that page mints a new token and a new empty data space, so keep the URL if you want to keep the data. Anyone holding the URL holds the data space, so treat it as a secret.
| Situation | Path |
|---|---|
| Claude Desktop, no terminal | .mcpb bundle |
| Claude Code or Cursor, node already set up | clone and build |
| claude.ai in a browser, or a locked-down machine | hosted URL |
| Files on your own disk have to stay there | bundle or build, never the hosted URL |
That last row is the one that decides it for most people. The local servers make no network call at all for anything except live rates and price pages; the hosted ones necessarily see what you send them.
When someone runs npm login --auth-type=web once from the publishing account in a browser. It is listed as a human-gated step in the repository README alongside the Smithery CLI login. No date is promised here, because promising one would be inventing it.
Yes. The release workflow builds each server from the repository and packs dist plus the manifest. The version in the bundle name matches the git tag, so invoice.mcpb from v0.20.0 is servers/invoice at v0.20.0.
Yes, npm run build -w again for the servers you use. dist is build output, not tracked source. If a build fails after a pull, run npm install first, because a new server may have added a dependency.
You can, but they are separate data spaces. A local install writes under ~/.local/share/mcp-servers/, and the hosted token has its own store on the server side. An invoice created in one is not visible in the other, and there is no sync between them.
All MCP servers and prices · All guides · Buy the bundle $39