About Piloterr
Piloterr MCP Server connects MCP clients to Piloterr’s web scraping API, which returns structured data from more than 300 websites. Its compact tool catalog lets agents discover endpoint parameters before making API calls.
Key features
- 01Search the endpoint catalog
- 02Inspect endpoint parameters
- 03Call scraping API endpoints
- 04Check API usage and credits
- 05Return JSON, inline images, and embedded files
Use cases
- 01Collect structured data from supported websites
- 02Find the right endpoint before a scraping request
- 03Check remaining credits while using the API
MCP support
Exposes four tools to search endpoints, inspect parameters, call the Piloterr API, and view usage. It supports stdio and Streamable HTTP, with hosted or locally run deployment options.
Configuration
Remote servers need no local install. Pick your client, then copy the config or install in one click.
https://mcp.piloterr.com/claude mcp add --transport http com-piloterr https://mcp.piloterr.com/{"mcpServers":{"com-piloterr":{"type":"http","url":"https://mcp.piloterr.com/"}}}Open in Cursor{"servers":{"com-piloterr":{"type":"http","url":"https://mcp.piloterr.com/"}}}Open in VS Code{"mcpServers":{"com-piloterr":{"type":"http","url":"https://mcp.piloterr.com/"}}}{"mcpServers":{"com-piloterr":{"serverUrl":"https://mcp.piloterr.com/"}}}Run commands in a terminal; paste JSON into the client’s MCP config and restart. Servers that need sign-in will prompt on first connect.
https://mcp.piloterr.com/Auth requiredTools
Details
From the project READMEPiloterr MCP Server
Official Model Context Protocol server for the Piloterr web scraping API.
Scrape 300+ websites (Amazon, LinkedIn, Google, Zillow, Crunchbase…) as structured JSON with one API.
It lets Claude, Cursor, VS Code, Windsurf and any MCP client call the API as tools. Runs over stdio (local) or Streamable HTTP (self-hosted).
Requirements
Hosted server (recommended)
Piloterr runs this server for you at https://mcp.piloterr.com/ (Streamable HTTP). Send your API key in the x-api-key header; nothing to install.
claude mcp add --transport http piloterr https://mcp.piloterr.com/ --header "x-api-key: YOUR_API_KEY"
{
"mcpServers": {
"piloterr": {
"url": "https://mcp.piloterr.com/",
"headers": {
"x-api-key": "YOUR_API_KEY"
}
}
}
}
The hosted server and this package expose the same API; run the package locally when you want stdio, your own network egress, or to self-host it.
Run it locally
Claude Code
claude mcp add piloterr --env PILOTERR_API_KEY=YOUR_API_KEY -- npx -y @piloterr/mcp
Claude Desktop, Cursor, Windsurf and other clients
Add the server to the client's MCP configuration (claude_desktop_config.json, .cursor/mcp.json…):
{
"mcpServers": {
"piloterr": {
"command": "npx",
"args": ["-y", "@piloterr/mcp"],
"env": {
"PILOTERR_API_KEY": "YOUR_API_KEY"
}
}
}
}
VS Code
{
"servers": {
"piloterr": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@piloterr/mcp"],
"env": {
"PILOTERR_API_KEY": "${input:piloterr-api-key}"
}
}
},
"inputs": [
{
"type": "promptString",
"id": "piloterr-api-key",
"description": "Piloterr API key",
"password": true
}
]
}
Claude Desktop extension
Download the .mcpb bundle from the releases page and open it; Claude Desktop asks for your API key.
Docker
docker build -t piloterr-mcp .
docker run -i --rm -e PILOTERR_API_KEY=YOUR_API_KEY piloterr-mcp
Tools
Piloterr has 391 endpoints, more than a client should load as separate tools. The server exposes a small catalog instead: the model searches it, reads an endpoint's parameters, then calls it.
| Tool | Description |
|---|---|
search_endpoints | Search the 391 Piloterr endpoints. |
get_endpoint | Describe the parameters of one endpoint. |
call_endpoint | Call one Piloterr endpoint and return the result. |
usage | Show API usage and remaining credits. |
Every tool that calls the API consumes credits. JSON results are returned as text; images are returned inline and other files (PDF…) as embedded resources, up to 4 MB.
Streamable HTTP
npx @piloterr/mcp --http --port 3000
The endpoint is POST /mcp (stateless, JSON responses). Each client sends its own key in the x-api-key header (or Authorization: Bearer <key>); the server never uses a key of its own. It binds to 127.0.0.1 by default and rejects browser origins unless you allow them — put it behind TLS before exposing it.
createHttpHandler() is exported for Fetch-compatible runtimes (Cloudflare Workers, Deno, Bun):
import { createHttpHandler } from "@piloterr/mcp";
export default { fetch: createHttpHandler({ allowedOrigins: [] }) };
Security
- The API key is read from
PILOTERR_API_KEY(stdio) or the request headers (HTTP) and removed from error messages. - Content fetched from websites is untrusted: the server instructions tell the model to treat it as data, not instructions.
- See SECURITY.md to report a vulnerability.
Development
npm install
npm test
npm run build
npx @modelcontextprotocol/inspector node dist/stdio.js
Built on the SDK
The server uses the official Node.js SDK (@piloterr/sdk).
All Piloterr SDKs
| SDK | Package | Install |
|---|---|---|
| Node.js | @piloterr/sdk | npm install @piloterr/sdk |
| Python | piloterr | pip install piloterr |
| Go | piloterr-go | go get github.com/piloterr/piloterr-go |
| .NET | Piloterr | dotnet add package Piloterr |
| Ruby | piloterr | gem install piloterr |
| PHP | piloterr/sdk | composer require piloterr/sdk |
| Java | piloterr-java | build from source, see its README |
| CLI | @piloterr/cli | npm install -g @piloterr/cli |
| MCP server | @piloterr/mcp | npx -y @piloterr/mcp |
License
MIT — see LICENSE.
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.