Download packages/web/src/content/docs/ko/mcp-servers.mdx from SaylorTwift/opencode: direct link, hf CLI and curl.
- Browser
- Download file 14.4 kB
-
https://huggingface.co/SaylorTwift/opencode/resolve/main/packages/web/src/content/docs/ko/mcp-servers.mdx
- Command line
-
hf download hf://SaylorTwift/opencode/packages/web/src/content/docs/ko/mcp-servers.mdx
-
curl -L -o mcp-servers.mdx https://huggingface.co/SaylorTwift/opencode/resolve/main/packages/web/src/content/docs/ko/mcp-servers.mdx
14.4 kB
| title: MCP ์๋ฒ | |
| description: ๋ก์ปฌ ๋ฐ ์๊ฒฉ MCP ๋๊ตฌ๋ฅผ ์ถ๊ฐํ์ธ์. | |
| Model Context Protocol , ๋๋ MCP๋ฅผ ์ฌ์ฉํ์ฌ opencode์ ์ธ๋ถ ๋๊ตฌ๋ฅผ ์ถ๊ฐํ ์ ์์ต๋๋ค. opencode๋ ๋ก์ปฌ ๋ฐ ์๊ฒฉ ์๋ฒ๋ฅผ ๋ชจ๋ ์ง์ํฉ๋๋ค. | |
| ์ถ๊ฐ๋๋ฉด MCP ๋๊ตฌ๋ ๋ด์ฅ ๋๊ตฌ์ ํจ๊ป LLM์ ์๋์ผ๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค. | |
| #### ์ฃผ์์ฌํญ | |
| MCP ์๋ฒ๋ฅผ ์ฌ์ฉํ ๋ ์ปจํ ์คํธ์ ์ถ๊ฐ๋ฉ๋๋ค. ๋๊ตฌ๊ฐ ๋ง์ผ๋ฉด ์ปจํ ์คํธ๊ฐ ๋น ๋ฅด๊ฒ ์ฑ์์ง ์ ์์ต๋๋ค. ๊ทธ๋์ ์ฐ๋ฆฌ๋ ๋น์ ์ด ์ฌ์ฉํ๋ MCP ์๋ฒ์ ์ฃผ์๋ฅผ ๊ธฐ์ธ์ฌ์ผ ํฉ๋๋ค. | |
| :::tip | |
| MCP ์๋ฒ๋ ๊ทํ์ ์ปจํ ์คํธ์ ์ถ๊ฐํ๋ฏ๋ก, ํ์ฑํํ ์ ์๋ ๊ฒ์ ์ฃผ์ํด์ผ ํฉ๋๋ค. | |
| ::: | |
| GitHub MCP ์๋ฒ์ ๊ฐ์ ํน์ MCP ์๋ฒ๋ ๋ง์ ํ ํฐ์ ์ถ๊ฐํ๊ณ ์ปจํ ์คํธ ์ ํ์ ์ฝ๊ฒ ์ด๊ณผ ํ ์ ์์ต๋๋ค. | |
| ## ๊ตฌ์ฑ | |
| `mcp`์์ MCP ์๋ฒ๋ฅผ ์ ์ํ ์ ์์ต๋๋ค. ๊ฐ MCP๋ฅผ ๊ณ ์ ์ด๋ฆ์ผ๋ก ์ถ๊ฐํฉ๋๋ค. LLM์ ํ๋กฌํํธํ ๋ MCP๋ฅผ ์ฐธ์กฐํ ์ ์์ต๋๋ค. | |
| ```jsonc title="opencode.jsonc" {6} | |
| { | |
| "$schema": "https://opencode.ai/config.json", | |
| "mcp": { | |
| "name-of-mcp-server": { | |
| // ... | |
| "enabled": true, | |
| }, | |
| "name-of-other-mcp-server": { | |
| // ... | |
| }, | |
| }, | |
| } | |
| ``` | |
| `enabled`๋ฅผ `false`๋ก ์ค์ ํ์ฌ ์๋ฒ๋ฅผ ๋นํ์ฑํ ํ ์ ์์ต๋๋ค. config์์ ์ ๊ฑฐํ์ง ์๊ณ ์๋ฒ๋ฅผ ์ผ์์ ์ผ๋ก ๋นํ์ฑํํ๋ ค๋ ๊ฒฝ์ฐ ์ ์ฉํฉ๋๋ค. | |
| ### ์๊ฒฉ ๊ธฐ๋ณธ๊ฐ ์ฌ์ ์ | |
| ์กฐ์ง์ `.well-known/opencode` ์๋ํฌ์ธํธ๋ฅผ ํตํด ๊ธฐ๋ณธ MCP ์๋ฒ๋ฅผ ์ ๊ณต ํ ์ ์์ต๋๋ค. ์ด ์๋ฒ๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๋นํ์ฑํ ๋ ์ ์์ผ๋ฉฐ ์ฌ์ฉ์๊ฐ ํ์ํ ๊ฒ๋ค์ ๋ํด ์ ํ ํ ์ ์์ต๋๋ค. | |
| ์กฐ์ง์ ์๊ฒฉ ์ค์ ์์ ํน์ ์๋ฒ๋ฅผ ํ์ฑํํ๋ ค๋ฉด `enabled: true`๋ก ๋ก์ปฌ ๊ตฌ์ฑ์ ์ถ๊ฐํ์ญ์์ค. | |
| ```json title="opencode.json" | |
| { | |
| "$schema": "https://opencode.ai/config.json", | |
| "mcp": { | |
| "jira": { | |
| "type": "remote", | |
| "url": "https://jira.example.com/mcp", | |
| "enabled": true | |
| } | |
| } | |
| } | |
| ``` | |
| ๋ก์ปฌ ์ค์ ๊ฐ์ ์๊ฒฉ ๊ธฐ๋ณธ๊ฐ์ ๋ฌด์ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ [config precedence](/docs/config#precedence-order)๋ฅผ ์ฐธ์กฐํ์ญ์์ค. | |
| ## ๋ก์ปฌ | |
| MCP ๊ฐ์ฒด ๋ด์์ `type`๋ฅผ `"local"`๋ก ์ฌ์ฉํ๋ ๋ก์ปฌ MCP ์๋ฒ๋ฅผ ์ถ๊ฐํ์ญ์์ค. | |
| ```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", | |
| }, | |
| }, | |
| }, | |
| } | |
| ``` | |
| ๋ช ๋ น์ ๋ก์ปฌ MCP ์๋ฒ๊ฐ ์์๋๋ ๋ฐฉ๋ฒ์ ๋๋ค. ๋ํ ํ๊ฒฝ ๋ณ์ ๋ชฉ๋ก์์ ์ ๋ฌํ ์ ์์ต๋๋ค. | |
| ์๋ฅผ ๋ค์ด, ํ ์คํธ [`@modelcontextprotocol/server-everything`](https://www.npmjs.com/package/@modelcontextprotocol/server-everything) MCP ์๋ฒ๋ฅผ ์ถ๊ฐํ ์ ์๋ ๋ฐฉ๋ฒ์ ๋๋ค. | |
| ```jsonc title="opencode.jsonc" | |
| { | |
| "$schema": "https://opencode.ai/config.json", | |
| "mcp": { | |
| "mcp_everything": { | |
| "type": "local", | |
| "command": ["npx", "-y", "@modelcontextprotocol/server-everything"], | |
| }, | |
| }, | |
| } | |
| ``` | |
| ๊ทธ๋ฆฌ๊ณ `use the mcp_everything tool`๋ฅผ ๋ด ํ๋กฌํํธ์ ์ถ๊ฐํ ์ ์์ต๋๋ค. | |
| ```txt "mcp_everything" | |
| use the mcp_everything tool to add the number 3 and 4 | |
| ``` | |
| #### ์ต์ | |
| ๋ก์ปฌ MCP ์๋ฒ๋ฅผ ๊ตฌ์ฑํ๋ ๋ชจ๋ ์ต์ ์ด ์์ต๋๋ค. | |
| | ์ต์ | ํ์ | ํ์ | ์ค๋ช | | |
| | ------------- | ------- | ---- | ----------------------------------------------------- | | |
| | `type` | ๋ฌธ์์ด | Y | MCP ์๋ฒ ์ฐ๊ฒฐ ์ ํ์ `"local"`. | | |
| | `command` | Array | Y | MCP ์๋ฒ๋ฅผ ์คํํ๋ ๋ช ๋ น๊ณผ ์ธ์. | | |
| | `environment` | ๊ฐ์ฒด | | ์๋ฒ ์คํ์ ์ค์ ํ๋ ํ๊ฒฝ ๋ณ์ | | |
| | `enabled` | boolean | | ์๋์์ MCP ์๋ฒ ์ฌ์ฉ ๊ฐ๋ฅ | | |
| | `timeout` | number | | MCP ์๋ฒ์์ ํํํด์ ์ํ ํ์์์ ๊ธฐ๋ณธ 5000 (5 ์ด). | | |
| ## ์๊ฒฉ | |
| `type`๋ฅผ `"remote"`๋ก ์ค์ ํ์ฌ ์๊ฒฉ MCP ์๋ฒ๋ฅผ ์ถ๊ฐํ์ญ์์ค. | |
| ```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`๋ ์๊ฒฉ MCP ์๋ฒ์ URL์ด๋ฉฐ `headers` ์ต์ ์ผ๋ก ํค๋ ๋ชฉ๋ก์์ ์ ๋ฌํ ์ ์์ต๋๋ค. | |
| #### ์ต์ | |
| | ์ต์ | ํ์ | ํ์ | ์ค๋ช | | |
| | --------- | ------- | ---- | ----------------------------------------------------------- | | |
| | `type` | ๋ฌธ์์ด | Y | MCP ์๋ฒ ์ฐ๊ฒฐ ์ ํ์ `"remote"`. | | |
| | `url` | ๋ฌธ์์ด | Y | ์๊ฒฉ MCP ์๋ฒ์ URL. | | |
| | `enabled` | boolean | | ์๋์์ MCP ์๋ฒ ์ฌ์ฉ ๊ฐ๋ฅ | | |
| | `headers` | ๊ฐ์ฒด | | ํค๋๋ฌ๋ ์์ฒญ์ผ๋ก ๋ณด๋ด๋๋ฆฝ๋๋ค. | | |
| | `oauth` | ๊ฐ์ฒด | | OAuth ์ธ์ฆ ๊ตฌ์ฑ [OAuth](#oauth) ์๋์ ์น์ ์ ์ฐธ์กฐํ์ญ์์ค. | | |
| | `timeout` | number | | MCP ์๋ฒ์์ ํํํด์ ์ํ ํ์์์ ๊ธฐ๋ณธ 5000 (5 ์ด). | | |
| ## OAuth | |
| opencode๋ ์๊ฒฉ MCP ์๋ฒ์ ๋ํ OAuth ์ธ์ฆ์ ์๋์ผ๋ก ์ฒ๋ฆฌํฉ๋๋ค. ์๋ฒ๊ฐ ์ธ์ฆ์ด ํ์ํ ๋, opencode๋: | |
| 1. 401 ์๋ต์ ๊ฒ์ถํ๊ณ OAuth ํ๋ฆ์ ์์ | |
| 2. **Dynamic Client ๋ฑ๋ก (RFC 7591) ** ์๋ฒ์์ ์ง์๋๋ ๊ฒฝ์ฐ | |
| 3. ๋ฏธ๋์ ์์ฒญ์ ๋ํด ์์ ํ๊ฒ ๋ณด๊ด ํ ํฐ | |
| ## ์๋ ์ค์ | |
| ๋๋ถ๋ถ์ OAuth-enabled MCP ์๋ฒ๋ฅผ ์ํด, ํน๋ณํ ๊ตฌ์ฑ์ ํ์ํ์ง ์์ต๋๋ค. ์๊ฒฉ ์๋ฒ๋ฅผ ๊ตฌ์ฑ: | |
| ```json title="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>`๋ฅผ ์ฌ์ฉํ์ฌ [์๋์ผ๋ก ํธ๋ฆฌ๊ฑฐ](#authenticating)ํ ์ ์์ต๋๋ค. | |
| ### ์ฌ์ ๋ฑ๋ก | |
| MCP ์๋ฒ ๊ณต๊ธ์์ ํด๋ผ์ด์ธํธ ์๊ฒฉ์ด์๋ ๊ฒฝ์ฐ, ๊ตฌ์ฑ ํ ์ ์์ต๋๋ค. | |
| ```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" | |
| } | |
| } | |
| } | |
| } | |
| ``` | |
| ### ์ธ์ฆ | |
| ์ธ์ฆ ๋๋ ์๊ฒฉ ์ฆ๋ช ์ ์๋์ผ๋ก ํธ๋ฆฌ๊ฑฐ ํ ์ ์์ต๋๋ค. | |
| ํน์ MCP ์๋ฒ์ ์ธ์ฆ: | |
| ```bash | |
| opencode mcp auth my-oauth-server | |
| ``` | |
| ๋ชจ๋ MCP ์๋ฒ๋ฅผ ๋์ดํ๊ณ auth ์ํ: | |
| ```bash | |
| opencode mcp list | |
| ``` | |
| ์ ์ฅ๋ ์๊ฒฉ ์ ๊ฑฐ: | |
| ```bash | |
| opencode mcp logout my-oauth-server | |
| ``` | |
| `mcp auth` ๋ช ๋ น์ ์ฌ์ฉ์์ ๋ธ๋ผ์ฐ์ ๋ฅผ ์ฝ๋๋ค. `~/.local/share/opencode/mcp-auth.json`์์ ํ ํฐ์ ์์ ํ๊ฒ ์ ์ฅํฉ๋๋ค. | |
| #### OAuth ๋นํ์ฑํ | |
| ์๋ฒ์ ์๋ OAuth๋ฅผ ๋นํ์ฑํํ๋ ค๋ ๊ฒฝ์ฐ (์๋ฅผ ๋ค์ด, ๋์ API ํค๋ฅผ ์ฌ์ฉํ๋ ์๋ฒ), `oauth`๋ฅผ `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 ์ต์ | |
| | ์ต์ | ์ ํ | ์ค๋ช | | |
| | -------------- | ------------- | --------------------------------------------------------------------------- | | |
| | `oauth` | ๊ฐ์ฒด \| false | OAuth config object, ๋๋ `false`๋ฅผ ๋นํ์ฑํํ๋ OAuth ์๋๊ฒ์ถ. ยท | | |
| | `clientId` | ๋ฌธ์์ด | OAuth ํด๋ผ์ด์ธํธ ID. ์ ๊ณต๋์ง ์์ ๊ฒฝ์ฐ, ๋์ ํด๋ผ์ด์ธํธ ๋ฑ๋ก ์๋๋ฉ๋๋ค. ยท | | |
| | `clientSecret` | String | OAuth ํด๋ผ์ด์ธํธ ๋น๋ฐ, ํ๊ฐ์ ์๋ฒ๊ฐ ํ์ํ ๊ฒฝ์ฐ. | | |
| | `scope` | String | OAuth ๋ฒ์๋ ์ธ์ฆ ์ค์ ๋๋ค. | | |
| ###### ๋๋ฒ๊น | |
| ์๊ฒฉ MCP ์๋ฒ๊ฐ ์ธ์ฆ์ ์คํจํ๋ฉด ๋ค์๊ณผ ๊ฐ์ ๋ฌธ์ ๋ฅผ ์ง๋จ ํ ์ ์์ต๋๋ค. | |
| ```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 | |
| ``` | |
| `mcp debug` ๋ช ๋ น์ ํ์ฌ auth ์ํ๋ฅผ ๋ณด์ฌ ์ฃผ๋ฉฐ HTTP ์ฐ๊ฒฐ์ ํ ์คํธํ๊ณ OAuth ๋ฐ๊ฒฌ ํ๋ฆ์ ์๋ํฉ๋๋ค. | |
| ## ๊ด๋ฆฌ | |
| MCP๋ opencode์ ๋๊ตฌ๋ก ์ฌ์ฉํ ์ ์์ผ๋ฉฐ ๋ด์ฅ ๋๊ตฌ์ ํจ๊ป ์ฌ์ฉํ ์ ์์ต๋๋ค. ๋ค๋ฅธ ๋๊ตฌ์ ๊ฐ์ด opencode config๋ฅผ ํตํด ๊ด๋ฆฌํ ์ ์์ต๋๋ค. | |
| ## ์ ์ญ | |
| ์ด๋ ์ ์ญ์ ์ผ๋ก ํ์ฑํํ๊ฑฐ๋ ๋นํ์ฑํํ ์ ์์์ ์๋ฏธํฉ๋๋ค. | |
| ```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 | |
| } | |
| } | |
| ``` | |
| ๋ํ glob ํจํด์ ์ฌ์ฉํ์ฌ ์ผ์นํ๋ ๋ชจ๋ MCP๋ฅผ ๋นํ์ฑํํ ์ ์์ต๋๋ค. | |
| ```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 | |
| } | |
| } | |
| ``` | |
| ์ฌ๊ธฐ์ ์ฐ๋ฆฌ๋ ๋ชจ๋ MCP๋ฅผ ๋นํ์ฑํํ๋ glob ํจํด `my-mcp*`๋ฅผ ์ฌ์ฉํฉ๋๋ค. | |
| ## ์์ด์ ํธ๋ณ | |
| ๋ง์ MCP ์๋ฒ๊ฐ ์๋ค๋ฉด ์ ์ญ์ ์ผ๋ก๋ ๋นํ์ฑํํ๊ณ ์์ด์ ํธ๋ณ๋ก๋ง ํ์ฑํํ ์ ์์ต๋๋ค. ์ด ์์ ์ ์ํ: | |
| 1. ๊ธ๋ก๋ฒ ๋๊ตฌ๋ก ์ฌ์ฉ ๊ฐ๋ฅ. | |
| 2. [agent config](/docs/agents#tools)์์ MCP ์๋ฒ๋ฅผ ๋๊ตฌ๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค. | |
| ```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 ํจํด | |
| glob ํจํด์ ๊ฐ๋จํ regex globbing ํจํด์ ์ฌ์ฉํฉ๋๋ค : | |
| - `*`๋ ์ด๋ค ํน์ฑ (์๋ฅผ๋ค๋ฉด, `"my-mcp*"` ๊ฒฝ๊ธฐ `my-mcp_search`, `my-mcp_list`, ๋ฑ)์ 0๊ฐ ์ด์ ์ผ์นํฉ๋๋ค. | |
| - `?`๋ ์ ํํ ํ๋์ ๋ฌธ์ ์ผ์น | |
| - ๋ค๋ฅธ ๋ชจ๋ ๋ฌธ์ ์ผ์น ๋ง ๊ทธ๋๋ก | |
| :::note | |
| MCP ์๋ฒ ๋๊ตฌ๋ ์๋ฒ ์ด๋ฆ์ผ๋ก prefix๋ก ๋ฑ๋ก๋๋ฏ๋ก ์๋ฒ์ ๋ชจ๋ ๋๊ตฌ๋ฅผ ๊ฐ๋จํ๊ฒ ์ฌ์ฉํ ์ ์์ต๋๋ค. | |
| ``` | |
| "mymcpservername_*": false | |
| ``` | |
| ::: | |
| ## ์์ | |
| ๋ค์์ ์ผ๋ฐ์ ์ธ MCP ์๋ฒ์ ์์ ๋๋ค. ๋ค๋ฅธ ์๋ฒ์ ๋ฌธ์๋ฅผ ์์ฑํ๋ ค๋ฉด PR์ ์ ์ถํ ์ ์์ต๋๋ค. | |
| #### Sentry | |
| [Sentry MCP ์๋ฒ](https://mcp.sentry.dev)๋ฅผ ์ถ๊ฐํ์ฌ Sentry ํ๋ก์ ํธ์ ๋ฌธ์ ์ ์ํธ ์์ฉํฉ๋๋ค. | |
| ```json title="opencode.json" {4-8} | |
| { | |
| "$schema": "https://opencode.ai/config.json", | |
| "mcp": { | |
| "sentry": { | |
| "type": "remote", | |
| "url": "https://mcp.sentry.dev/mcp", | |
| "oauth": {} | |
| } | |
| } | |
| } | |
| ``` | |
| ๊ตฌ์ฑ์ ์ถ๊ฐ ํ ํ, Sentry๋ก ์ธ์ฆ: | |
| ```bash | |
| opencode mcp auth sentry | |
| ``` | |
| ๋ธ๋ผ์ฐ์ ์ฐฝ์ ์ด์ด OAuth ํ๋ฆ์ ์๋ฃํ๊ณ opencode๋ฅผ Sentry ๊ณ์ ์ ์ฐ๊ฒฐํ์ญ์์ค. | |
| ์ผ๋จ ์ธ์ฆ๋๋ฉด, ๋น์ ์ ์ฟผ๋ฆฌ ๋ฌธ์ , ํ๋ก์ ํธ, ์ค๋ฅ ๋ฐ์ดํฐ์ ๋ํ ํ๋ฆฐํธ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. | |
| ```txt "use sentry" | |
| Show me the latest unresolved issues in my project. use sentry | |
| ``` | |
| ### Context7 | |
| [Context7 MCP ์๋ฒ](https://github.com/upstash/context7)์ ์ถ๊ฐํ์ฌ ๋ฌธ์๋ฅผ ๊ฒ์ํฉ๋๋ค. | |
| ```json title="opencode.json" {4-7} | |
| { | |
| "$schema": "https://opencode.ai/config.json", | |
| "mcp": { | |
| "context7": { | |
| "type": "remote", | |
| "url": "https://mcp.context7.com/mcp" | |
| } | |
| } | |
| } | |
| ``` | |
| ๋ฌด๋ฃ ๊ณ์ ์ผ๋ก ๊ฐ์ ํ ๊ฒฝ์ฐ API ํค๋ฅผ ์ฌ์ฉํ์ฌ ๋ ๋์ ์๋ ์ ํ์ ์ป์ ์ ์์ต๋๋ค. | |
| ```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}" | |
| } | |
| } | |
| } | |
| } | |
| ``` | |
| ์ฌ๊ธฐ์์ ์ฐ๋ฆฌ๋ ๋น์ ์ด `CONTEXT7_API_KEY` ํ๊ฒฝ ๋ณ์ ์ธํธ๊ฐ ์๋ค๋ ๊ฒ์ assuming์ ๋๋ค. | |
| Context7 MCP ์๋ฒ๋ฅผ ์ฌ์ฉํ์ฌ `use context7`๋ฅผ ์ ์ํ๊ฒ ์ถ๊ฐํ์ญ์์ค. | |
| ```txt "use context7" | |
| Configure a Cloudflare Worker script to cache JSON API responses for five minutes. use context7 | |
| ``` | |
| ๋์์ผ๋ก, ๋น์ ์์ด ๊ฐ์ ๋ญ๊ฐ๋ฅผ ์ถ๊ฐ ํ ์ ์์ต๋๋ค [AGENTS.md](/docs/rules/). | |
| ```md title="AGENTS.md" | |
| When you need to search docs, use `context7` tools. | |
| ``` | |
| ## Grep by Vercel | |
| [Grep by Vercel](https://grep.app) MCP ์๋ฒ๋ฅผ ์ถ๊ฐํ์ฌ GitHub์์ ์ฝ๋ ์ค๋ํซ์ ๊ฒ์ํฉ๋๋ค. | |
| ```json title="opencode.json" {4-7} | |
| { | |
| "$schema": "https://opencode.ai/config.json", | |
| "mcp": { | |
| "gh_grep": { | |
| "type": "remote", | |
| "url": "https://mcp.grep.app" | |
| } | |
| } | |
| } | |
| ``` | |
| MCP ์๋ฒ `gh_grep`๋ผ๋ ์ด๋ฆ์ผ๋ก, `use the gh_grep tool`๋ฅผ ์ถ๊ฐํ ์ ์์ต๋๋ค. | |
| ```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 | |
| ``` | |
| ๋์์ผ๋ก, ๋น์ ์์ด ๊ฐ์ ๋ญ๊ฐ๋ฅผ ์ถ๊ฐ ํ ์ ์์ต๋๋ค [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. | |
| ``` | |