Skip to main content
Glama

1C AI MCP - Servidor MCP para 1С:Напарник

Docker Hub License

Servidor MCP (Model Context Protocol) para integrar IDE con la API de 1С:Напарник. Construido sobre FastMCP (Python), empaquetado en Docker. Funciona con Cursor, Claude Code y cualquier cliente compatible con MCP.

12 herramientas: análisis de código (verificación, revisión, refactorización) y búsqueda en documentación (ITS, plataforma, configuraciones).

Basado en la idea de comol/1c-code-checker con correcciones del formato de API (errores 422), tomadas de SteelMorgan/spring-mcp-1c-copilot.

Requisitos previos

  • Docker (o Docker Desktop)

  • Token de 1С:Напарник - obtener en code.1c.ai (se requiere suscripción a ITS)

Related MCP server: 1C_MCP_SERVER_OWN

Inicio rápido

Opción A: Imagen lista de Docker Hub (recomendada)

docker run -d --name 1c-ai-mcp -p 8007:8007 \
  -e ONEC_AI_TOKEN="ваш-токен" \
  desko77/1c-ai-mcp:latest

O mediante Docker Compose - cree el archivo docker-compose.yml:

services:
  1c-ai-mcp:
    image: desko77/1c-ai-mcp:latest
    container_name: 1c-ai-mcp
    ports:
      - "8007:8007"
    environment:
      ONEC_AI_TOKEN: "${ONEC_AI_TOKEN}"
    restart: always
# Создать .env с токеном (не попадает в git)
echo 'ONEC_AI_TOKEN=ваш-токен' > .env

# Запустить
docker compose up -d

Opción B: Compilación desde el código fuente

git clone https://github.com/Desko77/1c-ai-mcp.git
cd 1c-ai-mcp

# Создать .env с токеном
echo 'ONEC_AI_TOKEN=ваш-токен' > .env

# Собрать и запустить
docker compose up -d --build

Verificación de funcionamiento

# Должен вернуть HTTP 200
curl http://localhost:8007/mcp

Conexión a IDE

Cursor

Agregue en ~/.cursor/mcp.json:

{
  "mcpServers": {
    "1c-naparnik": {
      "url": "http://localhost:8007/mcp"
    }
  }
}

Claude Code

Agregue en ~/.claude/settings.json:

{
  "mcpServers": {
    "1c-naparnik": {
      "url": "http://localhost:8007/mcp"
    }
  }
}

Otros clientes MCP

Endpoint: http://localhost:8007/mcp Transporte: Streamable HTTP (por defecto) o SSE (USESSE=true).

Herramientas

Análisis de código

check_1c_code

Verificación de código 1С: sintaxis, lógica, rendimiento. En modo directo, la sintaxis se verifica mediante el verificador de sintaxis upstream.

Parámetro

Tipo

Descripción

code

string

Código 1С para verificar

check_type

string

syntax (por defecto), logic, performance

ask_1c_ai

Pregunta arbitraria a 1С:Напарник. Guarda el contexto del diálogo entre llamadas.

Parámetro

Tipo

Descripción

question

string

Pregunta

create_new_session

bool

Nueva sesión (por defecto false - reutiliza la anterior)

review_1c_code

Revisión de código: estilo, estándares ITS, nomenclatura, estructura, legibilidad. No verifica sintaxis.

Parámetro

Tipo

Descripción

code

string

Código 1С para revisión

rewrite_1c_code

La IA propone su versión mejorada del código con explicación de los cambios.

Parámetro

Tipo

Descripción

code

string

Código 1С para reescribir

goal

string

Dirección: optimize, readability, error handling (opcional)

modify_1c_code

Modificación del código según instrucción explícita. Si no se especifica código, genera uno nuevo.

Parámetro

Tipo

Descripción

instruction

string

Descripción de los cambios requeridos

code

string

Código fuente (opcional)

explain_1c_syntax

Explicación de un elemento específico de la sintaxis de 1С.

Parámetro

Tipo

Descripción

syntax_element

string

Elemento de sintaxis

context

string

Contexto de uso (opcional)

Documentación y ayuda

its_help

Búsqueda en la base de conocimientos ITS (estándares, metodologías, artículos). Devuelve IDs de documentos para fetch_its.

Parámetro

Tipo

Descripción

query

string

Consulta de búsqueda

fetch_its

Lectura de un documento ITS por identificador. Se usa después de its_help.

Parámetro

Tipo

Descripción

id

string

ID del documento (root, v8std, its-...-hdoc)

search_1c_documentation

Búsqueda en la documentación de la plataforma 1С:Предприятие para una versión específica.

Parámetro

Tipo

Descripción

query

string

Consulta de búsqueda

version

string

Versión (por defecto v8.5.1)

onec_help

Búsqueda en la documentación de la plataforma (última versión). Como search_1c_documentation, pero sin especificar versión.

Parámetro

Tipo

Descripción

query

string

Consulta de búsqueda

diff_1c_documentation_versions

Comparación de la documentación de la plataforma entre dos versiones.

Parámetro

Tipo

Descripción

version_a

string

Versión anterior (por ejemplo, v8.3.25)

version_b

string

Versión posterior (por ejemplo, v8.5.1)

query

string

Área temática (opcional)

config_help

Búsqueda de documentación sobre configuraciones aplicadas (ERP, Бухгалтерия, ЗУП, УТ, etc.).

Parámetro

Tipo

Descripción

query

string

Consulta de búsqueda

config_name

string

Nombre de la configuración (opcional, se toma de ONEC_CONFIG_NAME)

Configuración

Todos los parámetros se pasan mediante variables de entorno.

Variable

Obligatoria

Por defecto

Descripción

ONEC_AI_TOKEN

*

-

Token de API de 1С:Напарник

ONEC_AI_TOKEN_FILE

No

-

Ruta al archivo con el token (Docker Secrets)

ONEC_AI_BASE_URL

No

https://code.1c.ai

URL base de la API

ONEC_AI_SKILL_NAME

No

raw

Skill para discusiones (raw, custom)

ONEC_AI_AUTH_FORMAT

No

plain

Formato de Authorization: plain o bearer

ONEC_AI_TIMEOUT

No

120

Tiempo de espera de solicitudes HTTP (seg)

ONEC_CONFIG_NAME

No

-

Configuración para config_help (por ejemplo, ERP, ЗУП)

MCP_TOOL_CALL_MODE

No

standard

Modo: standard (prompts) / direct (llamada directa upstream)

ONEC_AI_INPUT_MAX_LENGTH

No

100000

Longitud máxima de datos de entrada (caracteres)

HTTP_PORT

No

8007

Puerto del servidor MCP

USESSE

No

false

Transporte: true=SSE, false=streamable-http

MAX_ACTIVE_SESSIONS

No

10

Límite de sesiones simultáneas

SESSION_TTL

No

3600

TTL de sesión (seg)

LOG_LEVEL

No

INFO

Nivel de registro (DEBUG, INFO, WARNING)

* Es obligatorio ONEC_AI_TOKEN o ONEC_AI_TOKEN_FILE.

Docker Secrets

Para entornos de producción, el token se puede pasar mediante un archivo:

services:
  1c-ai-mcp:
    image: desko77/1c-ai-mcp:latest
    environment:
      ONEC_AI_TOKEN_FILE: /run/secrets/onec_token
    secrets:
      - onec_token

secrets:
  onec_token:
    file: ./onec_token.txt

Modo Directo

Con MCP_TOOL_CALL_MODE=direct, las herramientas de documentación y check_1c_code (syntax) llaman directamente a las herramientas upstream de 1С:Напарник por nombre, en lugar de prompts de texto. Esto da resultados más precisos.

Herramientas upstream:

  • mcp__knowledge-hub__Search_ITS - para its_help

  • mcp__knowledge-hub__Fetch_ITS - para fetch_its

  • mcp__knowledge-hub__Search_Documentation - para search_1c_documentation, onec_help

  • mcp__knowledge-hub__Diff_Documentation_Versions - para diff_1c_documentation_versions

  • mcp__syntax-checker__validate - para check_1c_code (syntax)

Ante un fallo de la llamada directa, se produce un fallback automático al modo prompt. Por defecto es standard para compatibilidad inversa.

Arquitectura

MCP-клиент (Cursor / Claude Code)
  -> FastMCP HTTP endpoint (:8007/mcp)
    -> mcp_server.py (обработчики инструментов)
      -> OneCApiClient (HTTP-клиент)
        -> code.1c.ai API (SSE-стриминг)
          -> парсинг ответа -> возврат клиенту

Dos modos de funcionamiento

  • Modo estándar (por defecto): las herramientas forman prompts de texto y los envían a la API. Las herramientas de documentación usan la cadena de herramientas: el modelo decide qué herramienta del servidor llamar.

  • Modo directo (MCP_TOOL_CALL_MODE=direct): las herramientas solicitan explícitamente una herramienta upstream específica por nombre, comparan la respuesta y confirman la llamada. Ante un fallo, se produce un fallback automático al modo estándar.

Analizador SSE

Soporta tres formatos de respuesta de la API:

Formato

Estructura

Tipo

Legacy

{"content_delta": "texto"}

Incremental

OpenAI-like

{"choices": [{"delta": {"content": "texto"}}]}

Incremental

Completed

{"content": {"text": "texto completo"}}

Final

Además:

  • Eliminación automática de bloques <thinking>/ thinking de las respuestas

  • Normalización Unicode y limpieza de caracteres de control

  • Fallback al recibir tool_calls - repetición de la solicitud con skill_name="raw"

  • Recorte de datos de entrada según ONEC_AI_INPUT_MAX_LENGTH

Desarrollo

Ejecución local sin Docker

pip install -r requirements.txt
export ONEC_AI_TOKEN="ваш-токен"
python main.py

Estructura del proyecto

main.py                       # Точка входа
src/
  mcp_server.py                # MCP-инструменты (@mcp.tool)
  onec_api_client.py           # HTTP-клиент к API 1С:Напарник
Dockerfile                     # Dockerfile
docker-compose.yml             # Compose для сборки из исходников
tests/                         # Тестовые скрипты
.github/workflows/
  docker-publish.yml           # CI: сборка и публикация в Docker Hub

Agradecimientos

Licencia

MIT - ver LICENSE

A
license - permissive license
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

View all related MCP servers

Related MCP Connectors

  • Get up-to-date, version-specific documentation and code examples from official sources directly in…

  • Code intelligence for coding agents: semantic, AST, graph, and full-text search. 279+ languages.

  • Provide AI-powered real-time analysis and intelligence on NPM packages, including security, depend…

View all MCP Connectors

Latest Blog Posts

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/serezhenkov-lab/1c-ai-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server