Query Markup Documents - On-device hybrid search for markdown files with BM25, vector search, and LLM reranking
MyPenny is installed from its publisher's own source and answers where it runs, so this marketplace is not in the path of a single call. There is no address here to send one to, and a panel that pretended otherwise would be showing you an answer we made up. Install it and call it from your own client — the Installation tab has the entry for each one.
What it does
Portable AI memory you own. Keep memories and notes across Claude, ChatGPT, and other AI tools.
Quickstart
# 1 — add it to Claude Code
claude mcp add --scope user --transport http mypenny-mcp https://app.mypenny.ai/mcp
# 2 — ask your agent for something these tools do
# penny_get_skill, penny_start_setup, penny_session_start and 4 more
MyPenny costs nothing on mcprush: there is no plan to choose here, no cap to set and nothing mcprush can bill you for.
Collected from a public index. Nobody has claimed this account, so nothing here was written by its author — claim it if it is yours.
Where are you running it?
Every route below installs the same thing and ends at the same approval screen. Nothing here runs on your machine and nothing runs on ours: this server answers at its publisher’s own address, and what you install is the connection straight to it.
This is a public server: it answers at its publisher’s own address and this marketplace is not in the path. Claude Code registers it in one command; --scope user makes it available in every project. The transport below is http, as the publisher's own manifest declares it.
claude mcp add --scope user --transport http mypenny-mcp https://app.mypenny.ai/mcpReconnect, or start a new session, and the tools appear in the model’s tool list.
One config entry pointing straight at the publisher’s own address — this marketplace is not in the path, and nothing from this listing executes on your machine.
7 tools, with what each one reads, writes and reaches shown before you agree — the same list on every route above. Read the tool surface.
Tool surface
What the model actually sees. Descriptions are diffed on every release — see version history.
Read the current Penny operating skill when session start reports a stale or missing copy. Default: SKILL.md; use a manifest file path when its cue applies. After user approval, view:install returns the exact archive and per-file hashes. Retain results before displaying bounded sections; do not transcribe installation bytes. Product guidance, separate from user-saved skills. Read-only; workspace-o
| Parameter | Type | Required | Notes |
|---|---|---|---|
| file | string | no | Exact manifest path, default SKILL.md; read view only. |
| view | string | no | Default read. Install returns an archive, not readable guidance. |
Setup in phases; omit phase to start, resume from meta.onboarding.phase. skipForGood opts out. Stage encrypted imports for dashboard review; status checks receipts. Only users save/cancel there. Imported counts are server-derived; finish cannot complete an active import.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| client | string | no | Actual host: claude-desktop, claude-code, codex, chatgpt or other. Also tailors paste guidance. |
| counts | object | no | Cumulative answers/featuresCreated. imported is ignored for ledger imports; only committed receipts count. |
| draftId | string | no | Returned collection ID; stage only. |
| expectedRevision | integer | no | Returned revision; stage only. |
| importAction | string | no | Stage needs importDraft, draftId, expectedRevision. Status has no content. No model approval. |
| importDraft | string | no | Strict JSON {notes,profiles}; returned schema. 10 notes, 4 replacements, 64 KiB UTF-8. No approval/source/selection. |
| phase | string | no | Phase to run; omit to start. |
| prevAccepted | boolean | no | Whether the user took the previous tour stop's offer. |
| skipForGood | boolean | no | The user said to skip setup for good. |
| stop | integer | no | Tour stop, with phase tour. |
Before calling, read the installed Penny skill and report installedSkillStatus (versioned, unversioned, or missing), installedSkillVersion and installedSkillSha256 from its metadata when versioned, and installedSkillSource. If this host cannot install skills, report missing/unsupported. Do not guess metadata from the plugin or catalog version. Call this ONCE at the very start of every conversation
| Parameter | Type | Required | Notes |
|---|---|---|---|
| installedSkillSha256 | string | no | Exact metadata.bundle_sha256; report absent metadata as unversioned. |
| installedSkillSource | string | no | Management: plugin manager for plugin copies; approved archive installation for standalone copies. |
| installedSkillStatus | string | no | Report after reading the installed skill. Legacy omission returns not_reported. |
| installedSkillVersion | string | no | Exact metadata.version from the installed skill; omit if missing or unversioned. |
| projectKey | string | no | Includes only the matching subconscious:<projectKey> block; other subconscious blocks are always excluded. |
| tz | string | no | IANA timezone for deriving today/overdue date boundaries (e.g. America/New_York). Defaults to UTC when omitted. |
Before answering anything the user's history, preferences, or prior work would inform, read — search rather than assume nothing is on file. Read from the user's memory. Choosing target — walk this ladder, first match wins: 1. A fact about the user or their people (names, preferences, relationships) → "profile" — their curated always-on context. Do NOT search notes for this. 2. Their to-dos or
| Parameter | Type | Required | Notes |
|---|---|---|---|
| areaId | string | no | target:"tasks" — filter by area, or organize="project" filter. |
| blockNames | array | no | profile: exact block names. |
| blocked | boolean | no | target:"tasks" — restrict to tasks with unmet dependsOn. |
| bucket | string | no | target:"tasks" — filter by schedule bucket. |
| confidence | object | no | notes: confidence range. |
| cursor | string | no | Project cursor; retain view/scope. |
| dateAxis | string | no | target:"notes" — which date timeRange filters ('created' = when written, 'valid' = when the fact holds). |
| depth | number | no | target:"note_links" — hops to expand (1 = direct links; 2-6 = bounded BFS). |
| dueRange | object | no | target:"tasks" — due-date window (ms epoch). |
| edgeTypes | array | no | target:"note_links" — only follow/return edges of these relationship types. |
| enabledOnly | boolean | no | target:"rhythms" view:"list" — only enabled rhythms. |
| eventKey | string | no | Projects interactions: actor event key; omit to page. |
| flags | object | no | notes: locked/pinned filter. |
| from | number | no | target:"tracker" entries / tracker_summary — start of window (ms epoch). |
| graphTraversal | boolean | no | search: opt into tag/link graph expansion (default false; measured recall loss). Use only for deliberate graph exploration. |
| ifRevision | string | no | profile: the revision from your last read; returns {unchanged:true} if nothing changed. |
| includeArchived | boolean | no | Include archived trackers, Projects, or task containers. |
| includeCompleted | boolean | no | target:"tasks" — include done/canceled tasks (default false). |
| includeRelations | boolean | no | tags/list: include parents/children/synonyms. |
| limit | number | no | Max results. Applies to search, notes, tracker entries, tasks, and rhythm runs. |
Save the moment something durable emerges — a decision, preference, plan, correction, a to-do, a measurement, or something you produced — mid-conversation and unprompted; when the call is close, save. Write something new to the user's memory. Choosing entityType — walk this ladder top to bottom, first match wins: 1. Durable fact about the user or their people (names, preferences, relationships)
| Parameter | Type | Required | Notes |
|---|---|---|---|
| actor | string | no | entityType:"task"/"area"/"project"/"heading" — who took the action (me|agent), written to the activity ledger. |
| agentNote | string | no | entityType:"tracker_entry" (single-entry form only) — short caption on this one data point (not searchable). |
| areaId | string | no | entityType:"project" (required) — the area the project belongs to. |
| blockName | string | no | entityType:"profile" (required) — the profile block name to upsert. |
| child | string | no | entityType:"tag_relation" (required) — the child tag. |
| content | string | no | entityType:"profile" (required) — the block content. |
| deadline | number | no | entityType:"task"/"project" — hard due date (ms epoch). |
| deliver | object | no | entityType:"skill" — REQUIRED once trigger is set (and on the legacy entityType:"rhythm"); omit on an on-demand skill. Where a scheduled run's output lands: { kind:'note', tags?:string[] } | { kind: |
| dependsOn | array | no | entityType:"task" — full replacement set of taskIds that must complete first. |
| description | string | no | entityType:"tracker" (required) — natural-language meaning. entityType:"skill" (required — every skill, on-demand or scheduled) or legacy "rhythm" — one-line description of what it is for. |
| entityType | string | yes | What to create. Walk the ladder in the tool description; first match wins. |
| entries | array | no | tracker_entry: batch up to 100 entries for one trackerId; each {payload,loggedAt?,agentNote?,noteIds?,source?,metadata?}. Mutually exclusive with top-level payload. Receipts report each saved/failed i |
| expectedRevision | number | no | Project edit revision from Brief; reconcile conflicts. |
| expectedUpdatedAt | number | no | Source version from the read. |
| goal | string | no | entityType:"rhythm" (required) — natural-language instruction: what the run should do. On entityType:"skill" this is instructions. |
| headingId | string | no | entityType:"task" — heading to file the task under. |
| instructions | string | no | entityType:"skill" (required) — the saved know-how: what to do when the skill is invoked, or when a connected agent picks it up after it comes due. Generalizes the rhythm "goal". |
| interaction | object | no | project_interaction: actor decision; read first, update with expectedUpdatedAt. |
| kind | string | no | entityType:"tracker" (required) — habit | metric | goal | log | status | custom. |
| linkNotes | array | no | entityType:"task" — note ids to link to this task. |
When the user corrects something on file, or a task, tracker, skill, or block needs to change, edit the existing item rather than writing a duplicate. Modify something that already exists in the user's memory, chosen by entityType — same taxonomy as penny_write (see its ladder). Notes take updates[] (patch or replace, up to 100); tasks require taskId (set status: "canceled" to remove a t
| Parameter | Type | Required | Notes |
|---|---|---|---|
| actor | string | no | entityType:"task"/"area"/"project"/"heading" — who took the action (me|agent), written to the activity ledger. |
| agentNote | string | no | — |
| archived | boolean | no | Area/project/tracker: archive; false reactivates. Tracker definitions retire only this way. |
| areaId | string | no | entityType:"project" — the area the project belongs to. |
| blockName | string | no | entityType:"profile" (required) — the profile block to upsert. |
| clearFields | array | no | entityType:"task" — names of optional fields to UNSET on the task. |
| content | string | no | entityType:"profile" (required) — the new block content. |
| deadline | number | no | entityType:"task"/"project" — hard due date (ms epoch). |
| deliver | object | no | entityType:"skill": required with trigger (also rhythm); omit for on-demand. See penny_write for shape. |
| dependsOn | array | no | entityType:"task" — full replacement set of taskIds that must complete first. |
| description | string | no | entityType:"skill": REQUIRED use-when description; also rhythm. tracker: meaning; log trackers must document payload shape. |
| enabled | boolean | no | entityType:"skill": false pauses due signals, true resumes; requires skillId. Penny does not run skills. |
| entityType | string | yes | Item type. |
| entryId | string | no | — |
| expectedRevision | number | no | Project edit revision from Brief; reconcile conflicts. |
| expectedUpdatedAt | number | no | Source version from the read. |
| fields | array | no | Restore selection: field names or step:<stepId>; fields/resourceIds required. |
| goal | string | no | entityType:"rhythm" (required) — what the run should do. On entityType:"skill" this is instructions. |
| historyId | string | no | restore_revision: Project history item or skill history item. Skill restoration prepares a preview; requires skillId and expectedUpdatedAt. |
| ids | array | no | op:"restore" — ids to un-trash (max 100). |
Move to Trash. Project: projectId + expectedRevision + operationId; penny_edit op:restore recovers. Repeat in_progress with the same operationId; report partial_recovery conflicts. Note/tracker_entry: ids (max100); skill/rhythm: one id; profile_block: ids are block names. Tag/link removal uses the identifiers below. Tasks are canceled via penny_edit; tracker definitions are archived, not deleted.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| entityType | string | yes | What to trash. |
| expectedRevision | number | no | — |
| ids | array | no | entityType:"note"/"tracker_entry" — ids to trash (max 100); "rhythm"/"skill" — exactly one id; "profile_block" — block names to trash. |
| noteIds | array | no | entityType:"tracker_note_link" (required) — the notes to unlink. |
| operationId | string | no | — |
| projectId | string | no | — |
| scope | string | no | Profile block scope; Project private overrides defaults, workspace requires workspaceId. |
| tagA | string | no | entityType:"tag_relation" (required) — one endpoint of the edge to remove. |
| tagB | string | no | entityType:"tag_relation" (required) — the other endpoint. |
| trackerEntryId | string | no | entityType:"tracker_note_link" (required) — the entry to detach notes from. |
- Every tool — any call limit is its publisher’s, not ours
- No card, and mcprush charges nothing for it
- Runs at its publisher’s own address — this marketplace is not in the path
- Nothing to cap, because mcprush bills nothing
What counts against your monthly calls
| Tool | Unit | Calls used | Out of the allowance |
|---|
Nothing here is billable: mcprush charges nothing to install MyPenny or to call it, at any volume.
Two independent axes, because powerful and malicious are different questions. The grade is threat only. The capability level is blast radius, and it is never a penalty on the grade — it is priced as one subtract-only term in the score, where you can see it.
This listing is an address its publisher runs, and you connect to it directly — this marketplace is not in the path. The scanner reads packages and public source, and an address is neither. So there is no grade — not a withheld one, an unmeasured one.
Release history
This is an address its publisher runs: which release it serves is theirs to choose, so there is nothing here to pin. The history below is for reading; the current release on file is 0.4.3.
No release note was published with this version.
One review per account, from a signed-in account that does not publish this listing. Nothing else is asked — you can say what you think before you install it. Publishers can reply once per review, and a review can be edited or deleted by whoever wrote it.
Any signed-in account that does not publish MyPenny can review it, once — before installing it or after. A review from an account that has installed it is marked as one.
Nobody has reviewed this listing. The rating on the card is the mean of the reviews written here and nothing else, so there is no rating until somebody writes the first — which takes a signed-in account that does not publish it, and nothing else.