MCP-DB-Client
MCP layer for 1C
Install / Use
claude mcp add DitriXNew -- npx -y github:DitriXNew/MCP-DB-ClientIf the server publishes to npm under a different name, use that package instead β check the repo README.
MCP Server
Model Context Protocol server
Quality Score
Category
Development & EngineeringSupported Platforms
Tags
Our assessment of MCP-DB-Client
MCP-DB-Client scores 62/100 on our quality scale, 4029th of 4,597 Development & Engineering skills we index.
Its MCP Server is 42 KB long, well organised into 63 sections with 28 code examples: long enough that it reads more like full documentation than a focused instruction file, which agents can find harder to follow.
It has 43 GitHub stars, so there is little community track record yet; judge it on its content.
Maintenance, license and trust
- The repository was last updated about 4 months ago. That is recent enough to be usable, but agent tooling moves fast, so check the instructions against your agent's current version.
- It is released under the MIT license, a permissive license that allows use, modification and commercial use with attribution.
- Its trust signals score 85/100, with 2 cautions from licensing, adoption, age or documentation. These come from repository metadata, not a code audit β read the skill file before letting an agent act on it.
Safety scan
No issues foundOur scan of the whole file found no instruction hijacking, hidden characters, credential access, data exfiltration or destructive commands. An AI review of the same text found nothing harmful.
AI review by kimi-k2.7-code on 2026-10-10. Automated pattern scan on 2026-10-10. It catches known dangerous patterns, not every risk β read a skill before letting an agent act on it.
MCP-DB-Client compared with similar skills
All 4 of these similar skills score higher than MCP-DB-Client; compare them before choosing.
| Skill | Score | Stars | Updated | Format |
|---|---|---|---|---|
| MCP-DB-Client (this skill)by DitriXNew | 62 | 43 | 4mo ago | MCP Server |
| Agent-Reachby Panniantong | 100 | 95.5k | 2d ago | CLAUDE.md |
| headroomby headroomlabs-ai | 100 | 74.9k | today | CLAUDE.md |
| CowAgentby zhayujie | 100 | 47.3k | today | CLAUDE.md |
| ai-job-searchby MadsLorentzen | 100 | 45.7k | 2d ago | CLAUDE.md |
Frequently asked questions
- How do I install MCP-DB-Client?
- Run
claude mcp add DitriXNew -- npx -y github:DitriXNew/MCP-DB-Client. The install tabs above show the steps for each supported agent. - Which AI agents does MCP-DB-Client work with?
- It is written for Claude Code and Claude Desktop, as a MCP Server file. Other agents that read the same format can often use it too.
- Is MCP-DB-Client safe to use?
- Our scan of the whole file found no instruction hijacking, hidden characters, credential access, data exfiltration or destructive commands. An AI review of the same text found nothing harmful. It is MIT-licensed and scores 85/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
- Is MCP-DB-Client still maintained?
- The repository was last updated about 4 months ago. That is recent enough to be usable, but agent tooling moves fast, so check the instructions against your agent's current version.
Skill content
View source on GitHubhttp1c β MCP Server Framework for 1C:Enterprise
http1c is a framework for building Model Context Protocol (MCP) servers from 1C:Enterprise. It provides a native component (DLL) that handles the MCP transport layer and a reference 1C data processor that demonstrates how to implement tools, resources, and prompts.
Use it as a template to expose any 1C business logic β catalogs, documents, reports, calculations β to AI applications like VS Code Copilot, Claude Desktop, and other MCP-compatible clients.
Core Concept
The project is intentionally split into two layers with different responsibilities.
Native component responsibilities
The DLL is the MCP engine. It handles protocol and transport details that should not be reimplemented in 1C business code:
- HTTP/SSE transport
- JSON-RPC request/response lifecycle
- MCP session management
- authentication, origin validation, and rate limiting
- pagination, notifications, and progress streaming
- converting 1C responses into valid MCP replies
1C responsibilities
The 1C side owns business logic. A 1C developer should work at the level of tools, resources, and prompts, not at the level of MCP internals:
- describe a tool/resource/prompt in BSL
- register it in the component
- handle the incoming call in 1C
- run any required client-side or server-side 1C logic
- return the result or send progress updates
Why the project is designed this way
The goal is to let a 1C developer publish almost any 1C functionality through MCP without having to understand HTTP, JSON-RPC, SSE, session handling, or MCP message formatting.
In other words:
- the component knows how to be an MCP server
- 1C knows what the tool actually does
This keeps the integration point simple. To add new functionality, a 1C developer does not need to change the native transport layer. They only add or update 1C definitions and handlers.
Mental model for a 1C developer
From the 1C side, the workflow is intentionally simple:
- Define the MCP object in BSL.
- Register it in the component.
- Receive the request through
ExternalEvent. - Execute arbitrary 1C logic.
- Return the final result, and optionally send progress while the operation is running.
This means the project is not a fixed set of built-in utilities. It is an MCP transport and protocol layer for 1C, with the actual application behavior defined in 1C code.
Key Features
- Full MCP protocol support β tools, resources, prompts with
listChangednotifications - Streamable HTTP transport β
POST /mcpfor requests,GET /mcpfor SSE notification stream - Session management β
Mcp-Session-Idheader, UUID v4 sessions per spec - Security β Origin validation (DNS rebinding protection), Bearer token auth, rate limiting
- Progress streaming β SSE-based progress notifications for long-running operations
- Pagination β cursor-based pagination for
tools/list,resources/list,prompts/list - Tool annotations β
readOnlyHint,destructiveHint,idempotentHint,openWorldHint - Output schemas β typed response contracts for tool results
- Dynamic registration β register/update tools, resources, prompts at runtime from 1C
- Built-in semantic search (RAG) β optional
search/grep/get_segment/list_collectionstools backed by a Rust search core (rcore) with dense/keyword/hybrid retrieval (see Search Subsystem)
Architecture
βββββββββββββββββββ HTTP/SSE ββββββββββββββββββββ ExternalEvent ββββββββββββββββββββ
β MCP Client ββββββββββββββββββββΊβ Native DLL βββββββββββββββββββββΊβ 1C:Enterprise β
β (VS Code, etc) β POST/GET /mcp β (HttpServer) β ToolCall, etc. β (BSL Module) β
βββββββββββββββββββ ββββββββββββββββββββ ββββββββββββββββββββ
- A 1C form loads the native add-in and starts the HTTP server.
- An MCP client connects to
http://localhost:PORT/mcp. - The native component handles protocol-level messages (initialize, tools/list, etc.).
- Business logic requests (tools/call, resources/read, prompts/get) are forwarded to 1C via
ExternalEvent. - The 1C module processes the request and sends results back through
SendResponse. - The DLL wraps the result in a JSON-RPC response and returns it to the client.
Quick Start
1. Build the DLL
build/build-http1c-dll-release.sh
Requires Visual Studio Build Tools 2019+ with C++ support.
2. Package the add-in
Packaging is done automatically at the end of the build script. To run it standalone:
build/package-http1c-addin.sh
3. Compile the EPF (requires OneScript)
build/compile-http1c-epf.sh
4. Open in 1C
- Open the
http1c.epfdata processor in your 1C infobase. The MCP server starts automatically on open (attaches the component, registers the tool / resource / prompt catalogs, and begins listening on port8888by default). - To restart it on a different port, set the port field and click Connect.
(The
Connectbutton remains available for manual control.) - Configure your MCP client to connect to
http://localhost:PORT/mcp.
5. VS Code configuration
Add to your .vscode/mcp.json:
Without authentication:
{
"servers": {
"1c-mcp-server": {
"type": "sse",
"url": "http://localhost:8888/mcp"
}
}
}
With Bearer token authentication:
{
"servers": {
"1c-mcp-server": {
"type": "sse",
"url": "http://localhost:8888/mcp",
"headers": {
"Authorization": "Bearer ${input:mcpToken}"
}
}
},
"inputs": [
{
"id": "mcpToken",
"type": "promptString",
"description": "Bearer token for the 1C MCP server",
"password": true
}
]
}
When using the ${input:...} syntax, VS Code will prompt for the token each time the MCP server connection starts. The entered value is masked as a password.
Important: The token in VS Code must match the value set on the 1C side. If the server has no token configured (empty string), authentication is disabled and no
headersare needed. If a token is set on the server but VS Code sends noAuthorizationheader, the server responds with HTTP 401 and VS Code may try to start an OAuth flow β this is not supported; use theheadersapproach above instead.
How to Build Your Own MCP Server from 1C
The reference data processor (http-1c-dp) is a working example. Use it as a starting point:
Registering Tools
Tools are executable functions that AI clients can invoke. Define them as JSON structures and register with the component:
// Create a tool definition
Tool = NewTool("myTool", "Description of what this tool does");
AddToolParam(Tool, "paramName", "string", "Parameter description");
AddToolAnnotations(Tool, True); // readOnly, safe
// Define output schema (optional, helps clients validate responses)
Schema = NewOutputSchema();
AddOutputProperty(Schema, "result", "string", "Result description");
SetToolOutputSchema(Tool, Schema);
// Register all tools
Tools = New Array;
Tools.Add(Tool);
Await Component.RegisterToolsAsync(SerializeToJson(Tools));
Handle the tool call in the ExternalEvent handler:
&AtClient
Async Procedure ExternalEvent(Source, Event, Data)
If Source <> "HttpServer" Then Return; EndIf;
If Event = "ToolCall" Then ProcessToolCall(Data); EndIf;
EndProcedure
Registering Resources
Resources provide contextual data to AI clients (metadata, file contents, etc.):
Resource = New Structure;
Resource.Insert("uri", "1c://metadata/catalogs");
Resource.Insert("name", "1C Catalogs");
Resource.Insert("description", "List of all catalog metadata objects");
Resource.Insert("mimeType", "application/json");
Resources = New Array;
Resources.Add(Resource);
Await Component.RegisterResourcesAsync(SerializeToJson(Resources));
Handle resource reads via "ResourceRead" events.
Registering Prompts
Prompts are reusable interaction templates:
Prompt = New Structure;
Prompt.Insert("name", "analyzeData");
Prompt.Insert("description", "Prompt for analyzing 1C data");
PromptArgs = New Array;
Arg = New Structure("name,description,required", "topic", "Analysis topic", False);
PromptArgs.Add(Arg);
Prompt.Insert("arguments", PromptArgs);
Prompts = New Array;
Prompts.Add(Prompt);
Await Component.RegisterPromptsAsync(SerializeToJson(Prompts));
Handle prompt gets via "PromptGet" events.
Dynamic Updates
Call RegisterToolsAsync() / RegisterResourcesAsync() / RegisterPromptsAsync() again at any time with an updated list. The component will automatically send notifications/tools/list_changed (or equivalent) to all connected MCP clients.
Security Configuration
The component supports optional Bearer token authentication. When a token is set, every HTTP request must include the Authorization: Bearer <token> header or it will be rejected with HTTP 401.
// Enable authentication β all requests must include Authorization: Bearer my-secret-token
Component.AuthToken = "my-secret-token";
// Disable authentication β any request is accepted
Component.AuthToken = "";
How it works:
| Server token | Client header | Result |
|---|---|---|
| Empty (default) | None needed | All requests accepted |
| "my-secret" | Authorization: Bearer my-secret | Request accepted |
| "my-secret" | Missing or wrong token | HTTP 401 Unauthorized |
Changing the token at runtime: You can set or clear AuthToken while the server is running. The change takes effect immediately for all new requests β no restart needed.
VS Code note: If the server returns 401, VS Code may attempt an OAuth 2.0 PKCE authorization flow (redirecting to /authorize). This is not supported by the component. Always configure the token in .vscode/mcp.json via the headers field (see VS Code configuration above).
The component also enforces:
- Origin validation β only requests from
localhost/127.0.0.1/ VS Code origins are accepted - Rate limiting β token-bucket algorithm (60 burst, 20/sec)
- Session management β
Mcp-Session-Idassigned on initialize, validated on subsequent requests. A request presenting an unknown session id is not rejected with 404 β the session is transparently resurrected under the presented id, so a server restart does not strand connected MCP clients that never re-initialize (logged asMCP: unknown session ... resurrected (server restart?))
Native Component API
Methods exposed to 1C (English / Russian names). All of these are callable
asynchronously from BSL via the platform-generated BeginCalling<Name> wrappers
(BeginCallingStartListen, β¦):
| Method | Description |
|--------|-------------|
| StartListen(port) / ΠΠ°ΡΠ°ΡΡΠΡΠΎΡΠ»ΡΡΠΈΠ²Π°Π½ΠΈΠ΅ | Start the HTTP server on the given port |
| StopListen() / ΠΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΠΡΠΎΡΠ»ΡΡΠΈΠ²Π°Π½ΠΈΠ΅ | Stop the server and unblock all pending requests |
| SendResponse(json) / ΠΡΠΏΡΠ°Π²ΠΈΡΡΠΡΠ²Π΅Ρ | Send the final response for a pending request |
| SendProgress(id, progress, total, message) / ΠΡΠΏΡΠ°Π²ΠΈΡΡΠΡΠΎΠ³ΡΠ΅ΡΡ | Send a progress notification for a pending request |
| ApplyConfig(json) / ΠΡΠΈΠΌΠ΅Π½ΠΈΡΡΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ | Async-safe config sink (see below). Applies any subset of logging_enabled, log_path, timeout, tools_json, resources_json, prompts_json, auth_token in one call |
| GetStatus() / ΠΠΎΠ»ΡΡΠΈΡΡΠ‘ΡΠ°ΡΡΡ | Async-safe read of the status JSON (same payload as the Status property) |
| RagDispatch(method, payload) / RagΠΡΠΏΠΎΠ»Π½ΠΈΡΡ | Drive the Rust search core (rcore) β see Search Subsystem |
| TakeScreenshot(pid, format, quality, grayscale) / Π‘Π΄Π΅Π»Π°ΡΡΠ‘ΠΊΡΠΈΠ½ΡΠΎΡ | Capture windows of a process as base64 images |
| GetProcessId() / ΠΠΎΠ»ΡΡΠΈΡΡΠΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΡΠΎΡΠ΅ΡΡΠ° |
Truncated for display β read the full file on GitHub.
Related Skills
Agent-Reach
95.5kGive your AI agent eyes to see the entire internet. Read & search Twitter, Reddit, YouTube, GitHub, Bilibili, XiaoHongShu β one CLI, zero API fees.
headroom
74.9kCompress tool outputs, logs, files, and RAG chunks before they reach the LLM. 20% fewer tokens for coding agents, 60-95% fewer tokens for JSON, same answers. Library, proxy, MCP server.
CowAgent
47.3kOpen-source personal AI assistant & Agent Harness. Plans tasks, runs tools and skills, self-evolves with memory and knowledge. Multi-agent, multi-model, multi-channel. Lightweight, extensible, one-line install.
ai-job-search
45.7kThe job search that runs on your machine. AI job application framework built on Claude Code: evaluate postings, tailor CVs, write cover letters, prep interviews. Fork it and own it.
Languages
Trust signals
From repository metadata: license, adoption, age and documentation. Not a code audit β see the Safety scan above for what the skill file itself contains.
