keepsake-mcp
npm
v1.10.0
Published by an unidentified publisher — no publish provenance and no public repository, so the publisher could not be verified and the source cannot be independently located.
MCP server for Keepsake personal CRM — connect your AI agent to your contacts, tasks, notes, and more
The grade answers one question — how safe is this server for you to adopt — so it is computed in two auditable stages. Nothing below is an opinion or an LLM's guess; every line is a real term the deterministic engine applied, and the same input always yields the same number.
1. Threat score — 100 − 0 = 100. What the published surface and source actually contain:
The deterministic scan raised no scored threat in the surface it inspected — the threat score stayed at 100. Capability observations and advisory notes are recorded but never lower it.
2. Client adoption risk — 100 − 5 = 95. Three small, subtract-only factors that reflect your risk in adopting it — a clean scan proves less on a powerful, unverified or barely-inspectable package, so the grade says so plainly:
| Points | Adoption-risk factor |
|---|---|
| −3 | capability blast radius (moderate) — client exposure if the model is manipulated |
| −2 | publisher verification (unlinked) — no provenance/repo link, but the shipped source was fully read |
Capability observations and info notes are shown under Findings but never scored.
Open any row's finding below for the file, line and evidence behind a deduction.
Tool "unlink_tag" can write, overwrite or delete files (keyword "unlink" in tool name). Verify it is scoped to a safe directory.
Fix: Constrain file operations to an explicit, non-sensitive root; reject path traversal.
Location: tool unlink_tag
Tool "unlink_note_contact" can write, overwrite or delete files (keyword "unlink" in tool name). Verify it is scoped to a safe directory.
Fix: Constrain file operations to an explicit, non-sensitive root; reject path traversal.
Location: tool unlink_note_contact
Tool "unlink_entry_contact" can write, overwrite or delete files (keyword "unlink" in tool name). Verify it is scoped to a safe directory.
Fix: Constrain file operations to an explicit, non-sensitive root; reject path traversal.
Location: tool unlink_entry_contact
Tool "unlink_task_contact" can write, overwrite or delete files (keyword "unlink" in tool name). Verify it is scoped to a safe directory.
Fix: Constrain file operations to an explicit, non-sensitive root; reject path traversal.
Location: tool unlink_task_contact
Tool "unlink_task_note" can write, overwrite or delete files (keyword "unlink" in tool name). Verify it is scoped to a safe directory.
Fix: Constrain file operations to an explicit, non-sensitive root; reject path traversal.
Location: tool unlink_task_note
Tool "unlink_notes" can write, overwrite or delete files (keyword "unlink" in tool name). Verify it is scoped to a safe directory.
Fix: Constrain file operations to an explicit, non-sensitive root; reject path traversal.
Location: tool unlink_notes
Tool "unlink_note_date" can write, overwrite or delete files (keyword "unlink" in tool name). Verify it is scoped to a safe directory.
Fix: Constrain file operations to an explicit, non-sensitive root; reject path traversal.
Location: tool unlink_note_date
Tool "unlink_tag" can mutate/egress but declares no destructiveHint. Clients that don't default to spec-safe behavior may not prompt before running it.
Fix: Declare accurate annotations, and gate destructive tools on user confirmation regardless.
Location: tool unlink_tag
Tool "unlink_note_contact" can mutate/egress but declares no destructiveHint. Clients that don't default to spec-safe behavior may not prompt before running it.
Fix: Declare accurate annotations, and gate destructive tools on user confirmation regardless.
Location: tool unlink_note_contact
Tool "unlink_entry_contact" can mutate/egress but declares no destructiveHint. Clients that don't default to spec-safe behavior may not prompt before running it.
Fix: Declare accurate annotations, and gate destructive tools on user confirmation regardless.
Location: tool unlink_entry_contact
Tool "unlink_task_contact" can mutate/egress but declares no destructiveHint. Clients that don't default to spec-safe behavior may not prompt before running it.
Fix: Declare accurate annotations, and gate destructive tools on user confirmation regardless.
Location: tool unlink_task_contact
Tool "unlink_task_note" can mutate/egress but declares no destructiveHint. Clients that don't default to spec-safe behavior may not prompt before running it.
Fix: Declare accurate annotations, and gate destructive tools on user confirmation regardless.
Location: tool unlink_task_note
Tool "unlink_notes" can mutate/egress but declares no destructiveHint. Clients that don't default to spec-safe behavior may not prompt before running it.
Fix: Declare accurate annotations, and gate destructive tools on user confirmation regardless.
Location: tool unlink_notes
Tool "unlink_note_date" can mutate/egress but declares no destructiveHint. Clients that don't default to spec-safe behavior may not prompt before running it.
Fix: Declare accurate annotations, and gate destructive tools on user confirmation regardless.
Location: tool unlink_note_date
Each tool and what it can reach — statically extracted from the published source.
unlink_entry_contactwrites filesunlink_note_contactwrites filesunlink_note_datewrites filesunlink_noteswrites filesunlink_tagwrites filesunlink_task_contactwrites filesunlink_task_notewrites filesarchive_noteno sensitive capabilitycomplete_taskno sensitive capabilitycreate_companyno sensitive capabilitycreate_contactno sensitive capabilitycreate_day_blockno sensitive capabilitycreate_entryno sensitive capabilitycreate_noteno sensitive capabilitycreate_note_commentno sensitive capabilitycreate_tagno sensitive capabilitycreate_taskno sensitive capabilitycreate_task_headerno sensitive capabilitydelete_companyno sensitive capabilitydelete_contactno sensitive capabilitydelete_day_blockno sensitive capabilitydelete_entryno sensitive capabilitydelete_noteno sensitive capabilitydelete_note_commentno sensitive capabilitydelete_tagno sensitive capabilitydelete_taskno sensitive capabilitydelete_task_headerno sensitive capabilityget_agent_instructionsno sensitive capabilityget_changelogno sensitive capabilityget_companyno sensitive capabilityget_contactno sensitive capabilityget_contact_timelineno sensitive capabilityget_dayno sensitive capabilityget_noteno sensitive capabilityget_tagno sensitive capabilityget_tag_itemsno sensitive capabilityget_task_headerno sensitive capabilityget_tasks_overdueno sensitive capabilityget_tasks_todayno sensitive capabilitylink_entry_contactno sensitive capabilitylink_note_contactno sensitive capabilitylink_note_dateno sensitive capabilitylink_notesno sensitive capabilitylink_tagno sensitive capabilitylink_task_contactno sensitive capabilitylink_task_noteno sensitive capabilitylist_companiesno sensitive capabilitylist_contactsno sensitive capabilitylist_day_blocksno sensitive capabilitylist_daysno sensitive capabilitylist_entriesno sensitive capabilitylist_note_commentsno sensitive capabilitylist_notesno sensitive capabilitylist_tagsno sensitive capabilitylist_task_headersno sensitive capabilitylist_tasksno sensitive capabilitypin_noteno sensitive capabilityrestore_noteno sensitive capabilitysearchno sensitive capabilitysearch_companiesno sensitive capabilitysearch_contactsno sensitive capabilitysnooze_taskno sensitive capabilityuncomplete_taskno sensitive capabilityupdate_companyno sensitive capabilityupdate_contactno sensitive capabilityupdate_dayno sensitive capabilityupdate_day_blockno sensitive capabilityupdate_entryno sensitive capabilityupdate_noteno sensitive capabilityupdate_note_commentno sensitive capabilityupdate_tagno sensitive capabilityupdate_taskno sensitive capabilityupdate_task_headerno sensitive capabilityScan history per published version. The engine is deterministic — the same version always yields the same score, so a changed score means the package itself changed.
| Version | Score | Findings | Engine | Scanned |
|---|---|---|---|---|
v1.10.0 latest |
A 95/100 | 14 | 1.13.0 | 2026-09-07 |
v1.9.1 |
A 95/100 | 12 | 1.13.0 | 2026-09-06 |
v1.9.0 |
A 95/100 | 12 | 1.13.0 | 2026-09-01 |
v1.8.0 |
A 95/100 | 12 | 1.12.1 | 2026-08-22 |
v1.7.0 |
A 95/100 | 12 | 1.12.1 | 2026-08-12 |
v1.6.0 |
A 95/100 | 12 | 1.12.1 | 2026-08-10 |
v1.5.0 |
A 95/100 | 12 | 1.12.1 | 2026-08-03 |
v1.4.0 |
A 95/100 | 12 | 1.12.1 | 2026-08-01 |
v1.3.0 |
A 98/100 | 1 | 1.5.0 | 2026-07-22 |
Show this server's live Trust Score in your README, docs or website. The badge is served straight from the registry and updates automatically after every rescan — no API key needed. It links back to this page, so anyone who sees the grade can also read the findings behind it instead of taking a number on faith.
The score above is reproducible: the same package version always yields the same result. Run it locally or over the free API — no account, no LLM, fully deterministic.
npx mcptrustchecker scan keepsake-mcp --online
Free public tax reference data — GST/VAT, income, company and capital-gains tax rules for 50+ countries.
The approval gate for unattended UCP buying agents — a policy/approval MCP proxy in front of a merchant's UCP checkout endpoint.
Autotask PSA MCP server. Generic entity query/get/create/update across the full REST API plus convenience tools for tickets, companies, contacts, projects, tasks and time entries. AI-safe with readonly mode and destructive-action confirmation. stdio + opt
MCP server for B2C Commerce developer experience tools
Search, compare and contact real-world companies through a public MCP business directory.
Norwegian business register (Brønnøysundregistrene) as an MCP server — companies, roles, subunits and annual accounts, with the register's silent traps encoded as guards.