onec-mcp
Loads a 1C configuration XML export into Neo4j and gives read-only MCP access to metadata, BSL routines and rights via text and full-text search
- 1 ★ on the repository
- Last commit
Extended access
Why this level
- Brings up a Docker stack with Neo4j that builds a graph from a 1C XML export
- MCP tools only read the graph, loading is a separate command
Install
- Works in
- Services
Manual install
python scripts/docker/start_docker.pyBrings up Neo4j and the MCP server, waits for Neo4j to be ready, and runs load_config from ONEC_ERP_XML_HOST.
Access and checks
How we reviewExtended accessThe tool runs code or makes network calls and only reads external data.
- Brings up a Docker stack with Neo4j that builds a graph from a 1C XML export
- MCP tools only read the graph, loading is a separate command
This is third-party code. Review the repository files before installing.
What it does
A Docker stack parses a 1C configuration XML export and builds a Neo4j graph: metadata objects, BSL routines and functions with CALLS edges, and roles and rights from Rights.xml. The agent gets about 25 MCP tools: a list of metadata kinds, objects and their cards, roles by object, an overview with a dossier and routine index, full module or single-procedure text by qualified_name, a call graph to a given depth, a comparison of two roles' grants, and trusted Cypher templates for graph reports. Procedure and metadata search works only by substring and Neo4j full-text index, no vector embeddings.
Who it is for. For 1C analysts and developers who need a local configuration graph for navigating metadata, code and rights without the cloud.
Good fit when
- You need to find which roles grant access to a metadata object
- You need to find every caller of a procedure and trace a call chain
- You want a local knowledge base for the configuration without sending code out
Not a fit when
- You need a full static call analysis: the CALLS graph is heuristic and does not resolve dynamic Выполнить
- You need semantic code search: only text and full-text search are available
Example request
Which roles grant access to Справочник.Номенклатура, and who calls the ПроверитьЗаказ procedureMCP
- Transport
- http
- Authentication
- not required
Environment variables
ONEC_ERP_XML_HOSTrequired- Host path to the root of the 1C configuration XML export.
NEO4J_PASSWORDrequired, secret- Password for the Neo4j database, set in docker/.env.
ONEC_OPENAI_API_KEYsecret- Key for the optional natural-language-to-Cypher translation feature.
Limitations
The tool only reads the graph, never writes back to Neo4j, and does not run the export from 1C itself. The CALLS call graph is a text-based heuristic, not a full static analysis. One Neo4j instance holds one configuration; a second one needs a separate Compose project. A large ERP export needs tens of gigabytes of RAM.
How to disable. Stop the stack with docker compose -f docker/docker-compose.yml down and remove the server from your MCP client configuration.
FAQ
Does procedure search use vector embeddings?
No, search runs only on substring and the Neo4j routine_search full-text index, with no Ollama or vector fields.
Can arbitrary Cypher be written to the database from chat?
No, only dedicated tools and trusted templates from a registry are available; write-Cypher from chat is not supported.
Discussion
No questions or reviews yet.
Related
All 1C:Enterprise toolsA Neo4j graph of 1C configuration metadata and code with MCP tools, a web console and a built-in search agent
1C configuration graph MCP server
1C Configuration MCP Server
An MCP server builds a metadata and call graph from a 1C configuration's XML and BSL export, with optional semantic search via an external embedder and Qdrant
Five independent Docker-based MCP servers: a Neo4j metadata and call graph, static BSL analysis, platform syntax help, a query builder and 1C coding standards
An MCP server and portable admin tool for analyzing an exported 1C XML configuration: object listing, metadata structure, code search
A local knowledge graph of a 1C configuration for an agent: Memgraph and ONNX embeddings with no cloud, for bases with hundreds of thousands of routines
A Docker server with a read-only core and pluggable modules: metadata, code, forms and relations of several 1C configurations through one MCP contract
README in short
The bilingual README describes the flow from ONEC_ERP_XML_HOST through load_config into Neo4j and MCP on port 8840, a table of the main MCP tools, the principle of trusted Cypher templates instead of free-form write-Cypher, a responsibility split between chat, MCP and load_config, a security section on non-exposed ports and a mandatory Neo4j password, and limitations around the CALLS graph being heuristic.