mcpField
1
1C OData MCP

1C OData MCP

本地服务
github.com/pyrfor商业与营销012 周前更新

关于 1C OData MCP

1C OData MCP 是通过标准 OData 端点访问 1C:Enterprise 数据库的 MCP 服务,帮助 MCP 客户端查看元数据并查询业务记录。默认禁用写入,实际更改需要显式启用并通过安全检查。

主要功能

  1. 01列出 OData 实体
  2. 02查看元数据和实体字段
  3. 03构建并验证 OData 查询
  4. 04查询记录并统计结果
  5. 05生成财务摘要
  6. 06在明确安全条件下写入实体

适用场景

  1. 01探索 1C 中可用的目录和单据
  2. 02检索经过筛选的会计记录
  3. 03统计符合筛选条件的记录
  4. 04查看财务实体摘要

MCP 相关

该服务向 MCP 客户端提供 1C:Enterprise 的 OData 配置、元数据、查询构建、查询、计数、财务摘要和写入工具。默认只读;实际写入需要启用 writable 模式并关闭默认 dry-run。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"alexgrebeshok-coder-onec-odata": {
"command": "npx",
"args": [
"-y",
"onec-odata-mcp"
],
"env": {
"ONEC_BASE_URL": "<ONEC_BASE_URL>",
"ONEC_USERNAME": "<ONEC_USERNAME>",
"ONEC_PASSWORD": "<ONEC_PASSWORD>",
"ONEC_DATABASE": "<ONEC_DATABASE>",
"ONEC_METADATA_CACHE_TTL_MS": "<ONEC_METADATA_CACHE_TTL_MS>",
"ONEC_CONFIG_PATH": "<ONEC_CONFIG_PATH>"
}
}
}
}
启动命令npx -y onec-odata-mcp
需要配置的环境变量
ONEC_BASE_URL1C OData endpoint URL (e.g. https://host/db/odata/standard.odata)
ONEC_USERNAMEBasic auth username for the OData endpoint
ONEC_PASSWORD密钥Basic auth password for the OData endpoint
ONEC_DATABASEOptional database name hint
ONEC_METADATA_CACHE_TTL_MSMetadata cache TTL in milliseconds (default 3600000)
ONEC_CONFIG_PATHOptional path to JSON config file ({ baseUrl, username, password })

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmonec-odata-mcp1.0.1

工具

8

收录的工具列表 · 更新于 2 周前

此工具无需参数。

详细介绍

onec-odata-mcp

npm MCP Registry License: MIT

5 分钟内将 1С 接入 Claude

让 Claude(Desktop、Code、任何 MCP 客户端)通过标准 OData 读取 1С:Предприятие 数据库。无需导出到 Excel,也无需手动编写 OData URL——用俄语提问,即可从目录和单据中获取结构化数据。

适用于任何已发布 OData 的 1С 配置(会计、ERP、贸易管理及自定义配置)。

📸 TODO: 添加 5 分钟配置的截图/视频——待使用真实数据库首次运行后添加。

第 1 步 — 安装

无需在本地安装任何内容,首次启动时 npx 会自动获取软件包:

一行命令(发布到 npm 后):

npx -y onec-odata-mcp

在 MCP 客户端配置中设置 ONEC_BASE_URL、ONEC_USERNAME 和 ONEC_PASSWORD(见下文)。

从源代码安装:

npx -y onec-odata-mcp

(从源代码进行开发时:npm install && npm run build。)

第 2 步 — 连接到 Claude

方案 A — 使用 claude mcp add 命令(Claude Code):

claude mcp add onec-odata \
  -e ONEC_BASE_URL=https://1c.example.com/your_db/odata/standard.odata \
  -e ONEC_USERNAME=odata_user \
  -e ONEC_PASSWORD=your_password \
  -- npx -y onec-odata-mcp

方案 B — 手动编辑 claude_desktop_config.json(Claude Desktop:Settings → Developer → Edit Config):

{
  "mcpServers": {
    "onec-odata": {
      "command": "npx",
      "args": ["-y", "onec-odata-mcp"],
      "env": {
        "ONEC_BASE_URL": "https://1c.example.com/your_db/odata/standard.odata",
        "ONEC_USERNAME": "odata_user",
        "ONEC_PASSWORD": "your_password"
      }
    }
  }
}

可直接使用的代码片段位于 examples/claude_desktop_config.json。

可选配置:ONEC_DATABASE(数据库名称提示)、ONEC_METADATA_CACHE_TTL_MS(元数据缓存 TTL,默认为 1 小时)、ONEC_WRITABLE=true(允许通过 odata_write 实际写入;默认为 false)。也可以不使用环境变量,改用 JSON 文件 ~/.onec-odata/onec-config.json,其中包含 baseUrl、username、password 字段(以及可选的 "writable": true);文件路径通过 ONEC_CONFIG_PATH 设置。

第 3 步 — 首次提问

重启 Claude 并提问:

“数据库中有哪些目录和单据?”

Claude 会调用 odata_list_entities 查看列表,然后根据具体问题自行选择合适的工具——你无需了解 OData 语法。

更多可直接使用的提示词见 examples/prompts.md。

工具

工具功能示例问题
odata_config检查连接状态和配置“检查 1С 是否已连接”
odata_list_entities列出所有可用的 OData 实体“数据库中有哪些目录和单据?”
odata_metadata获取 $metadata 中的实体类型和集合(缓存,TTL 为 1 小时)在复杂查询前自动调用
odata_explain_entity获取指定实体的字段、类型、键和关系“目录‘交易对手’有哪些字段?”
odata_build_query根据结构化查询参数构建并验证 $filter/$select/$orderby自动调用——Claude 会将“6 月份”转换为日期,工具负责构建并验证筛选条件
odata_query使用现成的 OData 参数查询实体“显示 6 月份 51 号账户的余额”
odata_count统计记录数量,可选筛选条件“今年注册了多少个交易对手?”
odata_write创建/更改/删除实体(POST/PATCH/DELETE)“创建一个交易对手……”——先进行 dry-run 预览
odata_financial_summary自动发现常见财务实体并统计数量“汇总一下账户、销售和交易对手的数据”

通常 Agent 会自行组合 odata_build_query → odata_query/odata_count,你只需用自己的话提问。

安全性

  • 默认只读。 数据库配置中的 writable 标志(环境变量 ONEC_WRITABLE=true / ~/.onec-odata/onec-config.json 中的 "writable": true)默认值为 false。未启用该标志时,不会向 1С 发送真实的 POST/PATCH/DELETE 请求。
  • 只能通过 odata_write 写入。 该工具的 dryRun 默认值为 true:始终先预览 {dryRun: true, wouldExecute: …},不会发起网络调用。要实际写入,必须同时满足:该数据库的 writable: true,并且明确设置 dryRun: false。
  • 密码通过 Basic Auth 传递(按 OData 要求,以 base64 编码后放在每个请求的标头中),并存储在 MCP 客户端的配置环境变量中(推荐),或本地文件 ~/.onec-odata/onec-config.json 中。服务器不会在日志中记录密码,也不会在工具响应中返回密码。
  • 敏感字段(名称中包含 password、token、apikey、secret 等的字段)会自动从“你可能想找”提示中排除(src/query/fuzzy.ts),避免 Agent 意外突出显示这些字段。
  • 建议: 在 1С 中为日常工作创建一个仅有只读权限的独立 OData 用户;只有在明确需要时,才启用具有写入权限的账户和 ONEC_WRITABLE=true。

要求

  • Node.js ≥ 18
  • 已发布 OData 接口的 1С:Предприятие(Web 发布 → standard.odata)

开发

npm install
npm run build   # type-check + сборка в dist/
npm test

贡献详情和规则请参阅 CONTRIBUTING.md。

许可证

MIT


English(简短介绍)

一个 MCP 服务,可让 Claude(或任何 MCP 客户端)通过标准 OData 端点访问 1C:Enterprise 数据库。默认只读(writable: false);写入通过 odata_write 进行,除非你明确启用 writable: true 并传入 dryRun: false,否则始终先执行 dry-run。无需导出电子表格,也无需手写 OData URL——用自然语言提问,即可获取目录和文档中的结构化数据。

npx -y onec-odata-mcp

通过 ONEC_BASE_URL / ONEC_USERNAME / ONEC_PASSWORD 环境变量进行配置(关于 claude mcp add 和 claude_desktop_config.json 代码片段,请参阅上方的俄语快速入门——JSON 与语言无关)。可选:设置 ONEC_WRITABLE=true 以允许实际写入。已在 npm 上发布为 onec-odata-mcp,并以 io.github.alexgrebeshok-coder/onec-odata-mcp 列入官方 MCP Registry。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。