EDT MCP Server

<details> <summary>概要说明</summary> EDT MCP Server 是一个完整的后端服务实现,按照 MCP 规范提供以下核心能力: - 以 JSON-RPC 2.0 的格式处理客户端请求,返回标准的 JSON-RPC 响应,或在通知场景返回无响应。 - 资源管理:提供对 EDT 工作区的资源/元数据的读取与查询能力,方便 AI 客户端获取上下文信息。 - 工具执行:注册并执行一系列工具(Tools),如获取 EDT 版本、列出项目、读取/分析 BSL 代码、执行数据操作等,工具通过“tools/list”和“tools/call”等接口暴露。 - Prompts/模板:支持定义和渲染 Prompt 模板,便于定制化的 LLM 交互模式。 - 支持流式传输:提供基于 SSE 的流式传输,适配需要持续输出的 AI 客户端(如 Cursor、Claude 等)。 - 会话与能力声明:支持会话标识、能力声明,以及对多种传输协议的兼容,保障安全、可扩展的上下文服务。 - 融合 EDT 平台服务:通过插件化 Bundles 的形式与 EDT/OSGi 集成,具备服务定位、权限与资源管理能力。 </summary> <summary>使用要点</summary> - MCP 服务器通过 HTTP 端点 /mcp 提供 JSON-RPC 接口,客户端可以发送 initialize、工具列表、工具调用等请求,并接收相应的 JSON-RPC 响应或通知事件。 - 服务器具备可扩展的工具注册机制,支持大量与 1C:EDT 相关的工具(如版本查询、工程/模块查询、BSL 代码分析、引用查找等)。 - SSE 与普通 HTTP 请求共同工作,允许客户端选择流式或一次性响应的传输方式。 - 会话管理通过会话标识符实现,确保跨请求的一致性与上下文保持。 - 安全性通过 Origin/CORS 处理、合理的请求限流、以及对无效请求的快速错误返回来保障。 </summary> <summary>安装与运行步骤</summary> - 环境要求 - Java 17 及以上 - 适用于 Eclipse/EDT 环境的插件打包与部署(Bundles/ETD MCP Server 以 OSGi/Eclipse 插件形式集成) - 构建与部署 - 使用适合的构建工具(如 Maven/Tycho)将 bundles 打包成可在 EDT 插件环境中加载的插件包 - 将打包好的插件部署到 EDT 的插件/更新站点,或在 EDT 启动时作为插件自动加载 - 启动 EDT,并确保 MCP 插件已启用 - 启动与端口 - MCP 服务器默认监听端口8765(可以在插件配置中修改,见下文配置要点) - 通过 EDT 的首选项或启动参数确保服务器启动并对外提供服务 - 服务器配置(MCP 客户端需要的最小信息 - 下方给出一个示例 JSON 配置,说明服务器名称、启动命令与参数等,供 MCP 客户端在连接前参考) - 运行检查 - 使用健康端点 /health 进行健康自检 - 通过 /mcp 的 initialize 调用确保会话建立与能力宣告 </summary> <summary>服务器配置示例(适用于 MCP 客户端)</summary> { "serverName": "EDT MCP Server", "command": "java", "args": [ "-jar", "edtmcp-server-bundle.jar", "--port", "8765" ], "description": "EDT MCP Server 的启动配置。客户端通过此信息连接到服务器并通过 /mcp 进行 JSON-RPC 交互。端口默认为 8765。该示例假设服务器以一个可执行的 JAR 形式打包并在 EDT 环境中以插件方式运行。若使用其他部署方式,请相应调整 command 与 args。" } </summary> <summary>基本使用方法</summary> - 连接方式 - 使用 MCP 客户端向 http://<host>:8765/mcp 发送 JSON-RPC 请求,初始的初始化请求用来建立会话、声明能力和获取服务器信息。 - 常用操作 - 获取工具列表:请求 tools/list,查看服务器注册的所有工具名称与描述。 - 调用工具:请求 tools/call,传入工具名称和参数,获取工具执行结果(内容可能是文本、Markdown、JSON 或图片资源)。 - 读取 EDT 信息与资源:通过相应工具获取工作区项、元数据、模块、模板等上下文信息。 - SSE 传输:若客户端选择 SSE(流式传输),服务器将以事件流的方式持续输出数据。 - 会话与错误处理 - 服务端在 initialize 阶段返回 session 信息,后续请求可带上会话标识进行对话状态保持。 - 错误处理遵循 MCP 标准,返回标准的 JSON-RPC 错误对象,包含 errorCode、message 等信息。 </summary> </details>

服务器信息