Przejdź do głównej zawartości

Serwery MCP

Dodaj lokalne i zdalne narzędzie MCP.

Możesz dodać dodatkowe informacje do opencode za pomocą Model Context Protocol, w skrócie MCP. opencode obsługuje zarówno serwery lokalne, jak i zdalne.

Po dodaniu narzędzi MCP są automatycznie dostępne dla LLM wraz z narzędziami narzędziowymi.


Zastrzeżenia

Kiedy używasz serwera MCP, zmieniając kontekst. Może szybko się sumować, jeśli masz dużo narzędzia. Zalecamy ostrożność, z jakich serwerów MCP korzystasz.

Niektóre serwery MCP, takie jak serwer MCP GitHub, mają szerokie możliwości dodawania wielu tokenów i mogą łatwo przekraczać limit kontekstu.


Włączać

Dostępny serwery MCP w opencode Config w mcp. Dodaj każdy MCP z unikalną nazwą. Możesz zgłosić się do tego MCP po nazwie, pytając LLM.

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

Możesz także wyłączyć serwer, ustawiając enabled na false. Jest to urządzenie, które jest urządzeniem biologicznym, bez usuwania z urządzenia.


Zastępowanie zdalnych ustawień domyślnych

Organizacje mogą udostępniać serwery MCP za pośrednictwem punktu końcowego .well-known/opencode. Serwer może być podłączony, dzięki czemu użytkownicy mogą wybrać te, których.

Aby włączyć serwer ze zdalnej konfiguracji organizacji, dodaj go do wyłączenia za pomocą enabled: true:

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

Lokalne wartości konfiguracyjne za występujące zdalne wartości. Aby uzyskać więcej informacji, zobacz pierwszeństwo konfiguracji.


Lokalny

Dodaj lokalne serwery MCP za pomocą type do "local" w obiekcie MCP.

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

Polecenie sposobu uruchamiania lokalnego serwera MCP. Można także zainstalować listę konfiguracyjną.

Oto przykładowy sposób dodania testowego serwera MCP @modelcontextprotocol/server-everything.

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

Aby z niego skorzystać, można dodać use the mcp_everything tool do moich podpowiedzi.

use the mcp_everything tool to add the number 3 and 4

Opcje

Oto wszystkie opcje lokalnego serwera MCP.

OpcjaWpiszWymaganeOpis
typeStringYTyp połączenia z serwerem MCP musi być "local".
commandArrayYPolecenie i argumenty uruchamiające serwer MCP.
environmentObjectZmienne ustawienia podczas uruchamiania serwera.
enabledBooleanWłącz lub wyłącz serwer MCP podczas uruchamiania.
timeoutNumberLimit czasu w ms na pobieranie narzędzia z serwera MCP. Wartość domyślna do 5000 (5 sekund).

Zdalny

Dodaj zdalne serwery MCP, ustawiając type na "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 na adres URL zdalnego serwera MCP i za pomocą opcji headers można znaleźć listę nagłówków.


Opcje

OpcjaWpiszWymaganeOpis
typeStringYTyp połączenia z serwerem MCP musi być "remote".
urlStringYAdres URL zdalnego serwera MCP.
enabledBooleanWłącz lub wyłącz serwer MCP podczas uruchamiania.
headersObjectNagłówki do wysłania z wprowadzenia.
oauthObjectKonfiguracja uwierzytelniania OAuth. Zobacz sekcję OAuth poniżej.
timeoutNumberLimit czasu w ms na pobieranie narzędzia z serwera MCP. Wartość domyślna do 5000 (5 sekund).

OAuth

opencode automatyczne uwierzytelnianie OAuth dla zdalnych serwerów MCP. Gdy serwer wymaga uwierzytelnienia, opencode:

  1. Wykryj odpowiedź 401 i zainijuj przepływ OAuth
  2. używa Dynamicznej rejestracji klienta (RFC 7591), jeśli jest obsługiwana przez serwer
  3. Bezpiecznie przechowuj tokeny na wypadek ewentualnego zastosowania

Automatyczny

W innym serwerze MCP z włączoną funkcją OAuth nie jest wymagana specjalna funkcja. Dostępny serwer bezprzewodowy:

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

Jeśli serwer wymaga uwierzytelnienia, opencode poprosi Cię o uwierzytelnienie przy próbie jego użycia. Jeśli nie, możesz [ręcznie podłączyć przepływ] (#authenticating) za pomocą opencode mcp auth <server-name>.


Wstępnie zarejestrowany

Jeśli posiadasz dostęp do klienta od dostawcy serwera MCP, możesz je udostępnić:

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

Uwierzytelnianie

Możesz podać potwierdzenie lub potwierdzenie poświadczenia.

Uwierzytelnij się za pomocą standardowego serwera MCP:

Okno terminala
opencode mcp auth my-oauth-server

Lista wszystkich serwerów MCP i ich status uwierzytelnienia:

Okno terminala
opencode mcp list

Usuń zapisane dane uwierzytelniające:

Okno terminala
opencode mcp logout my-oauth-server

Komenda mcp auth została udostępniona w celu autoryzacji. Po autoryzacji opencode bezpieczne przechowa tokeny w ~/.local/share/opencode/mcp-auth.json.


Wyłączanie OAuth

Jeśli chcesz włączyć automatyczne OAuth dla serwera (np. dla serwerów, które zamiast tego używać kluczy API), ustaw oauth na 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}"
}
}
}
}

Opcje OAuth

OpcjaWpiszOpis
oauthObject | falseObiekt konfiguracyjny OAuth lub false, aby wyłączyć automatyczne wykrywanie OAuth.
clientIdStringIdentyfikator klienta OAuth. Jeżeli nie zostanie podany, zostanie podjęta próba dynamicznej rejestracji klienta.
clientSecretStringSekret klienta OAuth, plik jest wymagany przez serwer autoryzacji.
scopeStringZakresy protokołu OAuth, których należy żądać podczas autoryzacji.

Debugowanie

Jeśli serwer MCP nie może zostać uwierzytelniony, możesz zdiagnozować problemy z:

Okno terminala
# View auth status for all OAuth-capable servers
opencode mcp auth list
# Debug connection and OAuth flow for a specific server
opencode mcp debug my-oauth-server

Komenda mcp debug wyświetlanie stanu uwierzytelniania, testuje sprawdzanie protokołu HTTP i sprawdzenie sprawdzenia procesu OAuth.


Zarządzać

Twoje MCP są dostępne jako narzędzie w opencode, obok narzędzi dodatkowych. Można to zrobić poprzez podłączenie opencode, jak również w innym przypadku.


Światowy

Możesz to włączyć lub wyłączyć globalnie.

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

Dostępne są również wzorca globu, aby wyłączyć wszystkie dyski 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
}
}

Tutaj znajdziesz wzorca globalnego my-mcp*, aby wyłączyć wszystkie MCP.


Na agenta

Jeśli masz największe serwery MCP, możesz włączyć je tylko dla poszczególnych agentów i być globalnie. Aby to zrobić:

  1. Wyłącz go jako narzędzie globalnie.
  2. W konfiguracji agenta włącz serwer MCP jako narzędzie.
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
}
}
}
}

Wzory globusów

Wzorzec glob wykorzystuje proste wzorce globowania regularnych:

  • * dopasowuje zero lub więcej dowolnego znaku (np. "my-mcp*" dopasowuje my-mcp_search, my-mcp_list itd.)
  • ? odpowiada dokładnie jednemu znakowi
  • Wszystkie pozostałe znaki pasują dosłownie

Przykłady

Poniżej znajdują się przykłady niektórych serwerów MCP. Twój prywatny PR, udostępniany przez inne serwery.


Sentry

Dodaj serwer Sentry MCP, aby móc wejść w interakcję z projektem i udostępnić Sentry.

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

Po dodaniu konfiguracji uwierzytelnij się za pomocą Sentry:

Okno terminala
opencode mcp auth sentry

Spowoduje otwarcie okna konfiguracji, w którym można zakończyć proces OAuth i połączyć opencode z kontem Sentry.

Po uwierzytelnieniu oprogramowania Sentry w swoich monitach, aby rozprzestrzeniać zagrożenia, dane i błędy.

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

Context7

Dodaj serwer Context7 MCP, aby przeszukać dokumenty.

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

Jeśli założyłeś darmowe konto, możesz użyć klucza API i uzyskać wyższy limit stawek.

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

Załóż tutaj, że masz ustawioną zmienną środowiskową CONTEXT7_API_KEY.

Dodaj use context7 do swoich podpowiedzi, aby skorzystać z serwera Context7 MCP.

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

Alternatywnie możesz zadać coś takiego do pliku AGENTS.md.

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

Grep by Vercel

Dodaj serwer MCP Grep by Vercel, aby przeszukać fragmenty kodu w serwisie GitHub.

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

Nazwaliśmy nasz serwer MCP gh_grep, możesz dodać use the gh_grep tool do swoich podpowiedzi, aby agent mógł z niego korzystać.

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

Alternatywnie możesz zadać coś takiego do pliku AGENTS.md.

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