Русский
Документация
MCP серверы

MCP-серверы

Добавляйте локальные и удалённые MCP-инструменты.

Вы можете добавлять внешние инструменты в OpenCode, используя Model Context Protocol, или MCP. OpenCode поддерживает как локальные, так и удалённые серверы.

После добавления MCP-инструменты автоматически становятся доступными для LLM наряду со встроенными инструментами.


Предупреждения

При использовании MCP-сервера он добавляется в контекст. Это может быстро накапливаться, если у вас много инструментов. Поэтому мы рекомендуем быть осторожными с выбором MCP-серверов.

MCP-серверы добавляются в ваш контекст, поэтому будьте осторожны с тем, какие из них вы включаете.

Некоторые MCP-серверы, такие как GitHub MCP-сервер, добавляют много токенов и могут легко превысить лимит контекста.


Включение

Вы можете определить MCP-серверы в вашей конфигурации OpenCode в разделе mcp. Добавьте каждый MCP с уникальным именем. Вы можете ссылаться на этот MCP по имени при запросах к LLM.

opencode.jsonc
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "name-of-mcp-server": {
      // ...
      "enabled": true,
    },
    "name-of-other-mcp-server": {
      // ...
    },
  },
}

Вы также можете отключить сервер, установив enabled в false. Это полезно, если вы хотите временно отключить сервер, не удаляя его из конфигурации.


Переопределение удалённых значений по умолчанию

Организации могут предоставлять MCP-серверы по умолчанию через свою конечную точку .well-known/opencode. Эти серверы могут быть отключены по умолчанию, позволяя пользователям включать нужные.

Чтобы включить определённый сервер из удалённой конфигурации вашей организации, добавьте его в локальную конфигурацию с enabled: true:

opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "jira": {
      "type": "remote",
      "url": "https://jira.example.com/mcp",
      "enabled": true
    }
  }
}

Ваши локальные значения конфигурации переопределяют удалённые значения по умолчанию. Подробнее см. приоритет конфигурации.


Локальные

Добавляйте локальные MCP-серверы, устанавливая type в "local" внутри объекта MCP.

opencode.jsonc
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "my-local-mcp-server": {
      "type": "local",
      // Или ["bun", "x", "my-mcp-command"]
      "command": ["npx", "-y", "my-mcp-command"],
      "enabled": true,
      "environment": {
        "MY_ENV_VAR": "my_env_var_value",
      },
    },
  },
}

Команда — это способ запуска локального MCP-сервера. Вы также можете передать список переменных окружения.

Например, вот как можно добавить тестовый MCP-сервер @modelcontextprotocol/server-everything (opens in a new tab).

opencode.jsonc
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "mcp_everything": {
      "type": "local",
      "command": ["npx", "-y", "@modelcontextprotocol/server-everything"],
    },
  },
}

Чтобы использовать его, я могу добавить use the mcp_everything tool в свои запросы.

use the mcp_everything tool to add the number 3 and 4

Параметры

Вот все параметры для настройки локального MCP-сервера.

ПараметрТипОбязательныйОписание
typeStringДаТип подключения MCP-сервера, должен быть "local".
commandArrayДаКоманда и аргументы для запуска MCP-сервера.
environmentObjectПеременные окружения для установки при запуске сервера.
enabledBooleanВключить или отключить MCP-сервер при запуске.
timeoutNumberТайм-аут в мс для получения инструментов от MCP-сервера. По умолчанию 5000 (5 секунд).

Удалённые

Добавляйте удалённые MCP-серверы, устанавливая type в "remote".

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"
      }
    }
  }
}

url — это URL удалённого MCP-сервера, а с помощью параметра headers вы можете передать список заголовков.


Параметры

ПараметрТипОбязательныйОписание
typeStringДаТип подключения MCP-сервера, должен быть "remote".
urlStringДаURL удалённого MCP-сервера.
enabledBooleanВключить или отключить MCP-сервер при запуске.
headersObjectЗаголовки для отправки с запросом.
oauthObjectКонфигурация OAuth-аутентификации. См. раздел OAuth ниже.
timeoutNumberТайм-аут в мс для получения инструментов от MCP-сервера. По умолчанию 5000 (5 секунд).

OAuth

OpenCode автоматически обрабатывает OAuth-аутентификацию для удалённых MCP-серверов. Когда сервер требует аутентификации, OpenCode:

  • Обнаруживает ответ 401 и инициирует OAuth-поток
  • Использует Dynamic Client Registration (RFC 7591), если поддерживается сервером
  • Безопасно сохраняет токены для будущих запросов

Автоматическая

Для большинства MCP-серверов с поддержкой OAuth специальная настройка не требуется. Просто настройте удалённый сервер:

opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "my-oauth-server": {
      "type": "remote",
      "url": "https://mcp.example.com/mcp"
    }
  }
}

Если сервер требует аутентификации, OpenCode предложит вам аутентифицироваться при первой попытке использования. В противном случае вы можете вручную запустить поток с помощью opencode mcp auth <server-name>.


Предварительно зарегистрированные

Если у вас есть учётные данные клиента от провайдера MCP-сервера, вы можете их настроить:

opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "my-oauth-server": {
      "type": "remote",
      "url": "https://mcp.example.com/mcp",
      "oauth": {
        "clientId": "{env:MY_MCP_CLIENT_ID}",
        "clientSecret": "{env:MY_MCP_CLIENT_SECRET}",
        "scope": "tools:read tools:execute"
      }
    }
  }
}

Аутентификация

Вы можете вручную запустить аутентификацию или управлять учётными данными.

Аутентификация с определённым MCP-сервером:

opencode mcp auth my-oauth-server

Список всех MCP-серверов и их статуса аутентификации:

opencode mcp list

Удаление сохранённых учётных данных:

opencode mcp logout my-oauth-server

Команда mcp auth откроет ваш браузер для авторизации. После авторизации OpenCode безопасно сохранит токены в ~/.local/share/opencode/mcp-auth.json.


Отключение OAuth

Если вы хотите отключить автоматический OAuth для сервера (например, для серверов, использующих API-ключи), установите oauth в false:

opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "my-api-key-server": {
      "type": "remote",
      "url": "https://mcp.example.com/mcp",
      "oauth": false,
      "headers": {
        "Authorization": "Bearer {env:MY_API_KEY}"
      }
    }
  }
}

Параметры OAuth

ПараметрТипОписание
oauthObject | falseОбъект конфигурации OAuth или false для отключения автоопределения OAuth.
clientIdStringID клиента OAuth. Если не указан, будет предпринята попытка динамической регистрации клиента.
clientSecretStringСекрет клиента OAuth, если требуется сервером авторизации.
scopeStringOAuth-области для запроса во время авторизации.

Отладка

Если удалённый MCP-сервер не может аутентифицироваться, вы можете диагностировать проблемы с помощью:

# Просмотр статуса аутентификации для всех серверов с поддержкой OAuth
opencode mcp auth list
 
# Отладка подключения и OAuth-потока для определённого сервера
opencode mcp debug my-oauth-server

Команда mcp debug показывает текущий статус аутентификации, тестирует HTTP-подключение и пытается выполнить OAuth-обнаружение.


Управление

Ваши MCP доступны как инструменты в OpenCode наряду со встроенными инструментами. Поэтому вы можете управлять ими через конфигурацию OpenCode, как любым другим инструментом.


Глобально

Это означает, что вы можете включать или отключать их глобально.

opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "my-mcp-foo": {
      "type": "local",
      "command": ["bun", "x", "my-mcp-command-foo"]
    },
    "my-mcp-bar": {
      "type": "local",
      "command": ["bun", "x", "my-mcp-command-bar"]
    }
  },
  "tools": {
    "my-mcp-foo": false
  }
}

Мы также можем использовать glob-шаблон для отключения всех соответствующих MCP.

opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "my-mcp-foo": {
      "type": "local",
      "command": ["bun", "x", "my-mcp-command-foo"]
    },
    "my-mcp-bar": {
      "type": "local",
      "command": ["bun", "x", "my-mcp-command-bar"]
    }
  },
  "tools": {
    "my-mcp*": false
  }
}

Здесь мы используем glob-шаблон my-mcp* для отключения всех MCP.


По агентам

Если у вас большое количество MCP-серверов, вы можете захотеть включать их только для каждого агента и отключать глобально. Для этого:

  • Отключите его как инструмент глобально.
  • В вашей конфигурации агента включите MCP-сервер как инструмент.
opencode.json
{
  "$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
      }
    }
  }
}

Glob-шаблоны

Glob-шаблон использует простые regex-шаблоны:

  • * соответствует нулю или более любых символов (например, "my-mcp*" соответствует my-mcp_search, my-mcp_list и т.д.)
  • ? соответствует ровно одному символу
  • Все остальные символы соответствуют буквально

Инструменты MCP-сервера регистрируются с именем сервера в качестве префикса, поэтому для отключения всех инструментов сервера просто используйте:

"mymcpservername_*": false

Примеры

Ниже приведены примеры некоторых распространённых MCP-серверов. Вы можете отправить PR, если хотите задокументировать другие серверы.


Sentry

Добавьте Sentry MCP-сервер (opens in a new tab) для взаимодействия с вашими проектами и задачами Sentry.

opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "sentry": {
      "type": "remote",
      "url": "https://mcp.sentry.dev/mcp",
      "oauth": {}
    }
  }
}

После добавления конфигурации аутентифицируйтесь в Sentry:

opencode mcp auth sentry

Это откроет окно браузера для завершения OAuth-потока и подключения OpenCode к вашей учётной записи Sentry.

После аутентификации вы можете использовать инструменты Sentry в своих запросах для получения информации о задачах, проектах и данных об ошибках.

Show me the latest unresolved issues in my project. use sentry

Context7

Добавьте Context7 MCP-сервер (opens in a new tab) для поиска по документации.

opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "context7": {
      "type": "remote",
      "url": "https://mcp.context7.com/mcp"
    }
  }
}

Если вы зарегистрировали бесплатную учётную запись, вы можете использовать свой API-ключ и получить более высокие лимиты.

opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "context7": {
      "type": "remote",
      "url": "https://mcp.context7.com/mcp",
      "headers": {
        "CONTEXT7_API_KEY": "{env:CONTEXT7_API_KEY}"
      }
    }
  }
}

Здесь мы предполагаем, что у вас установлена переменная окружения CONTEXT7_API_KEY.

Добавьте use context7 в свои запросы для использования Context7 MCP-сервера.

Configure a Cloudflare Worker script to cache JSON API responses for five minutes. use context7

Альтернативно, вы можете добавить что-то подобное в ваш AGENTS.md.

AGENTS.md
When you need to search docs, use `context7` tools.

Grep by Vercel

Добавьте MCP-сервер Grep by Vercel (opens in a new tab) для поиска фрагментов кода на GitHub.

opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "gh_grep": {
      "type": "remote",
      "url": "https://mcp.grep.app"
    }
  }
}

Поскольку мы назвали наш MCP-сервер gh_grep, вы можете добавить use the gh_grep tool в свои запросы, чтобы агент использовал его.

What's the right way to set a custom domain in an SST Astro component? use the gh_grep tool

Альтернативно, вы можете добавить что-то подобное в ваш AGENTS.md.

AGENTS.md
If you are unsure how to do something, use `gh_grep` to search code examples from GitHub.