Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
bobmatnyc avatar

Trusty Search

  • 5 installs
  • 145 repo stars
  • Updated July 27, 2026
  • bobmatnyc/claude-mpm

trusty-search is a skill that documents a hybrid code-search system fusing BM25, vector, and knowledge-graph signals with RRF, served by a single daemon over named per-project indexes.

About

This skill documents trusty-search, a hybrid code-search system that fuses BM25 lexical, HNSW vector, and knowledge-graph signals with Reciprocal Rank Fusion. A single daemon serves multiple named per-project indexes, exposed via MCP tools like search_code (with a query_type hint) and chat for cited Q&A. A developer or agent uses it to locate code, explore concepts, and find tech debt across a codebase.

  • Hybrid code search combining BM25, vector (HNSW), and knowledge graph via RRF fusion
  • Single daemon serves multiple named per-project indexes
  • search_code with query_type routing plus chat for cited Q&A over the index

Trusty Search by the numbers

  • 5 all-time installs (skills.sh)
  • Ranked #13,065 of 16,546 AI & Agent Building skills by installs in the Skillselion catalog
  • Data as of Aug 2, 2026 (Skillselion catalog sync)
At a glance

trusty-search capabilities & compatibility

Capabilities
trusty memory
Use cases
research · web search
Runs
Runs locally
Pricing
Free
From the docs

What trusty-search says it does

Hybrid semantic + lexical + relational code search. Replaces `mcp__mcp-vector-search__*` tools.
SKILL.md
Fused with **Reciprocal Rank Fusion (RRF)**
SKILL.md
**Single daemon** at `http://127.0.0.1:7878` serves all projects.
SKILL.md
npx skills add https://github.com/bobmatnyc/claude-mpm --skill trusty-search

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs5
repo stars145
Last updatedJuly 27, 2026
Repositorybobmatnyc/claude-mpm

What it does

Locate code and answer questions over a codebase with hybrid BM25, vector, and KG search.

Who is it for?

Locating code definitions and usages, exploring how a system works, and finding tech debt across a codebase.

Skip if: Persistent memory (use trusty-memory), edits (use Edit), or shell-level file listing.

When should I use this skill?

When you need to find where code is defined or used, explore a concept, or find TODOs across a codebase.

What you get

Ranked code matches and cited answers via hybrid lexical, vector, and relational search.

By the numbers

  • Three fused signals: BM25, HNSW vector, and knowledge graph
  • Four query_type hints: Definition, Usage, Conceptual, BugDebt
  • Daemon at http://127.0.0.1:7878

Files

SKILL.mdMarkdownGitHub ↗

trusty-search

Hybrid semantic + lexical + relational code search. Replaces mcp__mcp-vector-search__* tools.

When to Use

  • Locate code: "Where is X defined?" / "How is X used?"
  • Explore concepts: "How does the migration system work?"
  • Find tech debt: "Where are the TODOs / FIXMEs?"
  • Q&A over codebase: Use chat for synthesized answers with citations.

Do NOT use for: persistent memory (use trusty-memory), edits (use Edit), or shell-level file listing.

Architecture

  • Single daemon at http://127.0.0.1:7878 serves all projects.
  • Named indexes — one per project: claude-mpm, cto, duetto, open-mpm, rust-dre, etc.
  • Hybrid retrieval:
  • BM25 — lexical/keyword precision
  • HNSW — vector semantic similarity
  • KG — knowledge graph relational signals
  • Fused with Reciprocal Rank Fusion (RRF)

Query Type Routing

search_code accepts a query_type hint that biases the fusion weights. Always specify it.

query_typeUse ForBias
Definition"Where is run_pending_migrations defined?"BM25 precision
Usage"How is the planner agent invoked?"Vector similarity
Conceptual"How does the migration system work?"Balanced BM25+vector+KG
BugDebt"Show me the TODOs / hacks"Keyword match

If unspecified, the daemon auto-routes — but explicit is better.

Tool Reference

Search

`search_code` — primary tool.

mcp__trusty-search__search_code(
  query="migration registry",
  index="claude-mpm",
  query_type="Definition",
  limit=10
)

`chat` — LLM-powered Q&A over the index with citations.

mcp__trusty-search__chat(
  index="claude-mpm",
  question="How does the hook dispatcher route PreToolUse events?"
)

Index Management

mcp__trusty-search__list_indexes()
mcp__trusty-search__create_index(name="new-project", root="/abs/path")
mcp__trusty-search__delete_index(name="old-project")
mcp__trusty-search__index_status(index="claude-mpm")
mcp__trusty-search__reindex(index="claude-mpm")
mcp__trusty-search__index_file(index="claude-mpm", path="src/foo.py")
mcp__trusty-search__remove_file(index="claude-mpm", path="src/old.py")

Health

mcp__trusty-search__search_health()
# Returns daemon liveness + uptime.

When to Use search_code vs chat

NeedTool
List of matching files/symbolssearch_code
Quick lookup, then read sourcesearch_code
Synthesized explanation across many fileschat
Citations and a narrative answerchat
Bulk grep replacementsearch_code with query_type="Definition"

search_code is cheap; chat is more expensive. Prefer search_code + targeted Read when feasible.

Index Health Workflow

# 1. Confirm daemon up
search_health()

# 2. Confirm index registered and healthy
index_status(index="claude-mpm")

# 3. If stale or recently changed many files:
reindex(index="claude-mpm")

# 4. For single-file invalidation after edit:
index_file(index="claude-mpm", path="src/claude_mpm/foo.py")

If search_health fails: the daemon is not running. Start it externally (trusty-search serve). The MCP transport assumes the daemon is already serving.

Example Calls

Definition lookup

search_code(
  query="run_pending_migrations",
  index="claude-mpm",
  query_type="Definition",
  limit=5
)

Conceptual exploration

search_code(
  query="how hooks get dispatched after tool use",
  index="claude-mpm",
  query_type="Conceptual",
  limit=15
)

Tech debt audit

search_code(
  query="TODO FIXME XXX HACK",
  index="claude-mpm",
  query_type="BugDebt",
  limit=50
)

Q&A

chat(
  index="claude-mpm",
  question="What invariants does the migration registry enforce on migration IDs?"
)

Integration with trusty-memory

Search → understand → remember. After investigation, persist learnings.

# 1. Find code
search_code(query="model_tier_hook", index="claude-mpm", query_type="Definition")

# 2. Read and understand the code (use Read tool)

# 3. Persist the learning
mcp__trusty-memory__memory_remember(
  content="model_tier_hook enforces planner→claude-opus-4-7 routing; config at ~/.claude-mpm/config/configuration.yaml models.planning",
  room="Backend",
  tags=["hooks", "model-tier", "planner"],
  importance=0.8
)

# 4. Optionally assert relationship in KG
mcp__trusty-memory__kg_assert(
  subject="model_tier_hook",
  predicate="enforces",
  object="planner-model-routing"
)

Migration from mcp-vector-search

OldNew
mcp__mcp-vector-search__search_codemcp__trusty-search__search_code
mcp__mcp-vector-search__index_projectmcp__trusty-search__create_index + reindex
mcp__mcp-vector-search__get_project_statusmcp__trusty-search__index_status
mcp__mcp-vector-search__search_similarsearch_code with query_type="Usage"
mcp__mcp-vector-search__search_contextsearch_code with query_type="Conceptual" or chat
mcp__mcp-vector-search__search_hybridsearch_code (hybrid is default)

Best Practices

  • Always pass `index`: the daemon hosts many projects; omitting index is ambiguous.
  • Specify `query_type`: it materially improves ranking.
  • Start narrow: limit=10 for search_code, then expand if needed.
  • Reindex sparingly: full reindex is expensive — prefer index_file for single-file updates.
  • Verify before claiming: check search_health if results seem stale or empty.
  • Pair with memory: search to find, memory to remember.

Related skills

FAQ

How does trusty-search rank results?

It fuses BM25 lexical precision, HNSW vector similarity, and knowledge-graph signals using Reciprocal Rank Fusion (RRF).

When should I use chat instead of search_code?

Use search_code for a list of matching files or symbols and quick lookups; use chat for a synthesized explanation across many files with citations.

AI & Agent Buildingagentsresearch

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.