infaton-1c-mcp

Servidor MCP para 1C:Enterprise (ERP, Contabilidade, etc.) — 51 ferramentas para metadados, documentos, registros, relatórios e mais

Documentação

Servidor MCP INFATON para 1С:Предприятие

MCP35 MCP server

Model Context Protocol (MCP) — servidor no lado do 1С:Предприятие, que fornece 51 ferramenta para interação de assistentes de IA com o banco de dados 1С.

Protocolo: JSON-RPC 2.0 (especificação MCP)


📋 Composição do repositório

ArquivoDescrição
Module.bslMódulo do serviço HTTP MCP — código principal, 51 ferramenta (4 263 linhas)
index.mjsWrapper stdio Node.js para clientes MCP (Claude Desktop, Cursor e outros)
package.jsonManifesto npm para publicação e execução via npx
glama.jsonManifesto para o catálogo Glama.ai
INFATON_MCP.cfeExtensão de configuração 1С v2.1.0 (pacote binário)
HOW_TO_BUILD_CFE.mdInstruções de compilação e instalação do .cfe
EXAMPLES.mdExemplos de cenários de agentes (7 casos)
CHANGELOG.mdHistórico de versões

🆕 Novidades na v2.1.0

Correções (9 patches)

#FerramentaBugCorreção
P1get_listAusência de ПЕРВЫЕ N — retornava TODOS os registrosAdicionado ПЕРВЫЕ com parâmetro limit (padrão 100)
P2get_document_listFiltro por data — Дата >= sem parâmetroAdicionado Запрос.УстановитьПараметр para datas
P3get_object_by_refReferência vazia → erro confuso da plataformaAdicionada verificação de Если НЕ ЗначениеЗаполнено(Ссылка)
P4get_active_users / get_locksPercorrimento direto da coleção de sessões → erro no servidorMigração para МассивСеансов = ПолучитьСеансыИнформационнойБазы()
P5get_event_logData era passada como string + campo «Metadados» em vez de representaçãoПреобразоватьДату() + .МетаданныеПредставление
P6ПреобразоватьДатуNão processava 2026-05-14, 14.05.2026, 20260514Reescrita completa: ISO 8601 + 3 formatos
P7fill_on_basisОбъект.Заполнить() → método correto ЗаполнитьНаОсновании()Corrigida a chamada do método
P8execute_batchexecute_batch aninhado → recursão infinitaAdicionado guard-flag _batch_depth
P9Versão permanecia 2.0.0Atualizada para 2.1.0

Novas ferramentas (10 itens, grupo З)

#FerramentaFinalidade
42get_balanceSaldos e movimentos do registro contábil (qualquer plano de contas)
43get_register_totalsTotais de registros de acumulação (saldos/movimentos)
44get_accounting_entriesLançamentos contábeis do documento (Débito, Crédito, valor)
45get_related_documentsCadeia de documentos relacionados (entrada com base em)
46validate_documentVerificação de preenchimento do documento sem lançamento
47get_form_structureEstrutura do formulário gerenciado (atributos, comandos)
48get_rightsDireitos de acesso do usuário atual ao objeto
49find_duplicatesBusca de duplicatas em diretórios por atributos
50get_print_formFormulários de impressão via subsistema Gerenciamento de Impressão
51get_configuration_extensionsLista de extensões de configuração (CFE)

🛠 Catálogo completo: 51 ferramenta

Grupo А — Metadados (8)

#FerramentaDescrição
1get_metadata_treeÁrvore de objetos de metadados da configuração
2get_object_metadataEstrutura completa do objeto (atributos, seções tabulares, módulos)
3get_object_attributesLista de atributos do objeto
4get_object_tabular_sectionsSeções tabulares do objeto
5get_enum_valuesValores de enumeração
6get_register_dimensionsDimensões, recursos e atributos do registro
7get_document_movementsMovimentos do documento pelos registros
8search_metadataBusca em metadados (por nome/sinônimo)

Grupo Б — Leitura de dados (7)

#FerramentaDescrição
9execute_queryExecução de consulta 1С arbitrária
10get_object_by_refObtenção de objeto por referência/GUID
11get_listLista de itens de diretório/documento com filtros
12find_by_codeBusca de item por código
13find_by_nameBusca de item por nome
14get_register_recordsRegistros do registro com filtros
15get_document_listLista de documentos com filtros por data/número

Grupo В — CRUD (7)

#FerramentaDescrição
16create_objectCriação de novo objeto (diretório/documento)
17update_objectAlteração de atributos do objeto
18delete_objectMarcação para exclusão
19post_documentLançamento do documento
20unpost_documentCancelamento do lançamento
21copy_objectCópia do objeto
22set_attributeAlteração de atributo individual

Grupo Г — Código e relatórios (4)

#FerramentaDescrição
23execute_codeExecução de código arbitrário na linguagem integrada
24evaluate_expressionCálculo de expressão e retorno do resultado
25get_module_textObtenção do texto do módulo do objeto
26generate_reportGeração de relatório (SKD)

Grupo Д — Administração (6)

#FerramentaDescrição
27get_active_usersLista de usuários ativos e sessões
28get_event_logLog de registro com filtros
29get_locksBloqueios de dados atuais
30get_server_infoInformações sobre plataforma, configuração, servidor
31check_referencesVerificação de integridade referencial
32run_scheduled_jobExecução de tarefa agendada

Grupo Е — Integração (3)

#FerramentaDescrição
33exchange_executeExecução de troca de dados
34get_exchange_logLog de troca
35import_dataImportação de dados de JSON

Grupo Ж — Operações avançadas v2.0 (6)

#FerramentaDescrição
36fill_on_basisPreenchimento de documento com base em outro
37write_register_recordsGravação de conjunto de registros do registro
38update_tabular_sectionAtualização da seção tabular do objeto
39subscribe_eventsAssinatura de eventos do log
40execute_batchExecução em lote de ferramentas
41get_changes_sinceObtenção de alterações com carimbo de tempo (CDC)

Grupo З — Contabilidade, auditoria, formulários v2.1 (10) 🆕

#FerramentaDescrição
42get_balanceSaldos/movimentos do registro contábil
43get_register_totalsTotais de registros de acumulação
44get_accounting_entriesLançamentos do documento (Débito/Crédito/Valor)
45get_related_documentsDocumentos relacionados (cadeia de bases)
46validate_documentVerificação de preenchimento sem lançamento
47get_form_structureEstrutura do formulário gerenciado
48get_rightsDireitos de acesso do usuário atual
49find_duplicatesBusca de duplicatas por atributos
50get_print_formFormulários de impressão via Gerenciamento de Impressão
51get_configuration_extensionsLista de extensões de configuração (CFE)

🚀 Início rápido

Opção 1: Via Claude Desktop / Cursor (stdio)

Maneira А — via npx (sem clonagem)

{
  "mcpServers": {
    "1c-erp": {
      "command": "npx",
      "args": ["infaton-mcp"],
      "env": {
        "ONEC_URL": "https://your-server/base/hs/mcp/",
        "ONEC_USER": "Username",
        "ONEC_PASSWORD": "Password"
      }
    }
  }
}

Maneira Б — a partir do repositório clonado

{
  "mcpServers": {
    "1c-erp": {
      "command": "node",
      "args": ["/path/to/MCP35/index.mjs"],
      "env": {
        "ONEC_URL": "https://your-server/base/hs/mcp/",
        "ONEC_USER": "Username",
        "ONEC_PASSWORD": "Password"
      }
    }
  }
}

Opção 2: Chamada HTTP direta

1. Instale a extensão

  1. Abra o Configurador do banco 1С
  2. Configuração → Extensões de configuração → Adicionar
  3. Selecione o arquivo INFATON_MCP.cfe (ou compile conforme instruções a partir de Module.bsl)
  4. Atualize a configuração do BD (F7)

2. Verifique a conexão

curl -u 'Логин:Пароль' -X POST \
  -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","method":"initialize","id":1}' \
  https://ваш-сервер/база/hs/mcp/

Resposta esperada:

{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "protocolVersion": "2024-11-05",
    "capabilities": { "tools": {} },
    "serverInfo": { "name": "infaton-1c-mcp", "version": "2.1.0" }
  }
}

3. Chame a ferramenta

curl -u 'Логин:Пароль' -X POST \
  -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","method":"tools/call","id":2,"params":{"name":"get_balance","arguments":{"account_code":"41.01","period_from":"2026-01-01T00:00:00","period_to":"2026-03-31T23:59:59"}}}' \
  https://ваш-сервер/база/hs/mcp/

📐 Arquitetura

┌─────────────────────────┐
│   AI Assistant          │  Claude / GPT / Qwen / Gemini / ...
│   (MCP Client)          │
└────────┬────────────────┘
         │ stdio (JSON-RPC 2.0)
         ▼
┌─────────────────────────┐
│   index.mjs             │  Node.js stdio → HTTP proxy
│   (MCP Transport)       │
└────────┬────────────────┘
         │ HTTP POST (Basic Auth)
         ▼
┌─────────────────────────┐
│   HTTP-сервис /hs/mcp/  │  Расширение INFATON_MCP.cfe
│   Module.bsl            │  51 инструмент (4 263 строки)
│   (MCP Server)          │
└────────┬────────────────┘
         │ Встроенный язык 1С
         ▼
┌─────────────────────────┐
│   База 1С:Предприятие   │  ERP / УПП / Бухгалтерия / УТ / КА
│   Данные, метаданные    │
└─────────────────────────┘

📝 Compatibilidade

ParâmetroValor
Plataforma 1С8.3.20+ (testado em 8.3.27.1989)
ConfiguraçõesERP 2.5, UPP 1.3, Contabilidade 3.0, UT 11, KA 2
Protocolo MCP2024-11-05
TransporteHTTP (Basic Auth), stdio (via index.mjs)
Node.js18+ (para wrapper stdio)

📊 Histórico de versões

VersãoDataFerramentasAlterações
v2.1.02026-05-1451+10 ferramentas (contabilidade, auditoria, formulários), 9 correções de bugs
v2.0.02026-05-0841+6 ferramentas (batch, CDC, fill_on_basis e outras)
v1.0.02026-04-2835Primeiro lançamento público

🔒 Segurança

Obrigatório para produção

RequisitoPor que é importante
HTTPSBasic Auth transmite login/senha em base64. Via HTTP eles ficam visíveis para qualquer pessoa na rede
Usuário 1С separadoCrie um usuário mcp_agent com direitos mínimos — apenas os objetos necessários
ONEC_ALLOWED_TOOLSLimite a lista de ferramentas para o cenário específico

Ferramentas perigosas

As seguintes ferramentas exigem permissão explícita e devem ser usadas com consciência:

FerramentaRiscoRecomendação
execute_codeExecuta código BSL arbitrário em modo privilegiadoProibir via ONEC_ALLOWED_TOOLS se não for necessário
delete_objectMarca objetos para exclusãoProibir em cenários analíticos
run_scheduled_jobExecuta tarefas agendadasProibir se não for necessário
import_dataCriação/alteração em massa de objetosProibir em cenários somente leitura
post_document / unpost_documentAltera lançamentos de documentos e movimentos de registrosApenas para cenários operacionais

Configuração somente leitura

ONEC_ALLOWED_TOOLS="get_metadata_tree,execute_query,get_object_by_ref,get_list,find_by_code,find_by_name,get_register_records,get_document_list,get_server_info,get_event_log,get_balance,get_register_totals,get_accounting_entries,get_related_documents,get_form_structure,get_rights,find_duplicates"

Mais detalhes — ver EXAMPLES.md.


📄 Licença

MIT © 2024-2026 INFATON — Privalov S.Yu.


Instruções detalhadas de compilação do .cfe — ver HOW_TO_BUILD_CFE.md

Exemplos de cenários de agentes — ver EXAMPLES.md

Histórico de alterações — ver CHANGELOG.md


📰 Publicação no Infostart

Infostart

Artigo no portal Infostart: INFATON MCP Server v2.1 — 51 ferramenta para integração de IA com 1С:Предприятие