1C MCP Server with a FastAPI proxy
1C MCP Server
A 1C extension with an MCP HTTP service plus a Python FastAPI proxy that adds stdio transport, OAuth2 and Docker deployment
- 0 ★ on the repository
- Last commit
Extended access
Why this level
- The proxy stores the 1C user's login and password in environment variables
- The extension's HTTP service gives access to the published infobase's data and metadata
Install
- Works in
- Services
Manual install
cd src && python -m venv .venv && . .venv/bin/activate && pip install -r py_server/requirements.txt && python -m py_serverRuns the Python proxy locally with fastapi, uvicorn, httpx, pydantic and mcp as dependencies.
Access and checks
How we reviewExtended accessThe tool runs code or makes network calls and only reads external data.
- The proxy stores the 1C user's login and password in environment variables
- The extension's HTTP service gives access to the published infobase's data and metadata
This is third-party code. Review the repository files before installing.
What it does
The project offers two ways to connect an MCP client to 1C: directly to the extension's published mcp_APIBackend HTTP service, or through a Python FastAPI proxy that adds stdio transport for clients without HTTP support, OAuth2 authorization, and pass-through authentication into the 1C backend. The extension ships as a ready .cfe file, and the proxy runs locally via venv or in Docker with environment variables for the 1C infobase address, username and password. The repository includes example configs for Claude Code, Claude Desktop, Cursor and Kilo Code.
Who it is for. For 1C developers who need a ready MCP server with flexible transport and centralized authorization, not just a direct HTTP connection.
Good fit when
- You need stdio transport for an MCP client that cannot talk HTTP directly
- You need centralized OAuth2 authorization in front of the 1C backend
- Docker deployment with a ready compose file is more convenient for you
Not a fit when
- A direct HTTP connection to the extension without a proxy is enough
- You are not ready to publish the mcp_APIBackend HTTP service in your infobase
Example request
Connect to 1C through the MCP proxy and show the metadata of the Nomenclature catalogMCP
- Transport
- http, stdio
- Authentication
- API key
Environment variables
MCP_ONEC_URLrequired- URL of the published 1C infobase.
MCP_ONEC_USERNAMErequired- 1C user login.
MCP_ONEC_PASSWORDrequired, secret- 1C user password.
MCP_AUTH_MODE- Proxy authorization mode: none or oauth2.
Limitations
The extension has to be installed in the infobase and its HTTP service published; the README does not walk through importing the .cfe step by step. The 1C user password is passed to the proxy via environment variables. The project is small, with one author, no releases and no stars.
How to disable. Stop or remove the Python proxy, disable the mcp_APIBackend extension in the 1C infobase, and remove the server from your MCP client settings.
FAQ
Is the Python proxy required?
No, the README lists it as the recommended option for stdio transport and centralized authorization, but you can also connect directly to the extension's HTTP service.
How do I enable OAuth2?
Set the MCP_AUTH_MODE variable to oauth2 in the proxy configuration.
How is the 1C MCP Server with a FastAPI proxy different from other 1C MCP servers?
The project gives two ways to connect: directly to the published mcp_APIBackend HTTP service of the 1C extension or through a Python FastAPI proxy that adds a stdio transport for clients without HTTP, OAuth2 and Docker launch.
Is the Python proxy required and how do I enable OAuth2?
No, a client with HTTP support connects to the extension directly. The proxy is needed for stdio, OAuth2 and Docker. OAuth2 parameters are set in the proxy config, see the README. It works in Claude Code, Claude Desktop and Cursor.
Discussion
No questions or reviews yet.
Related
All 1C:Enterprise toolsMCP server inside 1C
1c_mcp
A 1C extension that runs an MCP server inside the infobase: metadata tools out of the box and custom tools in BSL
mcp-1c test-base server
mcp-1c
A 1C extension with two HTTP endpoints (query and exec) plus a Python MCP wrapper for Claude Code, built for a test base only
1C metadata MCP proxy (adapted fork)
1C_MCP_SERVER_OWN
A Python proxy between an MCP client and a 1C HTTP service: reads metadata, object structure and predefined data, with optional OAuth2
A 1C extension built on vladimir-kharin/1c_mcp that adds execution of arbitrary built-in-language code right in the infobase context
A 1C extension that runs an MCP server inside the 1C:Enterprise client and lets you write your own tools in BSL
A 1C external data processor with MCP and REST API: queries, metadata, event log and code execution without changing the configuration
README in short
The README describes the combination of a 1C extension and a Python FastAPI proxy with fastapi, uvicorn, httpx, pydantic and mcp as dependencies. It gives three ways to run it: installing the extension and publishing the HTTP service, running the proxy locally via venv, and running it in Docker with .env.docker.example. It lists the project layout: build with the .cfe, src with the sources, and mcp_client_settings with example client configs.