Skip to content

Conversation

@code-yeongyu
Copy link
Owner

@code-yeongyu code-yeongyu commented Jan 6, 2026

Summary

  • Restore Exa MCP websearch support
  • Add websearch.ts module
  • Update tests and documentation

Summary by cubic

Restores Exa websearch MCP as a built-in, enabling real-time web search by default. Adds the module, registers it, and updates tests and docs.

  • New Features
    • Added websearch.ts with Exa remote MCP config.
    • Registered "websearch" in McpNameSchema and builtin MCPs.
    • Updated tests to expect 3 built-ins (websearch, context7, grep_app).
    • Updated README with websearch details and disable option.

Written for commit afbbeb6. Summary will update on new commits.

- Add websearch.ts with Exa remote MCP configuration
- Update McpNameSchema to include websearch
- Wire websearch MCP into plugin initialization

🤖 GENERATED WITH ASSISTANCE OF [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode)
- Update index.test.ts to verify 3 MCPs (websearch, context7, grep_app)
- Add Exa/websearch documentation to README.md MCPs section

🤖 GENERATED WITH ASSISTANCE OF [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode)
@greptile-apps
Copy link

greptile-apps bot commented Jan 6, 2026

Greptile Summary

This PR restores Exa AI websearch MCP support by adding a new websearch module that integrates with Exa AI's web search capabilities.

Changes:

  • Added src/mcp/websearch.ts following the exact pattern of existing MCPs (context7.ts, grep-app.ts)
  • Registered websearch in src/mcp/index.ts import and allBuiltinMcps object
  • Extended McpNameSchema Zod enum to include "websearch" in types.ts
  • Updated all 6 test cases in index.test.ts to account for 3 MCPs instead of 2
  • Documented websearch in README.md in 2 locations with clear descriptions

Implementation Quality:

  • Follows TDD principles - tests were updated comprehensively
  • Maintains existing patterns perfectly (same structure as context7 and grep_app)
  • No type safety compromises (as any, @ts-ignore, etc.)
  • All tests follow BDD convention with #given, #when, #then comments
  • Proper barrel export pattern maintained

Confidence Score: 5/5

  • This PR is safe to merge with zero risk
  • Perfect implementation following all project conventions: matches existing MCP patterns exactly, comprehensive test coverage (6 tests all updated), proper TypeScript typing with Zod schema, follows TDD/BDD conventions per AGENTS.md, and documentation is thorough
  • No files require special attention

Important Files Changed

Filename Overview
src/mcp/websearch.ts New websearch MCP configuration added, follows existing pattern perfectly
src/mcp/index.ts Imported and registered websearch MCP, no logic changes
src/mcp/types.ts Added websearch to McpNameSchema enum, properly typed
src/mcp/index.test.ts All 6 tests updated to reflect 3 MCPs, coverage remains comprehensive
README.md Documentation updated in 2 locations, websearch clearly described

Sequence Diagram

sequenceDiagram
    participant User
    participant Plugin as oh-my-opencode
    participant ConfigManager
    participant createBuiltinMcps
    participant ExaMCP as Exa AI MCP Server
    
    User->>Plugin: Initialize plugin
    Plugin->>ConfigManager: Load config (disabled_mcps)
    ConfigManager-->>Plugin: Return disabled_mcps array
    
    Plugin->>createBuiltinMcps: Call with disabled_mcps
    
    createBuiltinMcps->>createBuiltinMcps: Check if "websearch" in disabled_mcps
    alt websearch enabled
        createBuiltinMcps->>createBuiltinMcps: Include websearch config
        Note over createBuiltinMcps: {type: "remote", url: "https://mcp.exa.ai/mcp?tools=web_search_exa"}
    else websearch disabled
        createBuiltinMcps->>createBuiltinMcps: Skip websearch
    end
    
    createBuiltinMcps->>createBuiltinMcps: Check other MCPs (context7, grep_app)
    createBuiltinMcps-->>Plugin: Return enabled MCPs object
    
    Plugin->>ExaMCP: Connect to websearch MCP (if enabled)
    ExaMCP-->>Plugin: MCP connection established
    
    User->>Plugin: Request web search
    Plugin->>ExaMCP: Forward web_search_exa tool request
    ExaMCP-->>Plugin: Return search results
    Plugin-->>User: Deliver search results
Loading

@code-yeongyu code-yeongyu merged commit a2bfb5e into dev Jan 6, 2026
4 checks passed
@code-yeongyu code-yeongyu deleted the feat/exa-websearch branch January 6, 2026 16:24
Copy link

@cubic-dev-ai cubic-dev-ai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No issues found across 5 files

Confidence score: 5/5

  • Automated review surfaced no issues in the provided summaries.
  • No files require special attention.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants