Provides web search capabilities through the Brave Search API, including web search with filtering options (safe search, country, freshness), local POI lookups, and rich result fetching.
Search MCP
The Universal MCP Server exposes tools for your workflows and is designed for prompt-first usage in MCP-compatible clients.
Installation
Prerequisites
Node.js 18+
Set
SEARCH_MCP_...in your environment
Get an API key
If your tools require an external API, obtain a key from the provider’s docs/console.
Otherwise, you can skip this step.
Build locally
Setup: Claude Code (CLI)
Use this one-liner (replace with your real values):
To remove:
Setup: Cursor
Create .cursor/mcp.json in your client (do not commit it here):
Other Clients and Agents
Install via URI or CLI:
Follow the MCP install guide and reuse the standard config above.
Command: npx
Args: ["@taiyokimura/url-context-mcp@latest"]
Env: SEARCH_MCP_API_KEY=sk-your-real-key
Type: STDIO
Command: npx
Args: @taiyokimura/url-context-mcp@latest
Enabled: true
Example ~/.config/opencode/opencode.json:
Add a new MCP and paste the standard JSON config.
See docs and reuse the standard config above.
Setup: Codex (TOML)
Example (Serena):
This server (minimal):
Configuration (Env)
SEARCH_MCP_API_KEY: Your API key (if applicable)
MCP_NAME: Server name override (default: url-context-mcp)
Available Tools
web_search
inputs: object { query: string (required), count?: number, offset?: number, safeSearch?: 'off'|'moderate'|'strict', country?: string, freshness?: 'pd'|'pw'|'pm'|'py', enableRichCallback?: boolean }
outputs: object (Brave Web Search API JSON)
local_pois
inputs: object { ids: string[] (1-20) }
outputs: object (Local POI API JSON)
local_descriptions
inputs: object { ids: string[] (1-20) }
outputs: object (Local descriptions API JSON)
rich_fetch
inputs: object { callback_key: string }
outputs: object (Rich results JSON)
Example invocation (MCP tool call)
Troubleshooting
401 auth errors: check SEARCH_MCP_API_KEY
Ensure Node 18+
Local runs: npx search-mcp after npm run build
Inspect publish artifacts: npm pack --dry-run
References
MCP SDK: https://modelcontextprotocol.io/docs/sdks
Architecture: https://modelcontextprotocol.io/docs/learn/architecture
Server Concepts: https://modelcontextprotocol.io/docs/learn/server-concepts
Specification: https://modelcontextprotocol.io/specification/2025-06-18/server/index
Brave Search API: https://api.search.brave.com/app/documentation
Name Consistency & Troubleshooting
Always use CANONICAL_ID (url-context-mcp) for identifiers and keys.
Use CANONICAL_DISPLAY (URL-Context MCP) only for UI labels.
Do not mix legacy keys after registration.
Consistency Matrix:
npm package name → @taiyokimura/url-context-mcp
Binary name → url-context-mcp
MCP server name (SDK metadata) → url-context-mcp
Env default MCP_NAME → url-context-mcp
Client registry key → url-context-mcp
UI label → URL-Context MCP
Conflict Cleanup:
Remove any stale keys (e.g., old display names) and re-add with url-context-mcp only.
Cursor: configure in the UI; this project intentionally omits .cursor/mcp.json.