OpenCode MCP Server

使用说明

项目简介

OpenCode MCP Server 是一个基于 MCP 的后端服务,旨在向 MCP 兼容的客户端(如 IDE 插件、AI 客户端等)暴露 OpenCode 的能力。它实现了资源管理、工具注册与执行、以及提示模板渲染等核心功能,支持通过标准输出/stdio 以及可远程访问的 HTTP 传输模式,方便在本地开发环境与远程部署中使用。

主要功能点

  • MCP 服务器实现与注册工具
    • 提供 21 种工具,覆盖执行、文件、配置、代理、技能、MCP 管理与工具配置等类别。
    • 为每个工具提供输入输出模式、注解、以及错误处理机制,便于 LLM 客户端发现和使用。
  • 传输模式
    • stdio(默认,本地 IDE 集成)
    • HTTP(远程访问,支持无状态和有状态会话,使用 SSE 实时流)
  • 会话与任务管理
    • 支持创建会话、在会话中发送提示、列出会话、终止会话等能力
    • 支持多工具协同(如代理、技能、模型配置等)
  • 配置与持久化
    • 融合 API 更新与本地 opencode.json 配置持久化
    • 自动探测工作目录、模型、提供商等信息
  • 安全性与健壮性
    • 输入校验、错误信息可操作性、日志输出与超时控制

安装步骤

  • 克隆并安装依赖
    • 常规步骤:执行 npm install
  • 构建与运行
    • 执行 npm run build 进行打包
    • 运行方式通常为直接执行打包后的 dist/index.js(若采用默认流程)
  • 运行时参数与环境
    • 运行时可通过环境变量选择传输模式(MCP_TRANSPORT)、HTTP 端口(MCP_HTTP_PORT)等
    • 详细环境变量请参考 README 中的说明

服务器配置(客户端使用 MCP 连接该服务器的配置信息)

配置示例(JSON 文本,含 server name、command、args 等): { "mcpServers": { "opencode": { "command": "node", "args": ["dist/index.js"], "env": { "OPENCODE_SERVER_URL": "http://localhost:4096", "OPENCODE_DEFAULT_PROJECT": "/path/to/your/project" } // 说明: // - serverName 对应仓库打包后的服务名,默认为 opencode-mcp // - command/args 指定启动服务器的命令和参数 // - OPENCODE_SERVER_URL 指向 OpenCode 服务端地址 // - OPENCODE_DEFAULT_PROJECT 指定默认工作目录,可省略 } } } 说明:

  • MCP 客户端需要该配置来知道如何启动并连接到 OpenCode MCP Server。
  • 配置中的 dist/index.js 假设已构建产物、路径根据实际打包结果调整。
  • 也可以使用 HTTP 传输模式,通过设置 MCP_TRANSPORT=http、MCP_HTTP_PORT=端口等来启用远端访问。

基本使用方法

  • 启动服务器后,客户端可通过 MCP 协议向服务器发送请求,读取资源、调用工具、渲染提示模板并获取返回结果。
  • 如果使用 HTTP 传输,客户端应在初始化阶段建立会话、订阅 SSE 流,并通过相应端点 /mcp、/mcp/:sessionId 进行无状态/有状态交互。
  • 在本地 IDE 集成中,通常使用 stdio 传输,服务器将直接通过标准输入输出与客户端通信。

服务器信息