AI Skill Hub 推荐使用:EDT-MCP工具 是一款优质的MCP工具。AI 综合评分 7.5 分,在同类工具中表现稳健。如果你正在寻找可靠的MCP工具解决方案,这是一个值得深入了解的选择。
EDT-MCP工具 是一款遵循 MCP(Model Context Protocol)标准协议的 AI 工具扩展。通过 MCP 协议,它可以让 Claude、Cursor 等主流 AI 客户端直接访问和操作外部工具、数据源和服务,实现 AI 能力的无缝扩展。无论是文件操作、数据库查询还是 API 调用,都可以通过自然语言在 AI 对话中直接触发,极大提升生产效率。
EDT-MCP工具 是一款遵循 MCP(Model Context Protocol)标准协议的 AI 工具扩展。通过 MCP 协议,它可以让 Claude、Cursor 等主流 AI 客户端直接访问和操作外部工具、数据源和服务,实现 AI 能力的无缝扩展。无论是文件操作、数据库查询还是 API 调用,都可以通过自然语言在 AI 对话中直接触发,极大提升生产效率。
# 方式一:通过 Claude Code CLI 一键安装
claude skill install https://github.com/DitriXNew/EDT-MCP
# 方式二:手动配置 claude_desktop_config.json
{
"mcpServers": {
"edt-mcp--": {
"command": "npx",
"args": ["-y", "edt-mcp"]
}
}
}
# 配置文件位置
# macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
# Windows: %APPDATA%/Claude/claude_desktop_config.json
# 安装后在 Claude 对话中直接使用 # 示例: 用户: 请帮我用 EDT-MCP工具 执行以下任务... Claude: [自动调用 EDT-MCP工具 MCP 工具处理请求] # 查看可用工具列表 # 在 Claude 中输入:"列出所有可用的 MCP 工具"
// claude_desktop_config.json 配置示例
{
"mcpServers": {
"edt-mcp__": {
"command": "npx",
"args": ["-y", "edt-mcp"],
"env": {
// "API_KEY": "your-api-key-here"
}
}
}
}
// 保存后重启 Claude Desktop 生效
Build & Unit Tests, E2E, and MCP Conformance all run on stock GitHub-hosted runners (cloud CI) — no docker image, no self-hosted runner. E2E and Conformance run against EDT 2026.2 (build 2026.2, Eclipse 4.38 / Java 25): the setup step installs a headless EDT of that version on the runner viap2 director. E2E additionally imports the test fixtures into an empty workspace via the plugin's headless bootstrap (EDT_MCP_IMPORT_PROJECTS) and skips the live-infobase tools, so no 1C platform is needed. Each badge reflects its latest run.
The get_form_screenshot and get_form_layout_snapshot tools need EDT to be launched with the following JVM flag:
-DnativeFormBufferedLayoutRender=true
Without it, both tools return blank output (gray PNG / empty elements list).
Why: EDT's NativeRenderService reads nativeFormBufferedLayoutRender once at class-load time. If it was unset at JVM startup, the singleton HippoLayoutService is constructed without its offscreen buffer handler, the C++ form renderer never writes captureable pixels back to Java, and the screenshot helper falls through to an SWT Control.print() of the native window — which on Windows produces a gray rectangle. Setting the flag at runtime via reflection does not help because the singleton has already been built.
How to add it (persistent, recommended):
1cedt.ini (next to 1cedt.exe, e.g. C:\Program Files\1C\1CE\components\1c-edt-2025.2.6+4-x86_64\1cedt.ini).-vmargs line, add: -DnativeFormBufferedLayoutRender=true
4. Start EDT.
How to add it (one-shot, no install changes):
"<path-to-EDT>\1cedt.exe" -data "<workspace>" -vmargs -DnativeFormBufferedLayoutRender=true
The same flag is also recommended for production EDT use — it enables the buffered native renderer that EDT itself benefits from.
If your screenshots still come back blank after adding the flag, verify with -vmargs actually appears before it in 1cedt.ini (Eclipse stops parsing -vmargs block once it hits a non--D line) and that EDT was fully restarted.
Close your EDT (!) and run:
rem Here "%VER_EDT% = 2025.2.3+30" just for example - please, set YOUR actual version !
set VER_EDT=2025.2.3+30
"\your\path\to\EDT\components\1c-edt-%VER_EDT%-x86_64\1cedt.exe" -nosplash ^
-application org.eclipse.equinox.p2.director ^
-repository https://ditrixnew.github.io/EDT-MCP/ ^
-installIU com.ditrix.edt.mcp.server.feature.feature.group ^
-profileProperties org.eclipse.update.reconcile=true
<details> Once the installation has been completed successfully, we will see the following:
</details>
After that, EDT will automatically monitor the update site and install available updates when detected.
As well, we can also manually check via Help → About → Installation Details → Select MCP → Update
Go to Window → Preferences → MCP Server. The settings page has two tabs:
[!NOTE] Display language. The settings page and the tag dialogs are bilingual (Russian / English) and follow the Eclipse/EDT display language — the same-nllaunch argument (or OS locale) that localizes the rest of EDT. Launch EDT with-nl rufor Russian or-nl enfor English; any other locale falls back to English. The MCP tool surface itself (tool names, descriptions and errors) stays English regardless, as it is the AI wire contract.
mcpServers JSON entry on the clipboard for agents that are configured only by editing a file. That entry is the type/url form (Cursor, VS Code, Claude Code); Cline, Antigravity and OpenCode need the different shapes shown in their sections below. If an auth token is saved, the entry carries it as an Authorization header (it would get a 401 otherwise), so treat the copied text as a secretManage which tools are available to AI assistants. Tools are organized into groups that can be enabled or disabled together. See Tool Management for details.

{
"mcpServers": {
"EDTMCPServer": {
"type": "streamableHttp",
"url": "http://localhost:8765/mcp"
}
}
}
1C XDTO packages (XDTOPackage) can be authored end-to-end through MCP, down to their package-local structure, without hand-editing XML:
- create_metadata / modify_metadata / delete_metadata address XDTO package members by FQN, layered on top of the existing top-level XDTOPackage.<Name> create/delete: - XDTOPackage.<Package>.ObjectType.<Type> — an ObjectType in the package (optional flags: open, abstract, mixed, ordered, sequenced). - XDTOPackage.<Package>.Property.<Name> — a package-global Property. - XDTOPackage.<Package>.ObjectType.<Type>.Property.<Name> — a Property nested in an ObjectType.
A Property's type accepts a built-in XSD type name (e.g. string), the exact name of another ObjectType already in the same package (a same-package reference), or an explicit {nsUri, name} pair; optional lowerBound/upperBound, nillable, fixed+default round out the vocabulary. See get_tool_guide('create_metadata') for the full parameter list. - validate_xdto_package runs EDT's own configuration validation scoped to one package and returns a one-line verdict — valid, problems found, or undecided when nothing matched but a marker's location could not be resolved — plus any problems found (e.g. a Property left referencing an ObjectType that was since deleted) — a thin, read-only wrapper over get_project_errors, handy right after authoring or editing package members.
Create .vscode/mcp.json:
{
"servers": {
"EDT MCP Server": {
"type": "sse",
"url": "http://localhost:8765/mcp"
}
}
}
<details> <summary><strong>Other AI Assistants</strong> - Cursor, Claude Code, Claude Desktop</summary>
Read a three-way configuration comparison: start one against two git revisions, expand a node's differences, and read or author the merge-rules file EDT re-applies. Nothing is ever merged - running a merge stays a human action in EDT's comparison window.
| Tool | Description |
|---|---|
[compare_configurations](docs/tools/compare_configurations.md) | Compare a project's working tree against two git revisions (three-way) and report which top objects differ. Read-only: it never merges and never writes the p… |
[get_comparison_node](docs/tools/get_comparison_node.md) | Expand one node of a comparison started by compare_configurations: three-way property table, form structure, module sections, support state and potential pro… |
[merge_rules](docs/tools/merge_rules.md) | Read or author EDT's merge-rules file - the per-node decisions a configuration comparison saves and re-applies when it is launched. Which container to write… |
A configuration can be compared against two git revisions and read node by node through MCP. The family is read-only about your project: it never merges and never writes the project — the plugin holds no merge starter at all, so running a merge stays a human action in EDT's comparison window.
- compare_configurations starts the comparison and returns a jobId; poll it with get_job_status. The sides are main — the project's WORKING TREE as EDT currently has it, uncommitted edits included — other (otherRevision) and ancestor (ancestorRevision), each anything git resolves in that repository: a branch, a tag, HEAD~1, a commit id. Beyond projectName / otherRevision / ancestorRevision it takes scope (qualified names such as Catalog.Products, Russian type tokens accepted; omitting it compares the WHOLE configuration), mergeRulesFile (decisions applied BEFORE the comparison starts — the file is read, never written), waitSeconds (0 to 25, default 5 — how long THIS call waits for its job snapshot, never the job's own budget), limit (how many top objects the report lists; the counters above the table always describe the whole comparison) and changedOnly (default true; a node that has not been compared yet is listed anyway, because "not answered yet" is not "equal"). - get_comparison_node expands ONE node of that comparison: a three-way property table, the per-side form structure, the module section list, the vendor-support state, the child outline and the engine's POTENTIAL problems. Address the node by objectFqn (Russian or English type tokens both work) or by nodeId from the report, never both; side (main by default, other, ancestor) says which side the FQN is written in; depth (1 to 5), limit (1 to 500) and waitSeconds (0 to 25) size the answer. The comparison tree is built lazily, so a subtree the engine has not reached is reported as unfinished — never as "no differences". - merge_rules reads and authors the sparse XML merge-rules file the comparison saves and re-applies when it is launched with it. mode is read or write; filePath is absolute, and for a WRITE its extension must be spelled in LOWER CASE, because EDT's own reader compares it case-sensitively — mode: "read" and basedOn are lenient about case, since those files are opened by this server and never by the platform (read takes the .xml or the .zip a comparison saves; write takes .zip, which every supported EDT reads, or .xml, which EDT 2026.1 reads and EDT 2026.2 refuses outright; a .zip carries ONE entry, named by the exact string <main>_<other>_<ancestor> over the three project names, so a later comparison over the same three projects re-applies it even with other revisions — and since _ is legal inside a project name that string is not unique to one triple, so a comparison finds nothing here only when its OWN three names spell something else; and an existing file is replaced only when basedOn names that SAME file — any other write over an existing file is refused); basedOn carries an existing file's decisions forward; decisions is [{path, rule}], where path is the key chain below the root ([] = the whole configuration, ["commonModules"] = a collection, and ["commonModules","Alpha:Beta:Gamma"] = one object, keyed by its main:other:ancestor names with NONE for a side that has no such object) and rule is one of GetFromOther, DoNotMerge, MergePrioritizingMain, MergePrioritizingOther; comparisonId and limit complete the list. Authoring the DOCUMENT needs no running comparison; naming a .zip's entry does, so a .zip is refused without one. The report names the container it wrote and which EDT reads it, and it says which of THREE validation outcomes happened: a comparison whose tree has FINISHED checks every rule against what its own node allows; a comparison that answers while its tree cannot be read names the zip's entry but checks nothing — reported NOT VALIDATED, or refused outright if you passed comparisonId; with no comparison at all the file is authored from names and also reported NOT VALIDATED.
One comparison at a time, and it stays open when it finishes. EDT runs exactly one comparison per workbench, so a second compare_configurations while one is live is refused naming the live comparison — it is never queued, and a refusal means nothing was started. A comparison that has FINISHED still holds that single slot, because its session is what get_comparison_node reads. cancel_job cannot end it then: once the comparison finishes its background job is terminal, and a terminal job is answered without this tool's cancellation handler ever running. Give the slot back by calling compare_configurations with releaseComparisonId alone; cancel_job is the right call only while the comparison is still RUNNING. A comparison nobody comes back to is reclaimed by an idle TTL of 30 minutes as part of answering the next launch, so a forgotten one delays the next comparison rather than blocking it until EDT restarts.
环境依赖与系统要求
API/接口
工作流 / 模块
高质量开源MCP工具,易于使用
该工具使用 AGPL-3.0 协议,商用场景请仔细阅读协议条款,必要时咨询法律意见。
AI Skill Hub 为第三方内容聚合平台,本页面信息基于公开数据整理,不对工具功能和质量作任何法律背书。
建议在沙箱或测试环境中充分验证后,再部署至生产环境,并做好必要的安全评估。
⚠️ AGPL 3.0 — 最严格的 Copyleft,网络服务端使用也需开源,SaaS 使用受限。
总体来看,EDT-MCP工具 是一款质量良好的MCP工具,在同类工具中具备一定竞争力。AI Skill Hub 将持续追踪其更新动态,建议收藏备用,结合自身场景选择合适时机引入使用。
| 原始名称 | EDT-MCP |
| 原始描述 | 开源MCP工具:MCP for 1C:EDT。⭐178 · Java |
| Topics | 1c-enterpriseedtmcpjava |
| GitHub | https://github.com/DitriXNew/EDT-MCP |
| License | AGPL-3.0 |
| 语言 | Java |
收录时间:2026-06-11 · 更新时间:2026-06-13 · License:AGPL-3.0 · AI Skill Hub 不对第三方内容的准确性作法律背书。
选择 Agent 类型,复制安装指令后粘贴到对应客户端