Поиск по коду для ИИ-агентов: 32 инструмента MCP, индекс на SQLite, один бинарник без зависимостей. Разбирает выгрузки 1С:Предприятие — Конфигуратор и EDT; конфигурация на 88 тыс. файлов индексируется за 6 минут, ответ на запрос — 10 мс. Code index MCP server: tree-sitter AST for 14 languages, 20 universal tools + 12 for 1C/BSL.
Drift inferred · capture-to-capture
tool count over time
tools
-
bsl_sql
Arbitrary read-only SQL (v0.21.0): a SELECT/WITH query over the repo's index.db for the long tail of metadata/graph questions that have no dedicated tool (roles/RLS, joins, aggregations). Guard: SELEC
-
find_data_path
Data-links graph (v0.10.0): chain of reference links from one object to another (BFS over data_links, like find_path but for data, not calls). v0.57.0: on failure the answer distinguishes «no path» fr
-
find_path
(v0.23.0) Shortest path in the call graph between two functions from→to (iterative cycle-safe BFS over unique calls nodes, max_depth=5, any language). Returns path edges [{caller, callee, line}]. v0.5
-
find_path_bsl
Call-chain between two procedures via proc_call_graph (recursive CTE, max_depth=3). BSL-specific variant of the universal find_path — proc_call_graph carries call_type and procedure keys. (v0.35.0) fr
-
find_references
Impact map (v0.21.0): everything that references an object, in one call — reverse data_links (structural refs from metadata) + metadata_code_usages (usages in .bsl code) + role_rights (roles holding r
-
find_symbol
Search everywhere (functions, classes, variables, imports)
-
get_call_tree
(v0.23.0) Call tree from a root function up to max_depth (default 3). direction: callees/down (downstream) or callers/up. Flat edge list [{caller, callee, line, depth, path}] ((v0.35.0) path = source
-
get_callees
What does this function call? (v0.35.0) each row carries the source path
-
get_callers
Who calls this function? (v0.35.0) each row carries the caller's source path (distinguishes same-named callers from different files). v0.62.0: for 1C configurations, form event handler bindings (kind:
-
get_class
Get class by exact name (case-insensitive fallback; (v0.44.0) on 0 matches returns did_you_mean with similar names)
-
get_data_links
Data-links graph (v0.10.0): what an object references / what references it, via reference-typed attributes, register dimensions and tabular-section attributes (data_links table). direction=out\
-
get_event_subscriptions
All event subscriptions from EventSubscriptions/*.xml. Filters: handler module, event (Russian or English platform enum — OnWrite→ПриЗаписи), source — by source object (Document.X/DocumentObject.X/sho
-
get_file_summary
Complete file map without reading source
-
get_form_handlers
Managed-form event handlers by (owner_full_name, form_name). Owner accepted in both formats — Document.X and export-folder Documents.X (v0.31.0). v0.54.0: returns (event, handler, element) triples — e
-
get_function
Get function by exact name (case-insensitive fallback; (v0.44.0) on 0 matches returns did_you_mean with similar names)
-
get_imports
Imports by module or file
-
get_object_profile
Object passport in one call (v0.21.0): the full portrait of an object — structure + forms + modules + data links — instead of a series of get_object_structure/get_form_handlers/get_data_links. The sec
-
get_object_structure
Structure of a 1C object. v0.63.0: object templates are now in the registry — a row Catalog.X.Template.Y with the owner, the template kind and a content_indexed flag (large templates stay out of the i
-
get_register_writers
Register recorders / document movements (v0.16.0): for a register (AccumulationRegister.Stock) returns writers — documents writing movements; for a document — writes_to (target registers). From the de
-
get_stats
Index statistics
-
grep_body
Substring or regex search in function/class bodies. Returns match_lines (first 3 line numbers) and match_count (total, if > 3). v0.7.0: optional path_glob, context_lines
-
grep_code
(v0.8.0) Regex search over code-file content (.py, .bsl, .rs, .ts, etc.) via file_contents table (zstd-decode in Rust). Same parameters as grep_text: regex, path_glob?, language?, limit?, context_line
-
grep_text
(v0.7.0) Regex search over text-file content (REGEXP). Closes the FTS5 special-character gap. Optional path_glob, language, context_lines. Hard-cap 1 MB on response size
-
health
MCP server health and connected repos
-
list_files
(v0.7.0) Flat file listing with optional pattern (glob like /*.py), path_prefix, language, limit. v0.49.8: limit defaults to 500; when more files match, the response carries {truncated, total, shown,
-
read_file
(v0.7.0) Read content of a file. Optional line_start/line_end (1-based, inclusive). Soft-cap 5000 lines or 500 KB, hard-cap 2 MB. (v0.8.0) works for code files too (.py, .bsl, .rs, .ts, etc.) — conten
-
search_class
Full-text search across classes
-
search_function
Full-text search across functions (name, docstring, body)
-
search_terms
Meaning-based procedure search (v0.30.0): terms are filled mechanically at index time — words of the procedure name (CamelCase split), the owner object's name and synonym, the comment above the proced
-
search_text
Full-text search across text files
-
stat_file
(v0.7.0) Metadata of a single file: exists, size, mtime, language, lines_total, content_hash, indexed_at, category (text/code). (v0.8.0) adds oversize: bool for code files
code files: 105
filesystem 1
- fs (weak) Regsorm-code-index-mcp-27bbf13/npm/scripts/postinstall.js :15
const fs = require('fs');
shell / exec 2
- shell Regsorm-code-index-mcp-27bbf13/npm/bin/cli.js :13
const { spawn } = require('child_process'); - shell (weak) Regsorm-code-index-mcp-27bbf13/npm/scripts/postinstall.js :19
const { execFileSync } = require('child_process');
network 1
- net (weak) Regsorm-code-index-mcp-27bbf13/npm/scripts/postinstall.js :18
const https = require('https');
install hooks 1
- postinstall Regsorm-code-index-mcp-27bbf13/npm/package.json :35
node scripts/postinstall.js
declared dependencies 46
- rmcp@1.3
- clap@4
- tokio@1
- tree-sitter@0.25
- tree-sitter-python@0.25
- tree-sitter-javascript@0.23
- tree-sitter-typescript@0.23
- tree-sitter-java@0.23
- tree-sitter-rust@0.23
- tree-sitter-bsl@0.1.7
- tree-sitter-go@0.23
- tree-sitter-html@0.23
- tree-sitter-php@0.23
- tree-sitter-c@0.23
- tree-sitter-cpp@0.23
- tree-sitter-c-sharp@0.23
- tree-sitter-ruby@0.23
- tree-sitter-swift@0.7
- quick-xml@0.37
- rusqlite@0.39
- zstd@0.13
- serde@1
- serde_json@1
- schemars@1
- walkdir@2
- rayon@1.10
- notify@7
- notify-debouncer-full@0.4
- sha2@0.10
- regex@1
- globset@0.4
- anyhow@1
- thiserror@2
- tracing@0.1
- tracing-subscriber@0.3
- sysinfo@0.32
- hex@0.4
- chrono@0.4
- axum@0.8
- tower@0.5
- reqwest@0.12
- toml@0.8
- toml_edit@0.22
- dirs@5
- arc-swap@1
- tempfile@3