search-router
4 web-search tiers (x402 USDC on Base) - simple/medium/deep/cached. Free health.
Should I use this
Quality & Safety
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"search-router": {
"url": "https://search.api.ainode.tech/mcp"
}
}
}Remote endpoints
https://search.api.ainode.tech/mcpstreamable-httpWhat it can do
Tool inventory
Tools (5)
⚪health(echo)
Health check. Returns server status and optional echo.
Input Schema
{
"type": "object",
"properties": {
"echo": {
"type": "string",
"description": "Optional string to echo back"
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢web_search_simple(query, max_results, freshness, search_type, country, ...)
Simple factual web search via Brave (lookups, definitions, short queries). Fixed $0.003/call.
Input Schema
{
"type": "object",
"properties": {
"query": {
"type": "string",
"minLength": 1,
"maxLength": 500,
"description": "Search query string"
},
"max_results": {
"type": "integer",
"minimum": 1,
"maximum": 20,
"description": "Number of results (1-20, default 10)"
},
"freshness": {
"type": "string",
"enum": [
"day",
"week",
"month",
"any"
],
"description": "Recency filter for results"
},
"search_type": {
"type": "string",
"enum": [
"web",
"news",
"academic"
],
"description": "Type of search to perform"
},
"country": {
"type": "string",
"minLength": 2,
"maxLength": 2,
"description": "ISO 3166-1 alpha-2 country code"
},
"language": {
"type": "string",
"minLength": 2,
"maxLength": 5,
"description": "Language code (e.g. 'en', 'pt-PT')"
}
},
"required": [
"query"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢web_search_medium(query, max_results, freshness, search_type, country, ...)
Default web search via Brave for ambiguous or general queries. Fixed $0.008/call.
Input Schema
{
"type": "object",
"properties": {
"query": {
"type": "string",
"minLength": 1,
"maxLength": 500,
"description": "Search query string"
},
"max_results": {
"type": "integer",
"minimum": 1,
"maximum": 20,
"description": "Number of results (1-20, default 10)"
},
"freshness": {
"type": "string",
"enum": [
"day",
"week",
"month",
"any"
],
"description": "Recency filter for results"
},
"search_type": {
"type": "string",
"enum": [
"web",
"news",
"academic"
],
"description": "Type of search to perform"
},
"country": {
"type": "string",
"minLength": 2,
"maxLength": 2,
"description": "ISO 3166-1 alpha-2 country code"
},
"language": {
"type": "string",
"minLength": 2,
"maxLength": 5,
"description": "Language code (e.g. 'en', 'pt-PT')"
}
},
"required": [
"query"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢web_search_deep(query, max_results, freshness, search_type, country, ...)
Deep research search via Exa (academic, boolean, multi-source synthesis). Fixed $0.015/call.
Input Schema
{
"type": "object",
"properties": {
"query": {
"type": "string",
"minLength": 1,
"maxLength": 500,
"description": "Search query string"
},
"max_results": {
"type": "integer",
"minimum": 1,
"maximum": 20,
"description": "Number of results (1-20, default 10)"
},
"freshness": {
"type": "string",
"enum": [
"day",
"week",
"month",
"any"
],
"description": "Recency filter for results"
},
"search_type": {
"type": "string",
"enum": [
"web",
"news",
"academic"
],
"description": "Type of search to perform"
},
"country": {
"type": "string",
"minLength": 2,
"maxLength": 2,
"description": "ISO 3166-1 alpha-2 country code"
},
"language": {
"type": "string",
"minLength": 2,
"maxLength": 5,
"description": "Language code (e.g. 'en', 'pt-PT')"
}
},
"required": [
"query"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢web_search_cached(query, max_results, freshness, search_type, country, ...)
Cache-only lookup; returns SEARCH_CACHE_MISS error if not in cache. Fixed $0.002/call.
Input Schema
{
"type": "object",
"properties": {
"query": {
"type": "string",
"minLength": 1,
"maxLength": 500,
"description": "Search query string"
},
"max_results": {
"type": "integer",
"minimum": 1,
"maximum": 20,
"description": "Number of results (1-20, default 10)"
},
"freshness": {
"type": "string",
"enum": [
"day",
"week",
"month",
"any"
],
"description": "Recency filter for results"
},
"search_type": {
"type": "string",
"enum": [
"web",
"news",
"academic"
],
"description": "Type of search to perform"
},
"country": {
"type": "string",
"minLength": 2,
"maxLength": 2,
"description": "ISO 3166-1 alpha-2 country code"
},
"language": {
"type": "string",
"minLength": 2,
"maxLength": 5,
"description": "Language code (e.g. 'en', 'pt-PT')"
}
},
"required": [
"query"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Community
Evidence