使用说明
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的可用性和状态 |
安装
先决条件
- Python 3.10+
- OpenCode命令行界面 已安装并配置
- MCP兼容客户端(克劳德桌面等)
再进行
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许可证-请参阅 许可证 了解详情。
