lynx-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| searchA | Hybrid semantic + lexical search over the indexed code and docs. Describe what the code does in plain words ('method that clamps camera zoom'), not an identifier. Returns ranked chunks with file:line, symbol and score; a hybrid score near 0.03 is a strong match. Omit |
| deep_searchA | Escalation for when |
| list_sourcesA | List which sources exist and what each one is: name, type, path, chunk count and drift flag. Read from config and metadata, no index opened. Call it first when you do not know the source names a |
| update_source_indexA | Force a full rebuild of a source's index. Expensive and blocking; the watcher keeps the index current, so use it only after a big merge or a drift warning. |
| get_rag_statusA | Index state for one or all sources: freshness, chunk count, last update, drift. Check it before considering a rebuild. |
| feedbackA | Report that the index could not answer you, before giving up. Appended to a local log (never uploaded) so the index owner can tune sources and filters. |
| graph_queryA | Raw access to the code knowledge graph (calls, inheritance, imports), for the questions the dedicated tools do not cover: find_usages, impact and describe_symbol answer the common ones with the results already shaped. operation: callers | callees | subclasses | superclasses | imports | neighbors | shortest_path | overview | surprising_connections | status. |
| find_definitionA | Jump to where a symbol is defined, when you already know its name. AST-precise when the graph layer is on, BM25 fallback otherwise; each hit says which. Use |
| find_usagesA | Every use of a symbol: calls (from the graph when on) plus textual references (generics, decorators, imports, docs), definition excluded. Answers 'who uses X' at one hop; |
| find_tests_forA | List the tests that mention a symbol, searched under conventional test paths (tests/, spec/, tests/, _test., .spec., *Test.cs, *Tests.cs); test_path_pattern replaces them for another layout. Use it when the tests are all you want, before or after a change; describe_symbol returns the same tests bundled with the definition and the callers, and impact returns them for a whole blast radius. |
| find_similarA | Code semantically similar to a snippet you already have, dense search only: use it before writing a function, to check whether something like it exists. |
| describe_symbolA | One-shot context for a symbol: definition, who calls it, what it calls, and its tests, in a single call. The fastest way to understand a function or class before changing it, and cheaper than find_definition, find_usages and find_tests_for one after the other. Call data needs the graph layer; definition and tests always work. |
| impactA | Answer 'what breaks if I change this': everything that reaches a symbol transitively through the call graph, with hop distance, plus the tests to re-run. Use find_usages for the direct, one-hop answer; use this before a risky edit, when the indirect callers are the point. max_depth trades reach for noise: 2 stays close to the change, 6 on a hub symbol can return most of the codebase. Transitive callers need the graph layer. |
| repo_overviewA | Orientation for an unfamiliar codebase: languages by file count, frameworks, manifests, likely entry points, and build/test/run commands. Filesystem scan, no index needed. Call once per session. |
| module_summaryA | A file as a unit: the symbols it defines, what it imports, and which files depend on it (via the call graph). Read it before editing a file you don't know; repo_overview does the same for the whole repository, and describe_symbol for one symbol inside the file. |
| export_graphA | Write a self-contained offline HTML view of a symbol's blast radius (mode=symbol) or a file's imports and dependents (mode=module), for a human to open or attach to a PR. Returns the file path. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| guide | How to use Lynx well: search phrasing, score interpretation, escalation ladder, structural queries. |
TDQS
Scored across 16 tools
Tools mostly have distinct purposes, and the descriptions explicitly cross-reference when to use one versus another (e.g., find_usages vs impact vs describe_symbol). Some overlap exists between search, find_similar, and deep_search, but their scopes are clearly differentiated enough for an agent to select correctly.
Most names use snake_case, but the pattern is inconsistent: some are verb_noun (find_definition, list_sources), some are noun phrases (repo_overview, module_summary), and a few are single words (impact, feedback). This mixed style reduces predictability.
16 tools is slightly above the typical 3-15 range, but the breadth is justified by combining code navigation, semantic search, graph queries, and RAG index management. The count feels reasonable rather than bloated.
The toolset covers the full code understanding workflow: overview, definition, usages, tests, impact, similar code, symbol/module summaries, graph export, search variants, and index lifecycle management. No obvious gaps prevent an agent from accomplishing common navigation and search tasks.