@theyahia/1c-rest-mcp
OfficialThis server acts as an MCP gateway for 1C:Enterprise via its OData 3.0 REST API, enabling AI agents to discover, query, and manipulate business data. Key capabilities include:
Discover Structure: List all OData entities (catalogs, documents, registers, reports), fetch raw metadata, and describe specific entity fields.
Manage Catalogs: Read, create, and update catalog items with OData filtering, sorting, selection, and pagination.
Handle Documents: Read, create, update, post, unpost, and delete documents; locate by number or GUID; retrieve tabular sections.
Work with Registers: Read information/accumulation registers, write information register records, get accumulation balances, and read accounting register records.
Manage Constants: Get and set 1C constant values.
Shortcut Operations: Fuzzy-search by description, fetch by GUID (
Ref_Key), count entity records, set/clear deletion marks, retrieve recent documents.Generate Reports: Fetch 1C reports from configured HTTP service URLs.
Run Arbitrary OData Queries: Full support for
$filter,$select,$expand,$orderby,$top,$skip, and$inlinecounton any entity.Batch Operations: Batch-create documents, batch-update catalog items, and run multiple OData GET queries concurrently with bounded concurrency.
Track Changes: Poll for modified rows since a given timestamp using date field filters (no webhooks).
Guided Workflows (Prompts): Built-in multi-tool workflows —
inventory-database(database mapping),find-and-post-document(document management), andreconcile-balances(register comparison).Flexible & Secure Deployment: Runs via stdio or HTTP (with session management, CORS, graceful shutdown); supports HTTP Basic authentication and output sanitization.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@@theyahia/1c-rest-mcpGet the document with number 'INV-001' and type 'Invoice'"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
@theyahia/aprovodka
MCP server for 1C:Enterprise REST API via OData 3.0 — catalogs, documents, registers, accounting, constants, reports, batch ops & change-tracking + metadata discovery. 32 tools across 11 modules. HTTP Basic auth. Stdio + Streamable HTTP transports.
Migrating from @theyahia/1c-rest-mcp (v3.x → v4.0.0)
The package was renamed to @theyahia/aprovodka. @theyahia/1c-rest-mcp is deprecated and frozen at v3.2.0.
Install the new package:
npx -y @theyahia/aprovodka.Binary renamed:
1c-rest-mcp→aprovodka.aprovodka --httpandHTTP_PORT=3000 aprovodkawork as before.Server name in the MCP handshake is now
aprovodka— update the key in your client config if you pinned it.
Everything else is unchanged: all 32 tool names, their arguments and return formats, the 3 prompts, and the ONEC_* env vars (plus the 1C_* backward-compat aliases). Renaming the package does not require touching your existing config beyond the command itself.
Migrating from v1.x
If you starred or used v1.x, the v2.0.0 release introduced a few breaking changes:
HTTP transport env var renamed:
PORT=3000→HTTP_PORT=3000.Removed separate HTTP binary:
1c-rest-mcp-httpis gone. Useaprovodka --httporHTTP_PORT=3000 aprovodkainstead.Single
binentrypoint:dist/http.jsis no longer published.Internal client: now extends
@theyahia/mcp-core'sBaseHttpClientwithBasicAuthStrategy. The exported functional API (oneCGet/oneCPost/oneCPatch/buildODataPath) is unchanged, so tool code keeps working.Tool errors: now returned as MCP-spec
CallToolResultwithisError: true(viawithErrorHandlingfrom@theyahia/mcp-core). Compatible with all MCP clients.
Tool names, arguments, return formats, and the ONEC_* env vars are unchanged.
Tools (32)
Tools are grouped into modules. All are registered by default; the
ONEC_SERVICESenv var filters which optional modules load (discoverymetais always on). See Environment Variables.
Discovery — meta (always enabled)
Tool | Description |
| List all available 1C OData entities (catalogs / documents / registers / reports). Use this first when working with an unfamiliar database. |
| Locate a 1C document by its number (e.g. invoice ТД-00123 dated 2026-03-01). Convenience wrapper over |
| Return the raw OData |
| List an entity's fields by inspecting one sample record ( |
Catalogs — catalogs
Tool | Description |
| Read 1C catalog data. Supports |
| Create a new catalog item via OData POST (e.g. add a Контрагент or Номенклатура). |
| Update a catalog item via OData PATCH (by |
Documents — documents
Tool | Description |
| Read 1C documents with full OData filtering. |
| Create a new document via OData POST. |
| Update an existing document via OData PATCH (by |
| Post (провести) a document via the OData bound action |
| Unpost (отменить проведение) a document via |
| Physically delete a document via OData DELETE. Prefer |
| Read a document's tabular section (строки, e.g. Товары) by |
Registers — registers
Tool | Description |
| Read information or accumulation register data. |
| Write a record into an independent information register (POST on |
| Accumulation-register balances (остатки) via the OData virtual method |
Accounting — accounting
Tool | Description |
| Read accounting-register records ( |
Constants — constants
Tool | Description |
| Read a 1C constant value ( |
| Write a 1C constant value via OData PATCH ( |
Shortcuts — shortcuts
Tool | Description |
| Fuzzy-find items by a substring of |
| Fetch a single record by its |
| Count records of an entity ( |
| Set/clear the |
| Most recent documents of a type, ordered by |
Reports — reports
Tool | Description |
| Get a 1C report from a relative HTTP service URL ( |
Generic OData — odata
Tool | Description |
| Run an arbitrary OData 3.0 query. Supports |
Batch — batch
1C has no native OData
$batchendpoint. These tools dispatch N requests in parallel (bounded concurrency) and report per-item success/failure — a partial failure never aborts the batch.
Tool | Description |
| Create N documents (1..100) of one type in parallel. |
| PATCH N catalog items by |
| Run N OData GET queries (1..50) in parallel; combine results client-side. |
Change tracking — changes
1C has no webhooks / event subscriptions — only polling.
Tool | Description |
| Pull rows modified since a timestamp cursor ( |
| Explicit no-op documenting the absence of 1C webhooks; redirects to |
Note on write/posting tools.
post_document/unpost_document/delete_document,get_accumulation_balance(virtualBalance) andwrite_information_registerfollow the 1C:Enterprise OData 3.0 spec. URL/parameter shapes should be validated against your specific 1C configuration's$metadata(useget_metadata) before relying on them in production.
Related MCP server: 1C MCP Server
Prompts
The server ships three MCP prompts — guided multi-tool workflows your client can invoke directly (they travel with the npm package, no separate skill install):
Prompt | Arguments | What it does |
| — |
|
|
| Finds a document, shows its fields + lines, then posts it only after explicit human confirmation. |
|
| Compares |
Quick Start
Claude Desktop
Add to claude_desktop_config.json:
{
"mcpServers": {
"aprovodka": {
"command": "npx",
"args": ["-y", "@theyahia/aprovodka"],
"env": {
"ONEC_BASE_URL": "http://server:8080/base",
"ONEC_LOGIN": "your_login",
"ONEC_PASSWORD": "your_password"
}
}
}
}Cursor / Windsurf
Same configuration block under mcpServers in the IDE's MCP settings.
VS Code (Copilot)
Add to .vscode/mcp.json:
{
"servers": {
"aprovodka": {
"command": "npx",
"args": ["-y", "@theyahia/aprovodka"],
"env": {
"ONEC_BASE_URL": "http://server:8080/base",
"ONEC_LOGIN": "your_login",
"ONEC_PASSWORD": "your_password"
}
}
}
}Streamable HTTP transport
For remote/multi-tenant deployments, run as an HTTP server:
HTTP_PORT=3000 \
ONEC_BASE_URL=http://server:8080/base \
ONEC_LOGIN=admin \
ONEC_PASSWORD=secret \
npx @theyahia/aprovodka
# or: npx @theyahia/aprovodka --httpEndpoints:
POST /mcp— MCP requestsGET /mcp— SSE event stream (per session)DELETE /mcp— session terminationGET /health—{ status: "ok", version, tools, uptime, memory_mb }
Includes session management (mcp-session-id header), CORS, graceful shutdown.
Environment Variables
Variable | Required | Description |
| yes | Base URL of the 1C HTTP server (e.g. |
| yes | Login for HTTP Basic auth. |
| yes | Password for HTTP Basic auth. |
| no | Comma-separated module list (default: |
| no | If set, server runs in HTTP mode on this port. |
Backward-compat: 1C_BASE_URL, 1C_LOGIN, 1C_PASSWORD are also accepted as fallback.
Module filtering (ONEC_SERVICES)
Limit registered tools to save LLM context. Modules: catalogs, documents, registers, accounting, constants, shortcuts, reports, odata, batch, changes (plus always-on meta).
ONEC_SERVICES=catalogs,documents npx @theyahia/aprovodkaThe discovery module meta (list_entities, get_document_by_number, get_metadata, describe_entity) is always registered — without it an agent cannot discover the database structure.
Safety: set MCP_DISABLE_SANITIZE=true only if you trust the data source — by default tool output is scanned for prompt-injection patterns. The HTTP client refuses absolute URLs whose origin differs from ONEC_BASE_URL. Ref_Key arguments are validated as GUIDs and string values in get_document_by_number are OData-escaped; the raw $filter/$select/$orderby passthroughs are intentional, so scope what the server can read or write via the 1C user's role, not via these arguments.
Authentication
1C:Enterprise REST API uses HTTP Basic auth. Get credentials from your 1C administrator:
Enable HTTP services and OData publication in the 1C Designer.
Create a 1C user with the role required to read/write the entities you need.
Use that user's login/password as
ONEC_LOGIN/ONEC_PASSWORD.The
ONEC_BASE_URLis the URL of the published infobase (the same URL you use for the 1C web client, without/odata/...suffix).
The OData endpoint will be ${ONEC_BASE_URL}/odata/standard.odata/.
Demo Prompts
Try these natural-language prompts in your MCP client:
"List all document types in the 1C database that contain 'Реализация' in the name."
"Find invoice ТД-00123 dated 2026-03-01 — show its lines and total amount."
"Get the last 50 sales documents from the past week, ordered by date descending."
"Read the 'Цены номенклатуры' information register for product UUID
abc-123."
"Create a new RealizationOfGoodsAndServices document for counterparty 'ООО Ромашка' with two product lines."
"Run an OData query:
Catalog_НоменклатураwhereDescriptioncontains 'кофе', expandПроизводитель, top 20."
"Get the balance report from
/hs/reports/balance?date=2026-04-01and summarize it."
Development
pnpm install
pnpm --filter @theyahia/aprovodka build
pnpm --filter @theyahia/aprovodka test
pnpm --filter @theyahia/aprovodka dev # tsx watch modeProject layout:
servers/aprovodka/
├── src/
│ ├── index.ts — entry point (runServer; version + docstring)
│ ├── server.ts — server factory, module config, tool registration
│ ├── client.ts — functional API + buildKeyedPath + escapeODataString + GUID guard
│ ├── validation.ts — shared zod field schemas (refKeySchema, odataDate, odataDateTime)
│ ├── types.ts — OData TypeScript types
│ ├── lib/
│ │ └── errors.ts — parse Russian 1C errors → category + recovery hint
│ └── tools/
│ ├── catalogs.ts ├── documents.ts ├── registers.ts
│ ├── accounting.ts ├── constants.ts ├── shortcuts.ts
│ ├── metadata.ts — discovery (list_entities, get_document_by_number, get_metadata, describe_entity)
│ ├── batch.ts ├── change-tracking.ts
│ ├── odata-query.ts └── reports.ts
└── tests/
├── client.test.ts ├── server.test.ts ├── tools.test.ts
├── batch.test.ts ├── change-tracking.test.ts └── error-parsing.test.tsLicense
MIT — see LICENSE.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
AlicenseBqualityAmaintenanceMCP server for 1C:Enterprise ERP with 35 tools: metadata inspection, document CRUD, register queries, and BSP integration. First MCP server for Russian ERP systems (300,000+ organizations). JSON-RPC 2.0 compliant BSL implementation.Last updated5130MIT- Flicense-qualityDmaintenanceActs as a bridge between AI agents (Claude, Cursor) and 1C:Enterprise databases, enabling metadata retrieval, configuration analysis, and code generation through natural language using the MCP protocol.Last updated
- Alicense-qualityAmaintenanceIntegrates AI agents with 1C:Enterprise databases via MCP and REST API, supporting a built-in HTTP server (no Python required) or a Python proxy mode.Last updated216GPL 3.0
- Alicense-qualityDmaintenanceMCP server for RAG-based search over 1C Enterprise configuration documentation, enabling natural language queries to find objects like справочники, документы, and отчеты.Last updatedMIT
Related MCP Connectors
Read-only MCP server for ClassQuill, a tutoring-business-management platform.
Unofficial read-only MCP server for VeryChic hotel offers
Brazilian fiscal MCP server - issue NF-e, NFC-e, NFS-e, CT-e, MDF-e and DC-e via SEFAZ.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/theYahia/aprovodka'
If you have feedback or need assistance with the MCP directory API, please join our Discord server