Skip to main content
Glama
JSungMin

vs-token-safer

by JSungMin

concept_search

Find code by describing an idea rather than a symbol name. Uses repository identifiers and comments to return ranked file:line locations, with optional call-graph tracing.

Instructions

FUZZY search for a concept you can't name ("how does auth work"). Mines a dictionary from the repo's own identifier+comment co-occurrence (no embeddings, nothing sent) → ranked file:line. Use when you don't know the symbol name. flow=true traces the top hit's call graph.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
qYesConcept/intent phrase (concrete nouns work best).
flowNoAlso trace the top hit along the call graph.
maxResultsNo
projectPathNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv1.1.5
  2. Removedv1.1.2
  3. Changed2 schema fields changedv0.37.3
    • removedInput schema / properties / maxResults / description
      Removed value: -"Result cap (60)."
    • removedInput schema / properties / projectPath / description
      Removed value: -"Project root (cwd)."
  4. Addedv0.34.2

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden, and it handles it well. It discloses the internal mechanism (dictionary mined from identifier+comment co-occurrence), privacy characteristics (no embeddings, nothing sent), the return format (ranked `file:line`), and the optional call-graph behavior of flow=true. This gives the agent a clear picture of what happens when invoked.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded: it states what the tool does, how it works, what it returns, and the flow option, all in a few sentences. Every clause adds information, and there is no filler or repetition of the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a search tool with no output schema and no annotations, this is quite complete: it explains the fuzzy matching approach, privacy, output format, and the flow toggle. The main gap is the undocumented optional parameters maxResults and projectPath, which could affect how the agent invokes the tool for non-default behaviors.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 50%, with maxResults and projectPath lacking any description in both the schema and the description. The description does add useful meaning for q ("concrete nouns work best") and flow (traces the top hit's call graph), but it doesn't compensate for the two undocumented optional parameters, leaving their defaults and scope ambiguous.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific verb (fuzzy search) and resource (a concept you can't name), and the output is concrete: ranked `file:line`. It distinguishes itself from symbol-based searches by saying to use it when you don't know the symbol name, which sets it apart from siblings like search_symbol.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says "Use when you don't know the symbol name," giving agents a clear triggering condition and implicitly contrasting with symbol search. It doesn't name alternative tools explicitly or describe when not to use it, but the primary use case is well specified.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.