CAT
/MCP
SkillsMCPMarketplacesDigestToolsAdvertise

This week in Claude

Every Monday: Claude Code, Agent SDK, MCP, and the Anthropic platform moves worth your time.

Skills by Category
Frontend DevelopmentBackend & APIsTesting & QASecurityDevOps & CI/CDGit & Pull RequestsDocumentationCode Review & QualityAI & Agent BuildingSkill Development
MCP Servers by Category
Sales & MarketingWeb & Browser AutomationDatabasesAI & LLM ToolsCloud & InfrastructureCommunication & MessagingDeveloper ToolsDesign & CreativeDocuments & KnowledgeSearch & Web Crawling
Marketplaces by Category
AI Agents & OrchestrationLLM IntegrationDevelopment ToolsFrontend & UIBackend & APIsDatabasesTesting & Code QualityDevOps & CloudSecurity & ComplianceGit & Version Control

Cross AI Tools

Discover Claude Code plugins, extensions, and tools. Automatically updated directory of Anthropic Claude AI marketplaces with development tools, productivity plugins, and integrations.

Resources

  • Browse Skills
  • Browse MCP Servers
  • Browse Marketplaces
  • Plugins Reference

Community

  • About
  • Tools
  • Feedback
  • Privacy Policy
  • Advertise

Built for the Claude Code community with Claude Code by @mertduzgun

Independent project, not affiliated with Anthropic

1c-rest-mcp

theyahia/1c-rest-mcp
6STDIOregistry active
Summary

Connects Claude to 1C Enterprise ERP systems via OData 3.0 REST API, exposing nine tools for reading and writing catalogs, documents, and registers. You can query entities with standard OData operators like $filter and $orderby, create and update documents via POST and PATCH, pull reports from HTTP services, and search documents by number. Includes skill wrappers for common patterns like catalog lookups and date-filtered document queries. Primarily targets Russian market 1C deployments. Configure with your 1C server URL and credentials, optionally limit exposed tools via ONEC_SERVICES to reduce LLM context. Ships with both stdio and HTTP transports, the latter exposing POST /mcp for streamable requests.

CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
Keep your Mac awake
Keep your Mac awake
Keep your Mac awake while Claude Code and 40+ AI agents run. Sleeps when they're idle.
One time payment $9 →
Context.devContext.dev
Context.dev
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Make money from your Skills
Make money from your Skills
On Capafy, your Skill runs online 24/7 as an agent product, and you get paid every time someone uses it.
Start earning →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →
CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
Keep your Mac awake
Keep your Mac awake
Keep your Mac awake while Claude Code and 40+ AI agents run. Sleeps when they're idle.
One time payment $9 →
Context.devContext.dev
Context.dev
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Make money from your Skills
Make money from your Skills
On Capafy, your Skill runs online 24/7 as an agent product, and you get paid every time someone uses it.
Start earning →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →

@theyahia/1c-rest-mcp

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.

npm License: MIT


Migrating from v1.x

If you starred or used v1.x, the v2.0.0 release introduces a few breaking changes:

  • HTTP transport env var renamed: PORT=3000 → HTTP_PORT=3000.
  • Removed separate HTTP binary: 1c-rest-mcp-http is gone. Use 1c-rest-mcp --http or HTTP_PORT=3000 1c-rest-mcp instead.
  • Single bin entrypoint: dist/http.js is no longer published.
  • Internal client: now extends @theyahia/mcp-core's BaseHttpClient with BasicAuthStrategy. The exported functional API (oneCGet/oneCPost/oneCPatch/buildODataPath) is unchanged, so tool code keeps working.
  • Tool errors: now returned as MCP-spec CallToolResult with isError: true (via withErrorHandling from @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_SERVICES env var filters which optional modules load (discovery meta is always on). See Environment Variables.

Discovery — meta (always enabled)

ToolDescription
list_entitiesList all available 1C OData entities (catalogs / documents / registers / reports). Use this first when working with an unfamiliar database.
get_document_by_numberLocate a 1C document by its number (e.g. invoice ТД-00123 dated 2026-03-01). Convenience wrapper over $filter.
get_metadataReturn the raw OData $metadata (EDMX/XML) describing every entity, field and type.
describe_entityList an entity's fields by inspecting one sample record ($top=1) — cheaper than full $metadata.

Catalogs — catalogs

ToolDescription
get_catalogsRead 1C catalog data. Supports $filter, $select, $orderby, $top, $skip.
create_catalog_itemCreate a new catalog item via OData POST (e.g. add a Контрагент or Номенклатура).
update_catalog_itemUpdate a catalog item via OData PATCH (by Ref_Key GUID).

Documents — documents

ToolDescription
get_documentsRead 1C documents with full OData filtering.
create_documentCreate a new document via OData POST.
update_documentUpdate an existing document via OData PATCH (by Ref_Key GUID).
post_documentPost (провести) a document via the OData bound action Post(). operational toggles оперативное проведение.
unpost_documentUnpost (отменить проведение) a document via Unpost().
delete_documentPhysically delete a document via OData DELETE. Prefer set_deletion_mark for a recoverable soft delete.
get_document_linesRead a document's tabular section (строки, e.g. Товары) by Ref_Key via $expand. Section name is config-specific — discover via get_metadata/describe_entity.

Registers — registers

ToolDescription
get_registerRead information or accumulation register data.
write_information_registerWrite a record into an independent information register (POST on InformationRegister_*).
get_accumulation_balanceAccumulation-register balances (остатки) via the OData virtual method Balance(Period=…,Condition=…).

Accounting — accounting

ToolDescription
get_accounting_registerRead accounting-register records (AccountingRegister_*, e.g. Хозрасчетный — проводки).

Constants — constants

ToolDescription
get_constantRead a 1C constant value (Constant_*).
set_constantWrite a 1C constant value via OData PATCH (Value field).

Shortcuts — shortcuts

ToolDescription
find_by_descriptionFuzzy-find items by a substring of Description (OData substringof).
get_by_keyFetch a single record by its Ref_Key (GUID).
count_entitiesCount records of an entity ($inlinecount, $top=0) with an optional filter.
set_deletion_markSet/clear the DeletionMark on a catalog item or document (recoverable soft delete).
get_recent_documentsMost recent documents of a type, ordered by Date desc (optionally posted only).

Reports — reports

ToolDescription
get_reportGet a 1C report from a relative HTTP service URL (/hs/...). Restricted to the configured ONEC_BASE_URL origin.

Generic OData — odata

ToolDescription
odata_queryRun an arbitrary OData 3.0 query. Supports $filter, $select, $expand, $orderby, $top, $skip, $inlinecount.

Batch — batch

1C has no native OData $batch endpoint. These tools dispatch N requests in parallel (bounded concurrency) and report per-item success/failure — a partial failure never aborts the batch.

ToolDescription
batch_create_documentsCreate N documents (1..100) of one type in parallel.
batch_update_catalog_itemsPATCH N catalog items by Ref_Key in parallel.
batch_queryRun N OData GET queries (1..50) in parallel; combine results client-side.

Change tracking — changes

1C has no webhooks / event subscriptions — only polling.

ToolDescription
poll_changes_sincePull rows modified since a timestamp cursor ($filter on a date field); returns a next_cursor for the next poll.
list_subscriptionsExplicit no-op documenting the absence of 1C webhooks; redirects to poll_changes_since.

Note on write/posting tools. post_document/unpost_document/delete_document, get_accumulation_balance (virtual Balance) and write_information_register follow the 1C:Enterprise OData 3.0 spec. URL/parameter shapes should be validated against your specific 1C configuration's $metadata (use get_metadata) before relying on them in production.


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):

PromptArgumentsWhat it does
inventory-database—list_entities → group by prefix → count_entities → describe_entity to map an unfamiliar base.
find-and-post-documentquery, document_type?Finds a document, shows its fields + lines, then posts it only after explicit human confirmation.
reconcile-balancesregister_name, period?Compares get_accumulation_balance (остатки) against get_register movements and reports discrepancies.

Quick Start

Claude Desktop

Add to claude_desktop_config.json:

{
  "mcpServers": {
    "1c": {
      "command": "npx",
      "args": ["-y", "@theyahia/1c-rest-mcp"],
      "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": {
    "1c": {
      "command": "npx",
      "args": ["-y", "@theyahia/1c-rest-mcp"],
      "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/1c-rest-mcp
# or: npx @theyahia/1c-rest-mcp --http

Endpoints:

  • POST /mcp — MCP requests
  • GET /mcp — SSE event stream (per session)
  • DELETE /mcp — session termination
  • GET /health — { status: "ok", version, tools, uptime, memory_mb }

Includes session management (mcp-session-id header), CORS, graceful shutdown.


Environment Variables

VariableRequiredDescription
ONEC_BASE_URLyesBase URL of the 1C HTTP server (e.g. http://localhost:8080/base).
ONEC_LOGINyesLogin for HTTP Basic auth.
ONEC_PASSWORDyesPassword for HTTP Basic auth.
ONEC_SERVICESnoComma-separated module list (default: all).
HTTP_PORTnoIf 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/1c-rest-mcp

The 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:

  1. Enable HTTP services and OData publication in the 1C Designer.
  2. Create a 1C user with the role required to read/write the entities you need.
  3. Use that user's login/password as ONEC_LOGIN / ONEC_PASSWORD.
  4. The ONEC_BASE_URL is 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_Номенклатура where Description contains 'кофе', expand Производитель, top 20."

"Get the balance report from /hs/reports/balance?date=2026-04-01 and summarize it."


Development

npm install
npm run build
npm test
npm run dev   # tsx watch mode

Project layout:

.
├── 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.ts

License

MIT — see LICENSE.

Featured
CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
Keep your Mac awake
Keep your Mac awake
Keep your Mac awake while Claude Code and 40+ AI agents run. Sleeps when they're idle.
One time payment $9 →
Context.devContext.dev
Context.dev
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Make money from your Skills
Make money from your Skills
On Capafy, your Skill runs online 24/7 as an agent product, and you get paid every time someone uses it.
Start earning →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →
Registryactive
Package@theyahia/1c-rest-mcp
TransportSTDIO
UpdatedMay 1, 2026
View on GitHub