google / google/sam

Feature request: find_remote_tools - implement semantic/intent-based filtering

Open
#313 1 comment 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
Go
Stars
846
Forks
128
Avg merge
23h 7m
Merged PRs (30d)
88

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:

1. Lexical matching (substring/keyword overlap against name + description) — no new dependencies.
2. 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 `intent` is set together with `tool_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.

Contributor guide

Open the contributing guide

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.

Assessment

Tech stack
go
Domain
api, backend-api-design, networking
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.