Trawlia
Web search and page extraction for agents, returned as readable text rather than raw JSON.
Links
README
From the repo.
trawlia-mcp
Trawlia as an MCP server: web search and page extraction, as two tools any MCP client can call.
Get a free key at trawlia.co/signup - 100 credits a month, no card.
Claude Code
claude mcp add trawlia --env TRAWLIA_API_KEY=twl_... -- npx -y trawlia-mcp
Claude Desktop, Cursor, and anything else reading a JSON config
{
"mcpServers": {
"trawlia": {
"command": "npx",
"args": ["-y", "trawlia-mcp"],
"env": { "TRAWLIA_API_KEY": "twl_..." }
}
}
}
The tools
trawlia_search
Ranked, deduplicated results from the live web.
| Argument | Default | Notes |
|---|---|---|
query | required | Natural language, not keywords. |
search_depth | basic | basic is 1 credit and returns snippets. advanced is 2 and returns full page text. |
topic | general | news reaches news indexes and returns publication dates. |
max_results | all | Top N of the ranked list. Left out, every result found is returned, typically 20 to 60. These go into your context, so set it when the task is narrow. |
include_domains / exclude_domains | - | Host filters. Subdomains are included. |
time_range | - | day, week, month, year. |
trawlia_extract
Fetches URLs you already have and returns their readable content, with navigation, cookie banners and newsletter modals removed. 1 credit per 5 URLs, so pass the whole list at once.
What the model sees
Results come back as readable text rather than raw JSON, and carry two things a plain response would lose:
- When a page could not be read, the result says so and why, instead of presenting a snippet as though it were the article.
- A coverage line when a source was unavailable, so the model can weigh a thin result set properly rather than reporting it as a confident nothing.
Errors are readable sentences that say whether retrying is worth it. Running out of credits says so and says not to retry; a rate limit says how long to wait.
Costs
| Operation | Credits |
|---|---|
| Basic search | 1 |
| Advanced search | 2 |
| Extraction | 1 per 5 URLs |
Charged before the work and refunded on hard failure. Full price list at trawlia.co/pricing.
Not available
Search and extraction, and nothing else. There is no crawler and no long-running job to poll. If your agent needs to walk a whole site, this is the wrong server for it.
Checking it works
TRAWLIA_API_KEY=twl_... node smoke.mjs
Spends a few credits against the real API and prints what a client sees: the tool list, a rendered search, a rejected parameter, and an extraction. Not in CI, because it costs money and depends on the live web.
Environment
| Variable | Required | Notes |
|---|---|---|
TRAWLIA_API_KEY | yes | A search-scoped key is enough and is what you should deploy. |
TRAWLIA_BASE_URL | no | Defaults to https://api.trawlia.co. For pointing at a local server. |
Config for your environment
Replace {MCP_ENDPOINT_URL} with this MCP’s endpoint URL (from its repo or docs above). No API key — you connect directly.
Tool
OS
Config file: ~/.cursor/mcp.json
{
"mcpServers": {
"mcp-server": {
"url": "{MCP_ENDPOINT_URL}"
}
}
}Paste into mcpServers in the config file. Restart Cursor after saving.
If this MCP is also published on mcpchannel.ai, you can subscribe from Browse and use the gateway config there instead.