search-online-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@search-online-mcpsearch for latest AI news"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Vibe-coded with Codex. Use it at your own risk.
Search Online MCP Server
An MCP (Model Context Protocol) server that exposes a standardized web search tool for agents and clients like OpenAI Codex, Claude, and Cursor. It uses Brave Search under the hood and returns stable, agent‑friendly JSON.
Features
One tool:
search_online(engine: Brave; verticals: web/news/images/videos)Stable output shape via
structuredContentand a concisetextsummaryFallback chain for robustness:
Fish function
search_online(if available)uvx brave-search-python-client(httpx/psutil)Direct Brave HTTP API (X-Subscription-Token)
No stdout leakage: safe JSON‑RPC framing (all debug goes to logs)
Install
cd ~/Projects/mcp
git clone <repo> search-online-mcp
cd search-online-mcp
npm installConfigure Codex
~/.codex/config.toml:
[mcp_servers.searchonline]
command = "node"
args = ["/Users/YOU/Projects/mcp/search-online-mcp/index.mjs"]
env = {
BRAVE_SEARCH_PYTHON_CLIENT_API_KEY = "YOUR_BRAVE_KEY",
# skip fish/jq, go straight to uvx for stability
SEARCH_ONLINE_FORCE_UVX = "1",
}
startup_timeout_ms = 20_000
tool_timeout_sec = 60Restart Codex. Verify:
codex mcp list
codex mcp get searchonline --jsonOptional: install the Fish function directly
If you use fish shell, you can install the search_online function for your own terminal use. It’s the same logic the MCP server’s “fast path” expects.
Dependencies: fish 3+, uvx (from astral-sh/uv), jq, glow (optional), and a Brave API key.
Install:
mkdir -p ~/.config/fish/functions
cp contrib/fish/search_online.fish ~/.config/fish/functions/search_online.fish
set -Ux BRAVE_SEARCH_PYTHON_CLIENT_API_KEY "YOUR_BRAVE_KEY"
# Open a new shell or: source ~/.config/fish/functions/search_online.fishUsage examples:
# JSON (default)
search_online -L 5 "gaston morixe" | jq '.results[:3] | map({title,url})'
# NDJSON streaming
search_online -o ndjson -L 3 "openai codex" | head -n 3
# Plain text (no color)
search_online -o text -n "rust async tutorial"
# Raw engine JSON
search_online -o raw "openai codex" | jq '.web.results[:2] | map({title,url})'Notes:
The function prints a standardized JSON object in
-o jsonmode (engine/vertical/query/results…).Set
SEARCH_ONLINE_ENGINEto override default engine (currently onlybrave).glowis optional;-n/--no-colordisables colorized output.
Tool schema
Input (zod → JSON Schema):
querystring (required) — search queryverticalenum: web|news|images|videos (default web)limitinteger 1..20 (optional)offsetinteger ≥0 (optional)country,lang,market(optional)
Output:
content:[ { type: "text", text: "ok results=N" } ]structuredContent: full JSON with keys:engine,vertical,query,fetched_at,results[](rank, title, url, snippet, site_name, etc.)on error:
isError: truewith a text explanation
Environment variables
BRAVE_SEARCH_PYTHON_CLIENT_API_KEY— Brave API key (required)SEARCH_ONLINE_FORCE_UVX=1— skip fish; go straight touvxSEARCH_ONLINE_DEBUG_STDERR=1— mirror debug to stderr (Codex logs)
Logs
MCP server writes to
~/.codex/log/search_online_mcp.logCodex session logs:
TUI:
~/.codex/log/codex-tui.logexec (non-interactive): stderr you redirect (e.g.,
--json >out 2>err)
Tests
Local tests (require Brave key unless you mock):
npm run test:allWhat they do:
tests/list_names.mjs: confirms tool names comply with the allowed patterntests/call_basic.mjs: callssearch_online(usesstructuredContent)tests/call_invalid.mjs: confirms missingqueryproduces an MCP error
Troubleshooting
See
~/.codex/log/search_online_mcp.logfor per-call details (PATH, cmd, uvx/http status).If you still see “tool call failed” in Codex:
Kill stale server:
pkill -f "search-online-mcp/index.mjs"Start a new Codex session (not resume)
Ensure
SEARCH_ONLINE_FORCE_UVX=1
License
MIT
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/gastonmorixe/search-online-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server