From 6495fae9796677f970afa35da120f34c87c290ba Mon Sep 17 00:00:00 2001 From: YeonGyu-Kim Date: Fri, 5 Dec 2025 02:15:39 +0900 Subject: [PATCH] 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 --- README.en.md | 5 +++++ README.ko.md | 5 +++++ src/index.ts | 5 +++++ src/mcp/index.ts | 5 +++++ src/mcp/websearch-exa.ts | 5 +++++ 5 files changed, 25 insertions(+) create mode 100644 src/mcp/index.ts create mode 100644 src/mcp/websearch-exa.ts diff --git a/README.en.md b/README.en.md index d231f16..34039c1 100644 --- a/README.en.md +++ b/README.en.md @@ -13,6 +13,7 @@ English | [한국어](README.ko.md) - [Built-in LSP Tools](#built-in-lsp-tools) - [Built-in AST-Grep Tools](#built-in-ast-grep-tools) - [Safe Grep](#safe-grep) + - [Built-in MCPs](#built-in-mcps) - [Other Features](#other-features) - [Author's Note](#authors-note) - [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. - **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 - **Terminal Title**: Auto-updates terminal title with session status (idle ○, processing ◐, tool ⚡, error ✖). Supports tmux. diff --git a/README.ko.md b/README.ko.md index e830f1f..aa06ef7 100644 --- a/README.ko.md +++ b/README.ko.md @@ -13,6 +13,7 @@ - [내장 LSP Tools](#내장-lsp-tools) - [내장 AST-Grep Tools](#내장-ast-grep-tools) - [Safe Grep](#safe-grep) + - [내장 MCPs](#내장-mcps) - [기타 편의 기능](#기타-편의-기능) - [작성자의 노트](#작성자의-노트) - [주의](#주의) @@ -119,6 +120,10 @@ OpenCode 는 아주 확장가능하고 아주 커스터마이저블합니다. - safe_grep 은 timeout 과 더 엄격한 출력 제한을 적용합니다. - **주의**: 기본 grep 도구는 Agent 를 햇갈리게 하지 않기 위해 비활성화됩니다. 그러나 SafeGrep 은 Grep 이 제공하는 모든 기능을 제공합니다. +#### 내장 MCPs + +- **websearch_exa**: Exa AI 웹 검색. 실시간 웹 검색과 콘텐츠 스크래핑을 수행합니다. 관련 웹사이트에서 LLM에 최적화된 컨텍스트를 반환합니다. + ### 기타 편의 기능 - **Terminal Title**: 세션 상태에 따라 터미널 타이틀을 자동 업데이트합니다 (유휴 ○, 처리중 ◐, 도구 ⚡, 에러 ✖). tmux를 지원합니다. diff --git a/src/index.ts b/src/index.ts index efa5d34..e2f53d3 100644 --- a/src/index.ts +++ b/src/index.ts @@ -3,6 +3,7 @@ import { builtinAgents } from "./agents" import { createTodoContinuationEnforcer, createContextWindowMonitorHook, createSessionRecoveryHook } from "./hooks" import { updateTerminalTitle } from "./features/terminal" import { builtinTools } from "./tools" +import { builtinMcps } from "./mcp" const OhMyOpenCodePlugin: Plugin = async (ctx) => { const todoContinuationEnforcer = createTodoContinuationEnforcer(ctx) @@ -27,6 +28,10 @@ const OhMyOpenCodePlugin: Plugin = async (ctx) => { ...config.tools, grep: false, } + config.mcp = { + ...config.mcp, + ...builtinMcps, + } }, event: async (input) => { diff --git a/src/mcp/index.ts b/src/mcp/index.ts new file mode 100644 index 0000000..cef2b82 --- /dev/null +++ b/src/mcp/index.ts @@ -0,0 +1,5 @@ +import { websearch_exa } from "./websearch-exa" + +export const builtinMcps = { + websearch_exa, +} diff --git a/src/mcp/websearch-exa.ts b/src/mcp/websearch-exa.ts new file mode 100644 index 0000000..cd55265 --- /dev/null +++ b/src/mcp/websearch-exa.ts @@ -0,0 +1,5 @@ +export const websearch_exa = { + type: "remote" as const, + url: "https://mcp.exa.ai/mcp?tools=web_search_exa", + enabled: true, +}