feat(mcp): add websearch_exa as built-in MCP

- Add src/mcp/ directory with websearch_exa configuration
- Configure Exa AI remote MCP (https://mcp.exa.ai/mcp)
- Export builtinMcps from plugin config
- Update documentation (EN/KO) with Built-in MCPs section
This commit is contained in:
YeonGyu-Kim
2025-12-05 02:15:39 +09:00
parent 7ac580566a
commit 6495fae979
5 changed files with 25 additions and 0 deletions

View File

@@ -13,6 +13,7 @@ English | [한국어](README.ko.md)
- [Built-in LSP Tools](#built-in-lsp-tools) - [Built-in LSP Tools](#built-in-lsp-tools)
- [Built-in AST-Grep Tools](#built-in-ast-grep-tools) - [Built-in AST-Grep Tools](#built-in-ast-grep-tools)
- [Safe Grep](#safe-grep) - [Safe Grep](#safe-grep)
- [Built-in MCPs](#built-in-mcps)
- [Other Features](#other-features) - [Other Features](#other-features)
- [Author's Note](#authors-note) - [Author's Note](#authors-note)
- [Warnings](#warnings) - [Warnings](#warnings)
@@ -117,6 +118,10 @@ I believe in the right tool for the job. For your wallet's sake, use CLIProxyAPI
- `safe_grep` enforces strict limits. - `safe_grep` enforces strict limits.
- **Note**: Default `grep` is disabled to prevent Agent confusion. `safe_grep` delivers full `grep` functionality with safety assurance. - **Note**: Default `grep` is disabled to prevent Agent confusion. `safe_grep` delivers full `grep` functionality with safety assurance.
#### Built-in MCPs
- **websearch_exa**: Exa AI web search. Performs real-time web searches and content scraping. Returns LLM-optimized context from relevant websites.
### Other Features ### Other Features
- **Terminal Title**: Auto-updates terminal title with session status (idle ○, processing ◐, tool ⚡, error ✖). Supports tmux. - **Terminal Title**: Auto-updates terminal title with session status (idle ○, processing ◐, tool ⚡, error ✖). Supports tmux.

View File

@@ -13,6 +13,7 @@
- [내장 LSP Tools](#내장-lsp-tools) - [내장 LSP Tools](#내장-lsp-tools)
- [내장 AST-Grep Tools](#내장-ast-grep-tools) - [내장 AST-Grep Tools](#내장-ast-grep-tools)
- [Safe Grep](#safe-grep) - [Safe Grep](#safe-grep)
- [내장 MCPs](#내장-mcps)
- [기타 편의 기능](#기타-편의-기능) - [기타 편의 기능](#기타-편의-기능)
- [작성자의 노트](#작성자의-노트) - [작성자의 노트](#작성자의-노트)
- [주의](#주의) - [주의](#주의)
@@ -119,6 +120,10 @@ OpenCode 는 아주 확장가능하고 아주 커스터마이저블합니다.
- safe_grep 은 timeout 과 더 엄격한 출력 제한을 적용합니다. - safe_grep 은 timeout 과 더 엄격한 출력 제한을 적용합니다.
- **주의**: 기본 grep 도구는 Agent 를 햇갈리게 하지 않기 위해 비활성화됩니다. 그러나 SafeGrep 은 Grep 이 제공하는 모든 기능을 제공합니다. - **주의**: 기본 grep 도구는 Agent 를 햇갈리게 하지 않기 위해 비활성화됩니다. 그러나 SafeGrep 은 Grep 이 제공하는 모든 기능을 제공합니다.
#### 내장 MCPs
- **websearch_exa**: Exa AI 웹 검색. 실시간 웹 검색과 콘텐츠 스크래핑을 수행합니다. 관련 웹사이트에서 LLM에 최적화된 컨텍스트를 반환합니다.
### 기타 편의 기능 ### 기타 편의 기능
- **Terminal Title**: 세션 상태에 따라 터미널 타이틀을 자동 업데이트합니다 (유휴 ○, 처리중 ◐, 도구 ⚡, 에러 ✖). tmux를 지원합니다. - **Terminal Title**: 세션 상태에 따라 터미널 타이틀을 자동 업데이트합니다 (유휴 ○, 처리중 ◐, 도구 ⚡, 에러 ✖). tmux를 지원합니다.

View File

@@ -3,6 +3,7 @@ import { builtinAgents } from "./agents"
import { createTodoContinuationEnforcer, createContextWindowMonitorHook, createSessionRecoveryHook } from "./hooks" import { createTodoContinuationEnforcer, createContextWindowMonitorHook, createSessionRecoveryHook } from "./hooks"
import { updateTerminalTitle } from "./features/terminal" import { updateTerminalTitle } from "./features/terminal"
import { builtinTools } from "./tools" import { builtinTools } from "./tools"
import { builtinMcps } from "./mcp"
const OhMyOpenCodePlugin: Plugin = async (ctx) => { const OhMyOpenCodePlugin: Plugin = async (ctx) => {
const todoContinuationEnforcer = createTodoContinuationEnforcer(ctx) const todoContinuationEnforcer = createTodoContinuationEnforcer(ctx)
@@ -27,6 +28,10 @@ const OhMyOpenCodePlugin: Plugin = async (ctx) => {
...config.tools, ...config.tools,
grep: false, grep: false,
} }
config.mcp = {
...config.mcp,
...builtinMcps,
}
}, },
event: async (input) => { event: async (input) => {

5
src/mcp/index.ts Normal file
View File

@@ -0,0 +1,5 @@
import { websearch_exa } from "./websearch-exa"
export const builtinMcps = {
websearch_exa,
}

5
src/mcp/websearch-exa.ts Normal file
View File

@@ -0,0 +1,5 @@
export const websearch_exa = {
type: "remote" as const,
url: "https://mcp.exa.ai/mcp?tools=web_search_exa",
enabled: true,
}