Reported issues for shelbymcp
Pod holds 22 of 37 problems reported by people outside the maintainer team. Issues filed by the project's own owners, members and collaborators are excluded entirely — a maintainer's release checklist is not a warning to a prospective user.
Back to shelbymcp.
Most discussed
Memory: repair/back-fill CLI + Forage hygiene pass for project_identifier
Goal
A one-shot shelbymcp repair-projects (dry-run default) and a recurring Forage hygiene pass that populates project_identifier on existing null/path rows and flags leaks. This is the validation harness for the whole fix — run it against the current messy DB and confirm get_brief/Essentials de-pollute.
Inference order (per thought, highest confidence first)
- existing
projectpath basename → known-repo map (also normalize the absolute-path values from the 2026-06-08 partial
Read the thread · 2026-06-09 · closed · 3 comments
HMC-04B: Mirror curated live briefs in TypeScript
Parent: Studio-Moser/Shelby-Docs#445
Goal
Mirror the canonical deterministic curated get_brief policy in Shelby-MCP.
Done when
TypeScript matches Swift fixtures and output semantics for scope, trust, consolidation/refutation/sensitivity, explicit roles, deduplication, token trimming, structured items, and diagnostics; contract tests pass.
Dependencies
HMC-00 and HMC-03. Coordinate with HMC-04A; neither twin merges without the other in flight.
Source of truth
- `docs/specs/2026-
Read the thread · 2026-07-17 · closed · 2 comments
Read tools don't auto-default scope to cwd project — search/list/get_brief leak all projects unless explicitly scoped
Capture auto-resolves project_identifier from cwd (#8), but READ tools (search_thoughts/list_thoughts/get_brief) only scope when project_identifier is explicitly passed — no cwd default. So an agent calling search/get_brief without the slug gets EVERY project's memory (contamination by default); the capture schema even says 'auto-resolved from cwd if omitted' — reads should match. Fix: server-layer default that resolves cwd→slug + applies it (with include_shared) when the caller omits
Read the thread · 2026-06-10 · closed · 2 comments
Memory: search_thoughts ignores project scope (list honors it) + re-tag read lag
Problem
Observed during audit: list_thoughts honors project = @project but search_thoughts (hybrid/vector) returns cross-project results even when scoped. Separately, re-tagging 16 thoughts' project reflected in only ~7 scoped reads — read-after-write / FTS-index lag.
Fix
- Apply the same project scope filter on the vector/hybrid path as the FTS/list path.
- Investigate the re-tag lag (FTS5 external-content rebuild / cache invalidation after
update_thoughtchangesproject).
Pla
Read the thread · 2026-06-09 · closed · 2 comments
Enforce caller-based trust assignment
Description
Restrict which callers can claim trusted and prevent external records from becoming trusted silently. Map caller identity to a maximum assignable trust level so trust_level functions as an enforced write boundary rather than an advisory label.
Triage-review verdict: Verified: trust_level is caller-supplied, defaults trusted — memory-poisoning bypass
Source
- Report:
Research/deep-dives/2026-08-10-nate-power-of-the-harness.md - Section: Action Items > Security
Read the thread · 2026-08-12 · open · 1 comment
Build a memory-quality eval harness
Description
Adopt MemoryBench’s MemScore triple and LongMemEval retrieval-only metrics, including Recall@k and NDCG@k, with a Shelby provider adapter. This is the prerequisite for every prompt optimizer and the only way to measure memory quality when model weights are frozen. Sources: https://github.com/supermemoryai/memorybench and https://arxiv.org/abs/2410.10813
Triage-review verdict: Memory-quality eval harness for Shelby-MCP — credibility for the memory-frameworks lane (absorbs ite
Read the thread · 2026-08-12 · closed · 1 comment
HMC-03: Harden MCP roots and project scope resolution
Parent: Studio-Moser/Shelby-Docs#445
Goal
Harden Shelby-MCP project resolution so the first scoped request awaits MCP roots and ambiguity fails safely.
Done when
Resolution follows explicit slug → roots → registry longest path → normalized git remote → shared slugify → unresolved; first-request races are covered; ambiguous reads are shared-only; ambiguous personal captures fail actionably; URI/symlink/worktree fixtures pass.
Dependencies
HMC-00. Can run in parallel with HMC-01/HMC-02
Read the thread · 2026-07-17 · closed · 1 comment
Add an MCP tool for creating registered projects
Problem
Shelby MCP memory operations require a registered project_id or project_identifier, but the MCP exposes no way to create that registration. Agents must leave the MCP workflow and use Shelby’s Projects UI, so setup automation and headless clients cannot complete project onboarding.
Desired behavior
Add a write-capable MCP tool that creates a standalone registered project and returns its canonical identity.
Acceptance criteria
- Accept a display name and optional canonica
Read the thread · 2026-08-23 · open · 0 comments
Most recent
MH-04: Bench experiment — does the injected brief earn its tokens?
What
On top of the MH-01 bench, build and run the experiment that measures whether the injected get_brief earns its tokens: do sessions actually reference injected brief items, and at what token cost — especially on the 4096-token on-device AFM path. Report the data plus a go/no-go recommendation on gating or scoping brief injection by session type.
Why
The deep-dive: "when the task fits in context, memory adds no capability, only cost." Shelby injects a brief every session — curren
Read the thread · 2026-08-18 · open · 0 comments
MH-02: Fold ledger signals into search_thoughts re-ranking
What
Fold decisions-ledger signals into search_thoughts re-ranking, or add an explicit "ranked" mode.
src/tools/search.ts (hybrid path ~line 206) ranks results purely by Reciprocal Rank Fusion (K=60) of FTS + vector rank. It never consults reinforcement_count, last_confirmed_at, or briefRole — the exact signals brief-policy.ts already uses to build the (validated) ranked brief.
Why
The deep-dive's core result: a ranked ledger beats vector/RRF similarity on long-horizon recall
Read the thread · 2026-08-18 · open · 0 comments
Reconciliation candidate width differs across engines (TS 20 vs Swift 5) — last parity gap after §§6b–6g
Flagged by the cross-engine parity re-review during the #54/#290 memory-contract sprint. Pre-existing (predates these PRs), tracked here so it isn't lost.
The asymmetry
Reconciliation considers a different number of FTS candidates per engine:
- MCP (TS): up to 20 FTS candidates
- macOS (Swift): up to 5
So a duplicate/reversal that FTS ranks low (6th–20th) can reconcile (noop / merge / supersede) in MCP but be treated as a brand-new thought in macOS — a silent behavioral
Read the thread · 2026-08-17 · open · 0 comments
Resolve migration-number sharing contract: MCP v12–v17 gap is a landmine iff DB files are shared with macOS
Surfaced by the cross-engine parity review during the #54/#290 memory-contract sprint.
The hazard
Both engines advance to migration v18 for the topic-canonicalization backfill, but MCP (TypeScript) has no migrations for v12–v17 — it jumps 11 → 18. macOS occupies v12–v17 (including v17's thought_edges.metadata, which claim-scoped refutation queries depend on).
This is only a problem if a single physical SQLite database file is ever opened by both engines. If so:
- A DB that M
Read the thread · 2026-08-17 · open · 0 comments
Bring the MCP memory engine into revised-ADR-0001 compliance
Goal
Bring the TypeScript memory engine into compliance with the revised ADR 0001 (six decisions, 2026-08-15). Parity sibling: the macOS compliance issue. Contract source: the ADR-revision issue.
Chunks (each = one decision, each independently testable)
- Correction supersedes on reversal —
src/db/reconciliation.tsreconcile()(:37),jaccard()(:31),NOOP_THRESHOLD(:55). A NOOP must now require high token-set Jaccard and high ordered-sequence similarity (normalized edi
Read the thread · 2026-08-15 · closed · 0 comments
ShelbyMCP skills: adopt fast-path / lazy-reference / parallel-subagent patterns
Description
Adopt Graphify's skill-authoring patterns in shelby-forage/shelby-onboard: (a) fast-path gate at top ('if memory exists and this is recall, search first'); (b) lean always-loaded body + lazily-loaded references/*.md; (c) parallel-subagent hard-rules (dispatch all in one message, use a writable subagent type not read-only Explore, on-disk file = success signal, chunk by locality, cache-check before dispatch). Independent.
Source
- Report: `Research/deep-dives/graphify-tec
Read the thread · 2026-08-14 · open · 0 comments
Design Shelby-MCP documentation for agent consumption
Local backlog ID: #185 Section: AI Memory Source: research Found: 2026-04-28
Item
Design Shelby-MCP documentation for agent consumption (Agentic Relations pattern) — when an AI agent generates a broken Shelby integration, the developer debugs silently or abandons. No support ticket. Traditional DevRel metrics miss this. Audit Shelby-MCP README, tool descriptions, and error messages for agent-parseable structure (explicit parameter types, example JSON, structured error codes)
Read the thread · 2026-08-14 · open · 0 comments
Add alwaysLoad: true to all Shelby-MCP setup examples and documentation
Local backlog ID: #207 Section: MCP Ecosystem Source: research Found: 2026-04-30
Item
Add alwaysLoad: true to all Shelby-MCP setup examples and documentation — Claude Code v2.1.121 ships alwaysLoad boolean on MCP server config entries. When true, all tools from that server skip tool-search deferral and are immediately available. Add to README setup snippets, Guides/agent-extension-surfaces.md Claude Code section, and all published config examples. Free discoverability
Read the thread · 2026-08-14 · open · 0 comments
Add MCP instructions field to Shelby-MCP initialize response
Local backlog ID: #171 Section: MCP Ecosystem Source: deep-dive:qmd Found: 2026-04-27
Item
Add MCP instructions field to Shelby-MCP initialize response — dynamic prompt listing projects, capability gaps ("X% of thoughts lack embeddings"), and search examples. qmd's buildInstructions() in src/mcp/server.ts is the reference (~60 lines). Gives the LLM immediate context about what's searchable BEFORE any tool cal
Read the thread · 2026-08-14 · open · 0 comments
Trust filtering or fencing on the memory read paths
Under epic Studio-Moser/Shelby-Docs#350. Sibling to #41, which covers the write boundary (who may claim trusted); this covers the read boundary (what happens to non-trusted content on the way back out). Both are needed — #41 alone leaves already-stored external content flowing unmarked.
Contract change: touches both codebases per ADR-0001. This body is the light spec.
Problem
get_brief is the only read path that respects trust_level, and every other one ignores it.
Verified
Read the thread · 2026-08-13 · closed · 0 comments
Secure the npm server defaults
Description
Default HTTP binding to 127.0.0.1, require explicit opt-in for 0.0.0.0, and refuse unauthenticated serving unless --insecure is passed. Gate npm publication on upgrading the MCP SDK affected by CVE-2026-0621; relevant locations include config.ts:111-113 and SECURITY.md.
Triage-review verdict: Verified: npm HTTP transport binds 0.0.0.0 by default + open SDK CVE — worst gap found (P0)
Source
- Report:
Research/deep-dives/2026-08-10-nate-power-of-the-harness.md - **S
Read the thread · 2026-08-12 · open · 0 comments
Protect retrieved thought content from injection
Description
Extend the existing summary injection screen to content returned by search_thoughts and get_thought, or wrap bodies in explicit untrusted-content delimiters. This applies the rule that retrieved data is evidence, never instructions, to the currently unscreened search path.
Triage-review verdict: Verified: get/search return raw thought content unscreened — injection path (principle #7)
Source
- Report:
Research/deep-dives/2026-08-10-nate-power-of-the-harness.md
Read the thread · 2026-08-12 · open · 0 comments
Scan inbound capture_thought content for injection
Description
Add normalization and regex scanning to inbound capture_thought content, stripping zero-width or invisible Unicode and flagging obvious injection markers by downgrading trust_level. This closes the remaining unguarded write path and addresses the attack class behind Goose’s patched goose review vulnerability; see https://github.com/aaif-goose/goose/releases.
Triage-review verdict: capture_thought injection scanner — last live remnant of the goose-refresh security action, che
Read the thread · 2026-08-12 · open · 0 comments
Ship an eve and AI SDK memory integration guide
Description
Show how to wire Shelby-MCP into an eve agent through AI SDK 6's MCP client, framing it as agent/connections/shelby or an MCP toolset. eve ships no persistent memory and directs users to bring their own, creating a Vercel-scale distribution opportunity; see https://github.com/vercel/eve and https://vercel.com/blog/ai-sdk-6.
Triage-review verdict: eve/AI-SDK integration guide — distribution play in the memory-frameworks lane, same pattern as MCP#35 (absorbs 154)
Absorbs:
Read the thread · 2026-08-12 · open · 0 comments
The remaining reports are on the project's issue tracker.