Live web search and clean-markdown page fetch over the Keenable web index.
MCP server for live web search and clean-markdown page fetch over the Keenable web index.
https://api.keenable.ai/mcp (Streamable HTTP)search_web_pages, fetch_page_contentThe server is hosted, so most clients just point at the URL. For clients (or
config paths) that only accept a stdio command there is a thin npm wrapper
(@keenable/mcp) that bridges to the same endpoint.
| Tool | Description |
|---|---|
search_web_pages | Live web search. Args: query (required), plus optional mode, site, published_after / published_before, acquired_after / acquired_before. |
fetch_page_content | Fetch a URL and return clean markdown. Args: url (required), optional max_chars (default 50000). |
Clients with remote MCP support — Cursor, Cline, VS Code, and Claude Desktop's Custom Connectors UI — connect to the URL directly:
{
"mcpServers": {
"keenable": {
"type": "streamable-http",
"url": "https://api.keenable.ai/mcp"
}
}
}
claude_desktop_config.json)For clients or config paths that only accept a stdio command, run the wrapper
with npx:
{
"mcpServers": {
"keenable": {
"command": "npx",
"args": ["-y", "@keenable/mcp"]
}
}
}
That is all you need for keyless use.
Keenable is keyless by default. To lift the hourly rate limit, pass a key.
Remote:
{
"mcpServers": {
"keenable": {
"type": "streamable-http",
"url": "https://api.keenable.ai/mcp",
"headers": { "X-API-Key": "YOUR_KEY" }
}
}
}
Stdio:
{
"mcpServers": {
"keenable": {
"command": "npx",
"args": ["-y", "@keenable/mcp"],
"env": { "KEENABLE_API_KEY": "YOUR_KEY" }
}
}
}
@keenable/mcp is a small stdio bridge: it connects to the hosted server over
Streamable HTTP and forwards every tool the server exposes. There is no
search logic in this package; the index and tools live behind
https://api.keenable.ai/mcp. Environment variables:
KEENABLE_API_KEY — optional API key, sent as X-API-Key.KEENABLE_MCP_URL — override the endpoint (defaults to https://api.keenable.ai/mcp).ai.keenable/web-search (Official MCP Registry)MIT
Source-derived launch command. Check the maintainer’s required arguments and credentials before running:
npx -y @keenable/mcpMerge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.
{
"mcpServers": {
"ai-keenable-web-search": {
"command": "npx",
"args": [
"-y",
"@keenable/mcp"
]
}
}
}Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.
Claude Desktop setup reference@keenable/mcpnpmai.keenable/web-search works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.
~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.~/.cursor/mcp.jsonRestart Cursor for changes to take effect..vscode/mcp.jsonReload VS Code window for changes to take effect.~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect..mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.