An MCP server for 1C: giving an agent your configuration metadata

Without MCP the model invents attributes your configuration does not have. We show what an MCP server for 1C provides, how to install mcp-1c and connect an agent through a gateway.

6 min · · агенты · development

If you ask a neural network to write BSL code for your configuration, it does not know which catalogs, documents and attributes you have, and it invents ones that do not exist. An MCP server for 1C solves exactly that: the agent asks for the configuration structure, syntax help and code search instead of guessing. Below we cover what such a server can do, how to install one of them (mcp-1c), connect it to Claude Code and Cursor, which model to run it on, and what to keep in mind for security.

MCP server for 1C: what it gives an agent

MCP (Model Context Protocol) is an open protocol by which an agent receives descriptions of external tools and calls them. Three groups of capabilities help with 1C:

  • Configuration metadata. The object tree, attributes, tabular sections, dimensions and resources, form structure. The agent writes queries and handlers using real names.
  • Help. The syntax of built-in platform functions and methods, so Russian and English names and parameters do not get mixed up.
  • Code search. Looking through configuration modules by text to find where the logic you need already exists.

There are several servers for 1C. Per the repository descriptions on GitHub as of October 18, 2026, examples include mcp-1c (metadata and BSL generation), 1c-mcp-toolkit (metadata and data, plus a REST API), mcp-bsl-platform-context (help on platform syntax and object model), EDT-MCP (for 1C:EDT), and a "1c-mcp" catalog linking many of them. We go through mcp-1c in detail because its documentation is clear; we did not test the others. Before choosing, read the README of the specific project: capabilities and terms differ (some projects have paid editions).

What mcp-1c can do

Per the project README, the open edition contains 11 tools:

ToolPurpose
get_metadata_treeObject tree: catalogs, documents, registers, common modules
get_object_structureAn object's attributes, tabular sections, dimensions, resources
get_form_structureA form's elements, commands and handlers
get_configuration_infoName, version, platform
search_codeSearch over module code (needs a configuration dump)
reload_dumpRe-read the dump without restarting
bsl_syntax_helpHelp on built-in BSL functions and methods
execute_queryA query in the 1C query language, selection only
validate_queryQuery syntax check without executing
get_event_logThe event log with filters
analyze_subsystemsSubsystem composition, objects outside subsystems

The program is written in Go and ships as a single executable. It talks to the agent over stdio and to the database through an HTTP service installed by a configuration extension, which does not change the configuration itself. The minimum supported platform version is 8.3.10.

Installation

Per the project documentation, the order is as follows.

  1. Download mcp-1c for your OS from the Releases page of the feenlace/mcp-1c repository. On macOS and Linux, make the file executable (chmod +x).
  2. Close all sessions of the database and install the extension: mcp-1c --install "C:\path\to\base". For a client-server database add --server and a connection string like server\base. The utility finds the platform, loads the extension and updates the database configuration.
  3. Publish the HTTP service: in the Configurator as administrator open Administration, Publish on web server, enable publishing of extension HTTP services by default on the HTTP services tab and click Publish. Check: curl http://localhost/base/hs/mcp-1c/version should return the extension version number.
  4. Grant access: the extension installs the role MCP_ОсновнаяРоль, and a user with no configuration roles gets a refusal from the service. How to assign it correctly depends on whether the "Access management" subsystem exists; this case is covered in detail in the project documentation.
  5. For code search, dump the configuration to files and start the server with --dump path_to_dump.

A platform limit: per the project documentation, 1C HTTP services are not supported on macOS, so the database is published on Windows or Linux.

Connecting to Claude Code

First connect Claude Code itself to the gateway. The fetch_... key is created in the dashboard; more in the Claude Code documentation.

bash
export ANTHROPIC_BASE_URL=https://api.zukko.pro
export ANTHROPIC_AUTH_TOKEN=fetch_your_key
export ANTHROPIC_MODEL=claude-sonnet-5-5

The address has no /v1: Claude Code adds the path itself. Then add the MCP server with the command from the project documentation:

bash
claude mcp add 1c --transport stdio -- /path/to/mcp-1c --base http://localhost:8080/hs/mcp-1c --dump /path/to/dump

For Windows the project documentation uses a cmd /c wrapper. The --scope user flag makes the server available in all projects. Check with claude mcp list. Run claude and ask: "Show the structure of my 1C database configuration". If the tools are not visible, look at claude mcp get 1c and start mcp-1c with the --verbose flag for diagnostics. The general MCP workflow in Claude Code is described in MCP servers in Claude Code.

Connecting to Cursor

Create a .cursor/mcp.json file in the project (or ~/.cursor/mcp.json for all projects):

bash
{
  "mcpServers": {
    "1c": {
      "command": "/path/to/mcp-1c",
      "args": ["--base", "http://localhost:8080/hs/mcp-1c", "--dump", "/path/to/dump"]
    }
  }
}

On Windows, backslashes in the path to mcp-1c.exe are doubled. Cursor itself connects to the gateway following the Cursor guide with the address https://api.zukko.pro/v1. According to the mcp-1c documentation, Cursor works best when no more than about 40 MCP tools are connected across all servers. mcp-1c has 11, but if you have many other servers, disable the ones you do not need.

Which model it works on

MCP needs tool calling, so the model must support it; check on your configuration with one hard question. claude-sonnet-5-5 is a fair default, claude-opus-5-5 can be taken for large refactorings, and gpt-6.1-sol for cheaper checks. Compare model strength by the index in the table and on your own tasks: we do not claim that any model knows BSL better.

Context matters: the metadata tree of a large configuration is big. Claude and GPT in the model table have a 1M token context, GLM has 128K.

A calculation as of October 18, 2026, claude-sonnet-5-5 (input 0.4, output 2, cache read 0.05, cache write 0.5 per 1M) in Claude Code, that is in the Anthropic format. A session of 25 requests, each with 44,000 tokens from cache, 5,000 written to cache, 1,000 fresh and 1,000 response tokens:

  • 1,000 × 0.4 + 44,000 × 0.05 + 5,000 × 0.5 + 1,000 × 2 = 400 + 2,200 + 2,500 + 2,000 = 7,100 micro-dollars per request;
  • 7,100 × 25 = 177,500 micro-dollars, about $0.18 per session.

Through Cursor (OpenAI format) the same 50,000 input tokens would be billed at the input price with no cache discount: 50,000 × 0.4 + 1,000 × 2 = 22,000, 22,000 × 25 = 550,000, which is $0.55. See real numbers under "Usage" in the dashboard. Top-up: SBP (the payment page adds an 8.5% fee on top), cryptocurrency or MasterCard.

Security

  • Data goes into the model request. Everything a tool returns (structure, query result rows, the event log) becomes part of the request to the model. Do not give the agent access to personal and commercial data without need.
  • Work on a copy of the database. For first experiments, set up a test copy.
  • Limit the rights of the HTTP service user to the minimum needed. execute_query by description runs selection only, but data visibility is determined by rights.
  • Do not put the password in the address. The project advises the --user and --password flags or the MCP_1C_USER and MCP_1C_PASSWORD environment variables.
  • Limit the key in Zukko: set a daily and monthly dollar limit and a list of allowed models.

The broader topic of integrating 1C with a neural network is covered in Integrating a neural network into 1C:Enterprise.

FAQ

Does mcp-1c work with local models?

Per the project README, yes: it is not tied to a model and works with any MCP client, including clients for local models. For complex requests the agent needs tool calling.

Is it free?

The project has a free open edition under the MIT license and paid editions with extended features. See the project README for current terms.

Why does the agent not see the tools?

Check that the HTTP service is published (the /version request answers), the path in --base matches the publication, the user has a role and the client has been restarted. In Claude Desktop the project advises the Always available mode.

Do I need the gateway for the MCP server itself?

No. The MCP server runs locally and talks to your database. The gateway is needed only by the model the agent uses.

zukko

Pay 25×
less

for Claude Code & ChatGPT

One fetch_* key and base URL api.zukko.pro — for Cursor, Claude Code, Codex, and any SDK.

Get API keyDocumentation

api.zukko.pro · fetch_*

MCP server for 1C: connect to Claude Code and Cursor · Zukko