OpenCode MCP 服务器

OpenCode MCP Server 是一个与 OpenCode AI 终端编码代理无缝集成的服务器,提供命令执行、会话管理、模型发现等功能。

  • by nosolosoft
  • Python
  • 本地部署
  • 16 星标
  • 更新于
在 GitHub 查看 nosolosoft/opencode-mcp

使用说明

OpenCode MCP服务器

提供无缝集成的MCP(模型上下文协议)服务器 OpenCode,终端的开源AI编码代理。

特性

  • 执行OpenCode命令:以编程方式运行任何OpenCode CLI命令
  • 会话管理:创建、继续和导出编码会话
  • 模型发现:列出所有已配置提供商的可用AI模型
  • 异步执行:具有超时处理的非阻塞命令执行
  • JSON行解析:OpenCode流输出格式的强大解析

可用工具

工具 说明
execute_opencode_command 完全灵活地执行任何OpenCode CLI命令
opencode_run 运行OpenCode并显示一条简单的提示消息
opencode_continue_session 继续现有的OpenCode会话
opencode_list_models 列出可用型号,可选择按提供商筛选
opencode_export_session 将会话数据导出为JSON
opencode_get_status 检查OpenCode CLI的可用性和状态

安装

先决条件

再进行

pip install -r requirements.txt

配置MCP客户端

添加到您的MCP客户端配置中(例如。, ~/.claude.json 或克劳德桌面设置):

{
  "mcpServers": {
    "opencode": {
      "command": "python",
      "args": ["-m", "src.services.fast_mcp.opencode_server"],
      "cwd": "/path/to/opencode-mcp"
    }
  }
}

用法

基本用法

配置后,MCP工具可通过您的MCP客户端使用:

# Run a coding task
opencode_run(message="Create a Python function that calculates fibonacci numbers")

# List available models
opencode_list_models(provider="anthropic")

# Continue a previous session
opencode_continue_session(session_id="abc123", message="Now add unit tests")

# Check status
opencode_get_status()

刀具参数

execute_opencode_command

{
    "prompt": str,           # Required: The prompt/task for OpenCode
    "model": str,            # Optional: Model in provider/model format (e.g., "anthropic/claude-sonnet-4-20250514")
    "agent": str,            # Optional: Agent to use (e.g., "build", "plan")
    "session": str,          # Optional: Session ID to continue
    "continue_session": bool, # Optional: Whether to continue last session
    "timeout": int           # Optional: Timeout in seconds (default: 300, max: 600)
}

opencode_run

{
    "message": str,     # Required: Message/prompt to send
    "model": str,       # Optional: Model to use
    "agent": str,       # Optional: Agent to use
    "files": [str],     # Optional: Files to attach
    "timeout": int      # Optional: Timeout in seconds
}

opencode_continue_session

{
    "session_id": str,  # Required: Session ID to continue
    "message": str,     # Optional: Follow-up message
    "timeout": int      # Optional: Timeout in seconds
}

配置

环境变量(前缀: OPENCODE_):

变量 默认值 描述
OPENCODE_COMMAND opencode OpenCode CLI的路径
OPENCODE_DEFAULT_MODEL 无 要使用的默认模型
OPENCODE_DEFAULT_AGENT 无 要使用的默认代理
OPENCODE_DEFAULT_TIMEOUT 300 默认超时(秒)
OPENCODE_MAX_TIMEOUT 600 最长超时时间(秒)
OPENCODE_SERVER_LOG_LEVEL INFO 日志记录级别

建筑

src/services/fast_mcp/opencode_server/
├── __init__.py
├── __main__.py          # Entry point
├── server.py            # MCP server & tool definitions
├── opencode_executor.py # CLI execution wrapper
├── models.py            # Pydantic models
├── settings.py          # Configuration
└── handlers/
    ├── __init__.py
    ├── execution.py     # Run/continue operations
    ├── session.py       # Session management
    └── discovery.py     # Model/status discovery

发展

运行测试

pytest tests/ -v

代码格式化

black src/
ruff check src/

路线图

v2.0的计划功能:

  • [ ] opencode_import_session -从JSON/URL导入会话
  • [ ] opencode_list_sessions -列出所有具有筛选功能的会话
  • [ ] opencode_get_stats -使用统计和成本跟踪
  • [ ] opencode_list_agents -列出可用代理
  • [ ] opencode_github_run -GitHub操作集成(异步)
  • [ ] opencode_pr_checkout -PR工作流支持

贡献

欢迎投稿!请在提交PR之前阅读投稿指南。

许可证

MIT许可证-请参阅 许可证 了解详情。

相关项目

致谢