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 getobjectstructure/getformhandlers/getdatalinks. The sections parameter (['structure'\
How to use it
get_object_profile is exposed by the Code Index MCP MCP server. Add the server to your MCP client (Claude Desktop, Cursor, Windsurf and others), and the get_object_profile tool becomes available to the model automatically. See the full listing for setup details and every tool this server provides.
Install Code Index MCP
npx @regsorm/code-index-mcp serve --path /path/to/your/repoOther tools in Code Index MCP (30)
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: SELECT/WITH only + Statement::readonly() + row cap + timeout. Tables: metadataobjects, metadatamodules, m
Data-links graph (v0.10.0): chain of reference links from one object to another (BFS over datalinks, like findpath but for data, not calls)
(v0.23.0) Shortest path in the call graph between two functions from→to (iterative cycle-safe BFS over unique calls nodes, maxdepth=5, any language). Returns path edges [{caller, callee, line}]
Call-chain between two procedures via proccallgraph (recursive CTE, maxdepth=3). BSL-specific variant of the universal findpath — proccallgraph carries calltype and procedure keys. (v0.35.0) from/to and procedure keys are <relpath>::<name> (a bare name is accepted for unresolved leaves); walks by re
Impact map (v0.21.0): everything that references an object, in one call — reverse datalinks (structural refs from metadata) + metadatacodeusages (usages in .bsl code) + rolerights (roles holding rights on it), broken down by kind with samples (limit)
Search everywhere (functions, classes, variables, imports)
(v0.23.0) Call tree from a root function up to maxdepth (default 3). direction: callees/down (downstream) or callers/up. Flat edge list [{caller, callee, line, depth, path}] ((v0.35.0) path = source file of each edge) + nested {name, children} tree; maxnodes cap
What does this function call? (v0.35.0) each row carries the source path
Who calls this function? (v0.35.0) each row carries the caller's source path (distinguishes same-named callers from different files)
Get class by exact name (case-insensitive fallback; (v0.44.0) on 0 matches returns didyoumean with similar names)
Data-links graph (v0.10.0): what an object references / what references it, via reference-typed attributes, register dimensions and tabular-section attributes (datalinks table). direction=out\
All event subscriptions from EventSubscriptions/.xml. Filters: handler module, event (Russian or English platform enum — OnWrite→ПриЗаписи), source — by source object (Document.X/DocumentObject.X/short name, v0.31.0). Unknown parameters are rejected with the list of valid filters; default limit 50 (
Complete file map without reading source
Managed-form event handlers by (ownerfullname, formname). Owner accepted in both formats — Document.X and export-folder Documents.X (v0.31.0). For typical document form returns ~120 (event, handler) pairs; unknown form → error with availableforms of the owner
Get function by exact name (case-insensitive fallback; (v0.44.0) on 0 matches returns didyoumean with similar names)
Imports by module or file
Full structure of a 1C metadata object by fullname (Document.SalesInvoice): attributes with 1C-notation types (+synonym — UI label, +required — fill checking, v0.32.0; +indexing — indexing flag Index/IndexWithAdditionalOrder, v0.45.1), tabular sections with columns, register dimensions/resources; en
Register recorders / document movements (v0.16.0): for a register (AccumulationRegister.Stock) returns writers — documents writing movements; for a document — writesto (target registers). From the declarative <RegisterRecords> set (recorder edges of datalinks). One call covers both directions
Index statistics
Substring or regex search in function/class bodies. Returns matchlines (first 3 line numbers) and matchcount (total, if > 3). v0.7.0: optional pathglob, contextlines
(v0.8.0) Regex search over code-file content (.py, .bsl, .rs, .ts, etc.) via filecontents table (zstd-decode in Rust). Same parameters as greptext: regex, pathglob?, language?, limit?, contextlines?. Complements grepbody (which searches only inside function/class bodies). Oversize files are skipped
(v0.7.0) Regex search over text-file content (REGEXP). Closes the FTS5 special-character gap. Optional pathglob, language, contextlines. Hard-cap 1 MB on response size
MCP server health and connected repos
(v0.7.0) Flat file listing with optional pattern (glob like /.py), pathprefix, language, limit
(v0.7.0) Read content of a file. Optional linestart/lineend (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.) — content stored in filecontents table (zstd). Oversize files (default > 5 MB) return oversize: true with an e
Full-text search across classes
Full-text search across functions (name, docstring, body)
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 procedure; no LLM needed. Trigram FTS: word forms and 3+ character substrings work, case and ё/е are irrel
Full-text search across text files
(v0.7.0) Metadata of a single file: exists, size, mtime, language, linestotal, contenthash, indexedat, category (text/code). (v0.8.0) adds oversize: bool for code files