Feature request: find_remote_tools - implement semantic/intent-based filtering
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 45/100
- Issue type
- Feature
- Clarity
- Mostly clear
- Activity status
- Active
- Tech stack
- go
- Domain
- api, backend-api-design, networking
Research direction
Start in internal/node/mcp_handlers.go at the find_remote_tools handler and trace how intent and the existing peer_id, service_name, and tool_name filters are processed. Decide on a relevance approach, then verify that intent returns or ranks matching names and descriptions, composes with existing filters, and preserves exact-name lookup behavior.
Written by the indexing model from the issue text.
Description
find_remote_tools accepts an intent parameter ("Natural-language description of what the caller is looking for") but it is a no-op: the handler logs it at debug level and ignores it (internal/node/mcp_handlers.go). The tool description and JSON schema already advertise it as "reserved for future semantic ranking".
Current behavior
Only structural filters work: peer_id, service_name, and tool_name (exact match). An agent that doesn't know a tool's exact name must list everything and scan descriptions itself.
Feature request
Make intent actually filter/rank results. When set, match it against tool names and descriptions and return results ordered by relevance (or filtered to relevant ones), so a caller can ask e.g. intent: "review a pull request" and get mcp://code-reviewer/review_pr near the top without knowing the name.
Possible directions, from simplest to heaviest:
- Lexical matching (substring/keyword overlap against name + description) — no new dependencies.
- Embedding-based ranking, e.g. via an inference service already hosted on the mesh.
Notes
- Should compose with the existing filters (
peer_id,service_name). - If
intentis set together withtool_name, the exact-name lookup should probably still win. - No API change needed: the parameter and its schema already exist, so this is backward compatible.
- Dominant language
- Go
- Stars
- 926
- Forks
- 138
- Avg merge
- 11h 34m
- Merged PRs (30d)
- 117
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from google/sam
-
good first issue
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
-
Difficulty 3/5 1-2 days Newbie friendliness 70/100
-
Difficulty 5/5 Over a week Newbie friendliness 25/100
-
PEP story Open
Difficulty 4/5 3-5 days Newbie friendliness 30/100
Similar issues
-
bug github_actions
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
registrystack/registry-stack#1393 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
JakeChampion/lang#10213 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
oasisprotocol/oasis-sdk#2523 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 70/100