mirror of
https://github.com/aljazceru/opencode.git
synced 2025-12-23 10:44:21 +01:00
129 lines
2.7 KiB
Plaintext
129 lines
2.7 KiB
Plaintext
---
|
|
title: MCP servers
|
|
description: Add local and remote MCP tools.
|
|
---
|
|
|
|
You can add external tools to opencode using the _Model Context Protocol_, or MCP. opencode supports both:
|
|
|
|
- Local servers
|
|
- And remote servers
|
|
|
|
Once added, MCP tools are automatically available to the LLM alongside built-in tools.
|
|
|
|
---
|
|
|
|
## Configure
|
|
|
|
You can define MCP servers in your opencode config under `mcp`.
|
|
|
|
---
|
|
|
|
### Local
|
|
|
|
Add local MCP servers using `"type": "local"` within the MCP object. Multiple MCP servers can be added. The key string for each server can be any arbitrary name.
|
|
|
|
```json title="opencode.json"
|
|
{
|
|
"$schema": "https://opencode.ai/config.json",
|
|
"mcp": {
|
|
"my-local-mcp-server": {
|
|
"type": "local",
|
|
"command": ["bun", "x", "my-mcp-command"],
|
|
"enabled": true,
|
|
"environment": {
|
|
"MY_ENV_VAR": "my_env_var_value"
|
|
}
|
|
},
|
|
"my-different-local-mcp-server": {
|
|
"type": "local",
|
|
"command": ["bun", "x", "my-other-mcp-command"],
|
|
"enabled": true
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
You can also disable a server by setting `enabled` to `false`. This is useful if you want to temporarily disable a server without removing it from your config.
|
|
|
|
---
|
|
|
|
### Remote
|
|
|
|
Add remote MCP servers under `mcp` with `"type": "remote"`.
|
|
|
|
```json title="opencode.json"
|
|
{
|
|
"$schema": "https://opencode.ai/config.json",
|
|
"mcp": {
|
|
"my-remote-mcp": {
|
|
"type": "remote",
|
|
"url": "https://my-mcp-server.com",
|
|
"enabled": true,
|
|
"headers": {
|
|
"Authorization": "Bearer MY_API_KEY"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
Local and remote servers can be used together within the same `mcp` config object.
|
|
|
|
```json title="opencode.json"
|
|
{
|
|
"$schema": "https://opencode.ai/config.json",
|
|
"mcp": {
|
|
"my-local-mcp-server": {
|
|
"type": "local",
|
|
"command": ["bun", "x", "my-mcp-command"],
|
|
"enabled": true,
|
|
"environment": {
|
|
"MY_ENV_VAR": "my_env_var_value"
|
|
}
|
|
},
|
|
"my-remote-mcp": {
|
|
"type": "remote",
|
|
"url": "https://my-mcp-server.com",
|
|
"enabled": true,
|
|
"headers": {
|
|
"Authorization": "Bearer MY_API_KEY"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
---
|
|
|
|
## Per agent
|
|
|
|
If you have a large number of MCP servers you may want to only enable them per
|
|
agent and disable them globally. To do this:
|
|
|
|
1. Configure the MCP server.
|
|
2. Disable it as a tool globally.
|
|
3. In your [agent config](/docs/agents#tools) enable the MCP server as a tool.
|
|
|
|
```json title="opencode.json" {11, 14-17}
|
|
{
|
|
"$schema": "https://opencode.ai/config.json",
|
|
"mcp": {
|
|
"my-mcp": {
|
|
"type": "local",
|
|
"command": ["bun", "x", "my-mcp-command"],
|
|
"enabled": true
|
|
}
|
|
},
|
|
"tools": {
|
|
"my-mcp*": false
|
|
},
|
|
"agent": {
|
|
"my-agent": {
|
|
"tools": {
|
|
"my-mcp*": true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
```
|