Keenable MCP
by keenableai
README.md
# Keenable MCP
MCP server for live web search and clean-markdown page fetch over the
[Keenable](https://keenable.ai) web index.
- **Hosted endpoint:** `https://api.keenable.ai/mcp` (Streamable HTTP)
- **Tools:** `search_web_pages`, `fetch_page_content`
- **Keyless by default** (1,000 requests/hour). An optional API key lifts the cap.
The 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.
## Tools
| 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). |
## Use it
### Remote (recommended)
Clients with remote MCP support — Cursor, Cline, VS Code, and Claude Desktop's
Custom Connectors UI — connect to the URL directly:
```json
{
"mcpServers": {
"keenable": {
"type": "streamable-http",
"url": "https://api.keenable.ai/mcp"
}
}
}
```
### Stdio (e.g. Claude Desktop's `claude_desktop_config.json`)
For clients or config paths that only accept a stdio `command`, run the wrapper
with `npx`:
```json
{
"mcpServers": {
"keenable": {
"command": "npx",
"args": ["-y", "@keenable/mcp"]
}
}
}
```
That is all you need for keyless use.
## API key (optional)
Keenable is keyless by default. To lift the hourly rate limit, pass a key.
Remote:
```json
{
"mcpServers": {
"keenable": {
"type": "streamable-http",
"url": "https://api.keenable.ai/mcp",
"headers": { "X-API-Key": "YOUR_KEY" }
}
}
}
```
Stdio:
```json
{
"mcpServers": {
"keenable": {
"command": "npx",
"args": ["-y", "@keenable/mcp"],
"env": { "KEENABLE_API_KEY": "YOUR_KEY" }
}
}
}
```
## How the wrapper works
`@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`).
## Links
- Docs: https://docs.keenable.ai/mcp-server
- Site: https://keenable.ai
- Registry: [`ai.keenable/web-search`](https://registry.modelcontextprotocol.io/v0/servers?search=ai.keenable) (Official MCP Registry)
## License
MIT
TDQS
A4/5.0
Scored across 2 tools
Disambiguation5/5
The two tools have clearly distinct purposes: one fetches content from a specific page, the other searches the web. There is no overlap.
Naming Consistency5/5
Both tools use a consistent verb_noun pattern in snake_case: 'fetch_page_content' and 'search_web_pages'.
Tool Count3/5
Only 2 tools, which is below the typical 3-15 range, but the domain is narrow (web search and page fetching), so it may be acceptable.
Completeness4/5
The set covers the basic workflow of searching and fetching content. Minor gaps exist (e.g., no tool to list search results separately), but the core functionality is complete.
Maintenance
ActivityMaintained
ResponsivenessNo issues