Files
oh-my-opencode/src/mcp/AGENTS.md
T
2026-05-18 21:28:12 +09:00

2.5 KiB

src/mcp/ — 5 Built-in MCPs

Generated: 2026-05-18

OVERVIEW

Tier 1 of the three-tier MCP system. Built-ins are created by createBuiltinMcps(disabledMcps, config, options) and now include both remote MCPs and local stdio MCPs.

BUILT-IN MCPs

Name Type Endpoint / Command Env Vars Tools
websearch remote mcp.exa.ai (default) or mcp.tavily.com EXA_API_KEY (optional), TAVILY_API_KEY (if tavily) Web search
context7 remote mcp.context7.com/mcp CONTEXT7_API_KEY (optional) Library documentation
grep_app remote mcp.grep.app None GitHub code search
lsp local (stdio, node/bun) node packages/lsp-tools-mcp/dist/cli.js mcp or bun packages/lsp-tools-mcp/src/cli.ts mcp LSP_TOOLS_MCP_PROJECT_CONFIG=.opencode/lsp.json status, diagnostics, goto definition, references, symbols, prepare_rename, rename
ast_grep local (stdio, node/bun) node packages/ast-grep-mcp/dist/cli.js mcp or bun packages/ast-grep-mcp/src/cli.ts mcp OMO_AST_GREP_WORKSPACE=<project> search, replace

SUBMODULE ARCHITECTURE

  • The local lsp MCP is a git submodule at packages/lsp-tools-mcp/.
  • Upstream project: https://github.com/code-yeongyu/lsp-tools-mcp
  • OMO resolves the CLI path dynamically in src/mcp/lsp.ts so both src/ and dist/ runtime layouts work.
  • lsp and ast_grep are registered whenever they are not listed in disabled_mcps, even if their CLI artifacts have not been built yet. Source checkouts fall back to the Bun source CLI; packaged builds prefer the Node dist CLI.

THREE-TIER SYSTEM

Tier Source Mechanism
1. Built-in src/mcp/ 3 remote HTTP MCPs + 2 local stdio MCPs (lsp, ast_grep) via createBuiltinMcps()
2. Claude Code .mcp.json ${VAR} expansion via claude-code-mcp-loader
3. Skill-embedded SKILL.md YAML Managed by SkillMcpManager (stdio + HTTP)

FILES

File Purpose
index.ts createBuiltinMcps() registry for built-in MCPs
types.ts McpNameSchema: "websearch" | "context7" | "grep_app" | "lsp" | "ast_grep"
websearch.ts Exa/Tavily provider with config
context7.ts Context7 with optional auth header
grep-app.ts Grep.app (no auth)
lsp.ts Local stdio MCP config for packaged lsp-tools-mcp
ast-grep.ts Local stdio MCP config for packaged ast-grep-mcp