Atlas / MCP servers / theluckystrike / mcp-servers

mcp-serversBLOCK

mcp/theluckystrike/mcp-servers

42 local-first MCP servers for back-office work: invoices, VAT, PDFs, spreadsheets, time tracking, expenses. Free tier, one-time Pro (no subscription, no account). Hosted, no-install endpoints: https://mcp.zovo.one

Verdict
BLOCK
Grade
F
Trust score
52 /100
Exposed tools
200 263r · 119w · 38d
Transport
stdio · streamable-http
License
MIT
Stars
1
01

Overview

From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.

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.

46 servers plus the office-suite aggregator, 45 of them also reachable as a hosted endpoint with no install.

No install? Use any server instantly as a hosted endpoint: https://mcp.zovo.one/mcp/ — or browse the catalog at mcp.zovo.one.

That is the invoice server answering a real prompt: a client, some hours, a VAT rate, and a numbered PDF at the end. Every server in the table below has a demo like it.

Two ways to run any of these, both working today.

  1. One click. Download the server's .mcpb bundle from the latest release and open it in Claude Desktop. No terminal, no config file.
  2. No install at all. Point a client at https://mcp.zovo.one/mcp/. GET https://mcp.zovo.one/mcp/connect mints a free token and prints a ready URL for each server.

A third way is coming and does not work yet: the npm packages are unpublished, so npx -y @theluckystrike/mcp- returns 404 today. The commands below are written for the day it is published; use one of the two paths above until then.

Read from source at commit a80211e6e4dbOBSERVED · 2026-10-12
Advertisement
02

Connect

Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control. Replace the environment placeholders with a token scoped to the least it needs.

claude-code
claude mcp add mcp-fleet-telegram --env BILLING_MONITOR_STATUS_TOKEN=${BILLING_MONITOR_STATUS_TOKEN} --env BS_TEST_PRO_KEY=${BS_TEST_PRO_KEY} --env CF_API_TOKEN=${CF_API_TOKEN} --env CLOUDFLARE_API_TOKEN=${CLOUDFLARE_API_TOKEN} -- npx -y [email protected]
claude-desktop
{
  "mcpServers": {
    "mcp-fleet-telegram": {
      "command": "npx",
      "args": [
        "-y",
        "[email protected]"
      ],
      "env": {
        "BILLING_MONITOR_STATUS_TOKEN": "${BILLING_MONITOR_STATUS_TOKEN}",
        "BS_TEST_PRO_KEY": "${BS_TEST_PRO_KEY}",
        "CF_API_TOKEN": "${CF_API_TOKEN}",
        "CLOUDFLARE_API_TOKEN": "${CLOUDFLARE_API_TOKEN}"
      }
    }
  }
}
03

Exposed tools (200)

263 read · 119 write · 38 destructive. Blast radius: 38 tools can delete or overwrite — an agent that can be talked into calling a tool can be talked into calling this one.

ToolRiskDescription
accounts_listread
aging_summaryread
agreement_checklistread
agreement_createwrite
agreement_getread
agreement_listread
agreement_renderread
agreement_update_statuswrite
asset_addwrite
asset_deletedestructive
asset_disposeread
asset_historyread
asset_journalread
asset_listread
asset_removedestructive
asset_reportread
asset_schedulewrite
bank_delete_uploaddestructive
bank_filesread
bank_uploadwrite
barcode_batchread
barcode_createwrite
billing_docs_reportread
boardread
business_daysread
business_setwrite
cache_statusread
calendars_listread
carton_addwrite
carton_reportread
catalogue_reportread
category_rulesread
change_order_add_linewrite
change_order_createwrite
change_order_deletedestructive
change_order_documentwrite
change_order_getwrite
change_order_invoice_payloadwrite
change_order_listwrite
change_order_statuswrite
chase_todayread
checklist_createwrite
checklist_deletedestructive
checklist_item_addwrite
checklist_item_removedestructive
checklist_listread
checklist_showread
clause_addwrite
clause_deletedestructive
clause_exportread
clause_getread
clause_importwrite
clause_libraryread
clause_listread
clause_searchread
clause_updatewrite
client_addwrite
client_deletedestructive
client_listread
code_listread
columns_setwrite
completion_report_pdfread
completion_report_textread
conflictsread
contacts_listread
contacts_setwrite
contract_assembleread
contract_createwrite
contract_valueread
convertread
convert_manyread
convert_timeread
cover_letter_createwrite
credit_note_createwrite
credit_note_deletedestructive
credit_note_finalizeread
credit_note_getread
credit_note_listread
credit_note_pdfread
credit_note_renderread
credit_note_summaryread
credit_note_textread
credit_note_updatewrite
currencies_listread
deliverable_addwrite
deliverable_deletedestructive
deliverable_statusread
delivery_schedule_createwrite
delivery_schedule_deletedestructive
delivery_schedule_documentwrite
delivery_schedule_getwrite
delivery_schedule_listwrite
deposit_applywrite
deposit_balanceread
deposit_deletedestructive
deposit_listread
deposit_recordread
deposit_refundread
deposit_statement_pdfread
deposit_statement_textread
deposits_reportread
doc_createwrite
doc_delete_uploaddestructive
doc_filesread
doc_fill_templateread
doc_from_markdownread
doc_readread
doc_to_htmlread
doc_uploadwrite
dst_changesread
dunning_textread
entry_addwrite
entry_deletedestructive
entry_editwrite
entry_listread
entry_logread
entry_mark_billedread
event_exportread
event_to_time_entryread
events_listread
events_searchread
expense_addwrite
expense_deletedestructive
expense_exportread
expense_listread
expense_mark_rebilledread
expense_settingsread
expense_summaryread
expense_to_invoiceread
expense_updatewrite
export_csvread
find_meeting_slotsread
float_openread
float_reportread
forecastread
free_busyread
fx_rates_forread
grn_addwrite
grn_closeread
grn_discrepancyread
grn_export_csvread
grn_getread
grn_line_addwrite
grn_listread
grn_status_reportread
ics_createwrite
ics_forgetread
ics_importwrite
image_batch_resizeread
image_compressread
image_convertread
image_cropread
image_delete_uploaddestructive
image_dominant_colorsread
image_filesread
image_inforead
image_resizeread
image_strip_metadataread
image_thumbnailsread
image_uploadwrite
image_watermarkread
invoice_createwrite
invoice_deletedestructive
invoice_from_hoursread
invoice_generate_dueread
invoice_getread
invoice_listread
invoice_mark_paidread
invoice_payment_qrread
invoice_pdfread
invoice_registerread
invoice_statusread
invoice_summaryread
job_card_createwrite
job_card_deletedestructive
job_card_getread
job_card_listread
job_card_log_laborread
job_card_log_materialread
job_card_printread
job_card_summaryread
job_card_update_statuswrite
late_reportread
leave_approveread
leave_balanceread
leave_cancelread
leave_employee_addwrite
leave_export_icsread
leave_importwrite
leave_listread
leave_out_rangeread
leave_rejectread
leave_requestread
ledger_buildread
ledger_export_csvread
ledger_linesread
ledger_reportread
letter_renderread
letter_sentread
license_activateread
04

Trust audit

BLOCKgrade F · trust 52/100 Do not install this without reading the findings. The audit found something that could harm you or your machine.

LayerWhat it checksResult
L0Provenance & inventoryWARN
L1Static analysis of the codeFAIL
L2Instruction surface (what it tells the agent)FAIL
L3Class-specific surfaceWARN
L4Behavioural (sandbox)SKIPPED

What the source does

Filesystem
declared (7 observation(s))
Network
declared (10 observation(s))
Shell
declared (4 observation(s))
Dependencies
not all pinned
Secrets in source
none-found

Findings (25)

HIGHFilesystem / path · fs.credential_store · CWE-22, CWE-59
billing/src/content.js:4890
<li><strong>Dot-dot entries.</strong> The classic traversal: <code>../../.ssh/authorized_keys</code>
Why it matters. touches a credential store
HIGHFilesystem / path · fs.credential_store · CWE-22, CWE-59
scripts/demo/drive.mjs:734
{ name: "../../.ssh/authorized_keys", data: "ssh-rsa AAAA...\n" },
Why it matters. touches a credential store
HIGHPrompt injection · prompt.hide_from_user · CWE-94, CWE-1427
servers/pdf/llms-install.md:113
- Encrypted PDFs are refused by every writing tool. Do not retry; tell the user to remove the protection in a reader and pass the new file.
Why it matters. asks the agent to act without the user's knowledge
MEDIUMInventory / provenance · inv.binary · CWE-1104
remote/src/vendor/petty-cash/float.ts
float.ts
Why it matters. a compiled or binary member cannot be reviewed from source
Fix. ship source, or explain the binary in the README
MEDIUMInventory / provenance · inv.binary · CWE-1104
servers/petty-cash/src/float.ts
float.ts
Why it matters. a compiled or binary member cannot be reviewed from source
Fix. ship source, or explain the binary in the README
MEDIUMInformation disclosure · disclose.log_secret · CWE-209, CWE-532
scripts/registry-publish-all.mjs:39
console.log(`  logged in, token good for ${left}s`);
MEDIUMInformation disclosure · disclose.log_secret · CWE-209, CWE-532
scripts/registry-publish-all.mjs:76
if (secondsLeft() < 60) { console.log(`  [${i}] token low, re-login`); login(); }
MEDIUMNetwork egress · net.raw_ip · CWE-200, CWE-319
billing/src/content.js:3344
<li><strong>"Import this bank CSV http://127.0.0.1:8794/bank.csv and tell me which subscriptions are
MEDIUMNetwork egress · net.raw_ip · CWE-200, CWE-319
billing/src/content.js:3355
<li><strong>"Resize http://127.0.0.1:8794/logo.png to 512 px and put it on a PAID stamp on invoice
MEDIUMObfuscation / stealth · obf.zero_width · CWE-506, CWE-94
remote/src/vendor/calendar/ics.ts:61
const raw = text.replace(/^/, "").split(/\r\n|\r|\n/);
MEDIUMObfuscation / stealth · obf.zero_width · CWE-506, CWE-94
servers/calendar/src/ics.ts:61
const raw = text.replace(/^/, "").split(/\r\n|\r|\n/);
MEDIUMFilesystem / path · mcp.destructive_tools · CWE-22, CWE-59
asset_delete, asset_remove, bank_delete_upload, change_order_delete, checklist_delete, checklist_item_remove, clause_delete, client_delete, credit_note_delete, deliverable_delete, delivery_schedule_de
Why it matters. 38 tool(s) can delete or overwrite
Fix. prefer a read-only mode or scoped tokens; the page states the blast radius
LOWInventory / provenance · inv.binary · CWE-1104
remote/fixtures/sample-archive.zip
sample-archive.zip
Why it matters. a compiled or binary member cannot be reviewed from source
Fix. ship source, or explain the binary in the README
LOWInventory / provenance · inv.binary · CWE-1104
remote/fixtures/sample-template.docx
sample-template.docx
Why it matters. a compiled or binary member cannot be reviewed from source
Fix. ship source, or explain the binary in the README
LOWCode injection · code.eval_exec · CWE-78, CWE-94, CWE-95
remote/test/binding.test.mjs:30
const decideBinding = new Function(`${body}; return decideBinding;`)();
Why it matters. evaluates text as code
Fix. remove; use a parser or a dispatch table
LOWCode injection · code.eval_exec · CWE-78, CWE-94, CWE-95
remote/test/connect-mint.test.mjs:35
const isBrowserNavigation = new Function(`${uaLine}\n${fn}; return isBrowserNavigation;`)();
Why it matters. evaluates text as code
Fix. remove; use a parser or a dispatch table
LOWCode injection · code.eval_exec · CWE-78, CWE-94, CWE-95
remote/test/oauth.test.mjs:25
const oauthProtectedResourceDoc = new Function(`${OAUTH_CONSTS}\n${extract("oauthProtectedResourceDoc", "oauthProtectedResourceDoc(")}; return oauthProtectedResourceDoc;`)();
Why it matters. evaluates text as code
Fix. remove; use a parser or a dispatch table
LOWCode injection · code.eval_exec · CWE-78, CWE-94, CWE-95
remote/test/oauth.test.mjs:26
const oauthAuthorizationServerDoc = new Function(`${OAUTH_CONSTS}\n${extract("oauthAuthorizationServerDoc", "oauthAuthorizationServerDoc(")}; return oauthAuthorizationServerDoc;`)();
Why it matters. evaluates text as code
Fix. remove; use a parser or a dispatch table
LOWCode injection · code.eval_exec · CWE-78, CWE-94, CWE-95
remote/test/oauth.test.mjs:32
const oauthClientId = new Function(
Why it matters. evaluates text as code
Fix. remove; use a parser or a dispatch table
LOWInsecure crypto · crypto.weak_hash · CWE-327, CWE-338
data/user_value_r15.json:115
"id": "rc4",
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
billing/src/content.js:1952
with a <code>../../</code> in an entry name. The MCP Zip server packs, lists and unpacks .zip files in the
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
billing/src/content.js:1978
<code>../../escaped.txt</code>, <code>/etc/cron.d/pwn</code> or <code>C:\\Windows\\evil.dll</code>. Each of
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
billing/src/content.js:4890
<li><strong>Dot-dot entries.</strong> The classic traversal: <code>../../.ssh/authorized_keys</code>
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
billing/src/pages.js:2
export const PAGES = {"time-tracker":{"title":"MCP Time Tracking Server — Free, No Install","tagline":"Track billable time without leaving the chat.","description":"Track billable time from Claude wit
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
billing/test/checkout-r1.test.mjs:569
await worker.fetch(buy("/buy/gone?src=" + encodeURIComponent("../../etc/passwd")), env2, { waitUntil: (pr) => run2.push(pr) });

Gates applied: instruction_override, no_behavioural_pass.

Audited 2026-10-12 · audit v0.4.1 · source sha a80211e6e4dbfull audit observations/trust-audit/mcp-server/theluckystrike__mcp-servers.json · Report an issue / request a re-scan
05

Audit history

Every audit this server has had. A grade with a past is a grade somebody is still checking.

DateSourceVerdictGradeScoreChange
2026-10-12a80211e6e4dbBLOCKF52first audit
06

Questions

What is the mcp-servers MCP server?

42 local-first MCP servers for back-office work: invoices, VAT, PDFs, spreadsheets, time tracking, expenses. Free tier, one-time Pro (no subscription, no account). Hosted, no-install endpoints: https://mcp.zovo.one

What tools does mcp-servers expose?

200 in total: 263 read-only, 119 that write, and 38 that can delete or overwrite (asset_delete, asset_remove, bank_delete_upload, change_order_delete, checklist_delete). Every one is listed on this page with its risk.

Is mcp-servers safe to connect to an agent?

No — not without reading the findings first. The audit graded it F (52/100) and found 3 critical or high issues in the source. Each one is listed on this page with the file and line it is on. Separately from the audit: 38 of its tools can destroy data, so scope the token you give it to what you actually need.

What credentials does mcp-servers need?

It reads BILLING_MONITOR_STATUS_TOKEN, BS_TEST_PRO_KEY, CF_API_TOKEN, CLOUDFLARE_API_TOKEN, CONC_KEY, GSC_KEY, MCP_LICENSE_KEY, STRIPE_SECRET_KEY and TOKEN_DEMAND_DELAY_MS from the environment. Give it a token scoped to the least it needs — an agent that can be talked into calling a tool can be talked into calling it with your credentials.

How does mcp-servers run?

It speaks stdio and streamable-http, so it runs as a local process your client starts. It is published on npm as mcp-fleet-telegram at 1.0.0.

How current is this page?

The grade is for one exact copy of the source (a80211e6e4db), read on 2026-10-12. The repository is watched and re-audited when it changes.

Advertisement