sourcelens
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| SOURCELENS_DB | No | Path to the SQLite index database. Defaults to ~/.sourcelens/index.db. | ~/.sourcelens/index.db |
| SOURCELENS_HTTP | No | Set to 1 to run the server in HTTP mode instead of stdio (default is stdio). | |
| SOURCELENS_PORT | No | Port for HTTP mode. Default is 8766. | 8766 |
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 |
|---|---|
| index_folderA | Index every supported source file under Walks the tree, parses each file with tree-sitter, and stores symbols + imports in the local SQLite index. Safe to re-run; files are replaced idempotently by path. Returns counts of what was indexed. |
| search_symbolsA | Search indexed symbols by name substring. Returns each match with its qualified name, kind, language, file path, and
line range. Use get_symbol_source to fetch exact body text. |
| get_symbol_sourceA | Fetch a symbol's exact source by id, or by name (+optional file). Returns the precise byte range from disk (no whole-file read), so an agent gets only the function/class body it needs. Provide symbol_id OR name. |
| get_file_outlineA | List every symbol declared in a file, in source order. Use this instead of reading a whole file — it returns the outline (name, kind, line range, signature) so the agent can then pull only the symbol bodies it actually needs. |
| find_importersA | Find files that import the given module/target. Matches exact or suffix module paths (e.g. "os", "fmt", "utils.foo"). |
| find_importsC | List what a single file imports, in source order. |
| statsA | Return index stats: file count, symbol count, per-language breakdown. |
| list_languagesA | Return the languages this indexer supports. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 8 tools
每个工具都有明确的资源+动作组合,但 find_importers 和 find_imports 的名称几乎相同,功能互为反向,可能造成误选。其余工具如 search_symbols 与 get_symbol_source 通过描述清楚区分。
大多数工具遵循 snake_case 的 动词_名词 模式,如 search_symbols、get_symbol_source、find_importers。但 stats 是纯名词,且动词在 list/index/search/get/find 之间不统一,存在轻微不一致。
8 个工具覆盖了索引、统计、符号搜索、源码获取、文件大纲和依赖分析,每个工具都有明确用途,没有冗余,范围对于代码索引服务器非常合适。
核心工作流(索引、查询符号、查看文件大纲、分析导入关系)覆盖完整。缺少显式的索引删除或清理操作,但 index_folder 的幂等重跑可以在一定程度上替代更新,代理也能通过重新索引绕过。