File size: 14,435 Bytes
0dbc9de | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 | ---
title: MCP-servere
description: Tilføj lokale og eksterne MCP værktøjer.
---
Du kan tilføje eksterne værktøjer til OpenCode ved hjælp af _Model Context Protocol_ eller MCP. OpenCode understøtter både lokale og eksterne servere.
Når de er tilføjet, er MCP automatisk tilgængelig for LLM sammen med indbyggede værktøjer.
---
#### Forbehold
Når du bruger en MCP-server, føjes den til konteksten. Dette kan hurtigt stige, hvis du har mange værktøjer. Så vi anbefaler at være forsigtig med hvilke MCP-servere du bruger.
:::tip
MCP-servere tilføjer til din kontekst, så du vil være forsigtig med, hvilke du aktiverer.
:::
Visse MCP-servere, som GitHub MCP-servere, har en tendens til at tilføje mange tokens og kan nemt overskride kontekstgrænsen.
---
## Aktivering
Du kan definere MCP-servere i din [OpenCode Config](https://opencode.ai/docs/config/) under `mcp`. Tilføj hver MCP med et unikt navn. Du kan henvise til denne MCP ved navn, når du spørger LLM.
```jsonc title="opencode.jsonc" {6}
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"name-of-mcp-server": {
// ...
"enabled": true,
},
"name-of-other-mcp-server": {
// ...
},
},
}
```
Du kan også deaktivere en server ved at indstille `enabled` til `false`. Dette er nyttigt, hvis du midlertidigt vil deaktivere en server uden at fjerne den fra din konfiguration.
---
### Tilsidesættelse af eksterne standarder
Organisationer kan levere standard MCP-servere via deres `.well-known/opencode`-slutpunkt. Disse servere kan være deaktiveret som standard, hvilket giver brugerne mulighed for at tilmelde sig dem, de har brug for.
For at aktivere en specifik server fra din organisationers fjernkonfiguration skal du tilføje den til din lokale konfiguration med `enabled: true`:
```json title="opencode.json"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"jira": {
"type": "remote",
"url": "https://jira.example.com/mcp",
"enabled": true
}
}
}
```
Dine lokale konfigurationsværdier tilsidesætter fjernstandarderne. Se [config precedence](/docs/config#precedence-order) for flere detaljer.
---
## Lokal
Tilføj lokale MCP-servere ved hjælp af `type` til `"local"` i MCP-objektet.
```jsonc title="opencode.jsonc" {15}
{
"$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",
},
},
},
}
```
Kommandoen er, hvordan den lokale MCP-server starter. Du kan også sende en liste over miljøvariabler ind.
For eksempel kan du tilføje test-MCP-serveren [`@modelcontextprotocol/server-everything`](https://www.npmjs.com/package/@modelcontextprotocol/server-everything).
```jsonc title="opencode.jsonc"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"mcp_everything": {
"type": "local",
"command": ["npx", "-y", "@modelcontextprotocol/server-everything"],
},
},
}
```
Og for at bruge det kan jeg tilføje `use the mcp_everything tool` til mine prompter.
```txt "mcp_everything"
use the mcp_everything tool to add the number 3 and 4
```
---
#### Indstillinger
Her er alle muligheder for at konfigurere en lokal MCP-server.
| Mulighed | Skriv | Påkrævet | Beskrivelse |
| ------------- | ------- | -------- | ------------------------------------------------------------------------------------ |
| `type` | String | Y | Type MCP serverforbindelse, skal være `"local"`. |
| `command` | Array | Y | Kommando og argumenter til at køre MCP-serveren. |
| `environment` | Object | | Miljøvariabler, der skal indstilles, når serveren kører. |
| `enabled` | Boolean | | Aktiver eller deaktiver MCP-serveren ved opstart. |
| `timeout` | Nummer | | Timeout i ms for at hente værktøjer fra MCP-serveren. Standard er 5000 (5 sekunder). |
---
## Ekstern
Tilføj ekstern MCP-server ved at indstille `type` til `"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"
}
}
}
}
```
`url` er URL for den eksterne MCP server, og med indstillingen `headers` kan du sende en liste over overskrifter ind.
---
#### Indstillinger
| Mulighed | Skriv | Påkrævet | Beskrivelse |
| --------- | ------- | -------- | ------------------------------------------------------------------------------------ |
| `type` | String | Y | Type MCP serverforbindelse, skal være `"remote"`. |
| `url` | String | Y | URL af den eksterne MCP-server. |
| `enabled` | Boolean | | Aktiver eller deaktiver MCP-serveren ved opstart. |
| `headers` | Object | | Overskrifter til at sende med anmodningen. |
| `oauth` | Object | | OAuth-godkendelseskonfiguration. Se afsnittet [OAuth](#oauth) nedenfor. |
| `timeout` | Nummer | | Timeout i ms for at hente værktøjer fra MCP-serveren. Standard er 5000 (5 sekunder). |
---
## OAuth
OpenCode håndterer automatisk OAuth-godkendelse for eksterne MCP-servere. Når en server kræver godkendelse, vil OpenCode:
1. Registrer 401-svaret, og start OAuth-flowet
2. Brug **Dynamic Client Registration (RFC 7591)**, hvis det understøtter af serveren
3. Opbevar tokens sikkert til fremtidige anmodninger
---
### Automatisk
For de fleste OAuth-aktiverede MCP-servere kræver ingen speciel konfiguration. Bare konfigureret fjernserver:
```json title="opencode.json"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"my-oauth-server": {
"type": "remote",
"url": "https://mcp.example.com/mcp"
}
}
}
```
Hvis serveren kræver godkendelse, vil OpenCode bede dig om at godkende, når du prøver at bruge den første gang. Hvis ikke, kan du [manually trigger the flow](#authenticating) med `opencode mcp auth <server-name>`.
---
### Forhåndsregistreret
Hvis du har klientlegitimationsoplysninger fra MCP-serverudbyderen, kan du konfigurere dem:
```json title="opencode.json" {7-11}
{
"$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"
}
}
}
}
```
---
### Godkendelse
Du kan manuelt udløse godkendelse eller administrere legitimationsoplysninger.
Godkendt med en specifik MCP-server:
```bash
opencode mcp auth my-oauth-server
```
Liste over alle MCP-servere og deres godkendelsesstatus:
```bash
opencode mcp list
```
Fjern gemte legitimationsoplysninger:
```bash
opencode mcp logout my-oauth-server
```
Kommandoen `mcp auth` åbner din browser for godkendelse. Når du har godkendt, vil OpenCode opbevare tokens sikkert i `~/.local/share/opencode/mcp-auth.json`.
---
#### Deaktivering af OAuth
Hvis du vil deaktivere automatisk OAuth for en server (f.eks. for servere, der bruger API-nøgler i stedet), skal du indstille `oauth` til `false`:
```json title="opencode.json" {7}
{
"$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-indstillinger
| Mulighed | Skriv | Beskrivelse |
| -------------- | --------------- | ----------------------------------------------------------------------------------------- |
| `oauth` | Object \| false | OAuth-konfigurationsobjekt eller `false` for at deaktivere OAuth-auto-detektion. |
| `clientId` | String | OAuth-klient-id. Hvis det ikke er angivet, vil dynamisk klientregistrering blive forsøgt. |
| `clientSecret` | String | OAuth-klienthemmelighed, hvis det kræves af autorisationsserveren. |
| `scope` | String | OAuth-omfang at anmode om under godkendelse. |
#### Fejlfinding
Hvis en ekstern MCP-server ikke kan godkendes, kan du diagnosticere problemer med:
```bash
# 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
```
Kommandoen `mcp debug` viser den aktuelle godkendelsesstatus, tester HTTP-forbindelse og forsøger OAuth-opdagelsesflowet.
---
## Administration
Dine MCPs er tilgængelige som værktøjer i **TK\_** sammen med indbyggede værktøjer. Så du kan administrere dem gennem OpenCode-konfigurationen som ethvert andet værktøj.
---
### Global
Det betyder, at du kan aktivere eller deaktivere dem globalt.
```json title="opencode.json" {14}
{
"$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
}
}
```
Vi kan også bruge et globmønster til at deaktivere alle matchende MCPs.
```json title="opencode.json" {14}
{
"$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
}
}
```
Her bruger vi globmønsteret `my-mcp*` til at deaktivere alle MCPs.
---
### Per agent
Hvis du har et stort antal MCP-servere, vil du måske kun aktivere dem pr. agent og deaktivere dem globalt. Sådan gør du:
1. Deaktiver det som et værktøj globalt.
2. Aktiver MCP-serveren som et værktøj i din [agent config](/docs/agents#tools).
```json title="opencode.json" {11, 14-18}
{
"$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-mønstre
Glob-mønsteret bruger simple regex-globing-mønstre:
- `*` matcher nul eller flere af ethvert tegn (f.eks. `"my-mcp*"` matcher `my-mcp_search`, `my-mcp_list` osv.)
- `?` matcher nøjagtigt ét tegn
- Alle andre karakterer matcher bogstaveligt talt
:::note
MCP serverværktøjer er registreret med servernavn som præfiks, så for at deaktivere alle værktøjer til en server skal du blot bruge:
```
"mymcpservername_*": false
```
:::
---
## Eksempler
Nedenfor er eksempler på nogle almindelige MCP-servere. Du kan indsende en PR, hvis du vil dokumentere andre servere.
---
### Sentry
Tilføj [Sentry MCP server](https://mcp.sentry.dev) for at interagere med dine Sentry-projekter og -problemer.
```json title="opencode.json" {4-8}
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"sentry": {
"type": "remote",
"url": "https://mcp.sentry.dev/mcp",
"oauth": {}
}
}
}
```
Efter tilføjelse af konfigurationen skal du godkende med Sentry:
```bash
opencode mcp auth sentry
```
Dette åbner et browservindue for at fuldføre OAuth-flowet og forbinde OpenCode til din Sentry-konto.
Når du er godkendt, kan du bruge Sentry-værktøjer i dine prompter til at forespørge om problemer, projekter og fejldata.
```txt "use sentry"
Show me the latest unresolved issues in my project. use sentry
```
---
### Context7
Tilføj [Context7 MCP server](https://github.com/upstash/context7) for at søge i dokumenter.
```json title="opencode.json" {4-7}
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"context7": {
"type": "remote",
"url": "https://mcp.context7.com/mcp"
}
}
}
```
Hvis du har tilmeldt dig en gratis konto, kan du bruge din API-nøgle og få højere satsgrænser.
```json title="opencode.json" {7-9}
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"context7": {
"type": "remote",
"url": "https://mcp.context7.com/mcp",
"headers": {
"CONTEXT7_API_KEY": "{env:CONTEXT7_API_KEY}"
}
}
}
}
```
Her antager vi, at du har sat miljøvariablen `CONTEXT7_API_KEY`.
Føj `use context7` til dine prompter for at bruge Context7 MCP server.
```txt "use context7"
Configure a Cloudflare Worker script to cache JSON API responses for five minutes. use context7
```
Alternativt kan du tilføje noget som dette til din [AGENTS.md](/docs/rules/).
```md title="AGENTS.md"
When you need to search docs, use `context7` tools.
```
---
### Grep by Vercel
Tilføj serveren [Grep by Vercel](https://grep.app) MCP for at søge gennem kodestykker på GitHub.
```json title="opencode.json" {4-7}
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"gh_grep": {
"type": "remote",
"url": "https://mcp.grep.app"
}
}
}
```
Da vi navngav vores MCP-server `gh_grep`, kan du tilføje `use the gh_grep tool` til dine prompter for at få agenten til at bruge den.
```txt "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
```
Alternativt kan du tilføje noget som dette til din [AGENTS.md](/docs/rules/).
```md title="AGENTS.md"
If you are unsure how to do something, use `gh_grep` to search code examples from GitHub.
```
|