FineData
FineData web scraping MCP — JavaScript rendering, captcha solving, markdown for AI agents
Open source Repository Open in the app JSON README (API)
About
FineData web scraping MCP — JavaScript rendering, captcha solving, markdown for AI agents
Details
- Kind
- MCP servers
- Topic
- Files & documents
- Publisher
- quality-network
- Origin
- official
- Category
- ferramentas
- Transport
- http
- Version
- 0.3.1
- Last push
- 2026-08-14T07:37:47Z
- Repository state
- ativo
- Language
- Python
- License
- MIT
- Added
- 2026-08-29 04:01:15
- Updated
- 2026-08-29 04:01:15
- Origin id
io.github.quality-network/finedata-mcp
README
<!-- mcp-name: io.github.quality-network/finedata-mcp -->
# FineData MCP Server
MCP (Model Context Protocol) server for [FineData](https://finedata.ai) web scraping API.
Enables AI agents (Claude, Cursor, GPT, …) to fetch pages that need a full
browser and return clean data:
- JavaScript rendering and browser actions
- Captcha solving
- Datacenter / ISP / residential / mobile proxies
- Markdown or JSON output (markdown by default)
- AI structured extraction
- Local **stdio** or remote **Streamable HTTP** (+ OAuth 2.1)
Version: **0.3.1**
## Modes
Start with a plain request. Stealth and proxy modes are available when a page
needs a full browser; they consume more tokens than a plain request. Exact
rates are in the documentation and via `get_usage`. Gateway may apply a domain
strategy that overrides the requested engine or proxy; trust `tokens_used` in
the response.
## Installation
### uvx (recommended)
```bash
curl -LsSf https://astral.sh/uv/install.sh | sh
FINEDATA_API_KEY=fd_xxx uvx finedata-mcp
```
### pip
```bash
pip install finedata-mcp
FINEDATA_API_KEY=fd_xxx finedata-mcp
```
### npx
```bash
npx -y @finedata/mcp-server
```
## Cursor
`~/.cursor/mcp.json` (Windows: `%USERPROFILE%\.cursor\mcp.json`):
```json
{
"mcpServers": {
"finedata": {
"command": "uvx",
"args": ["finedata-mcp"],
"env": {
"FINEDATA_API_KEY": "fd_your_api_key_here"
}
}
}
}
```
Cursor deeplink (after publishing): install via MCP directory / “Add to Cursor”.
### Remote (Streamable HTTP)
```json
{
"mcpServers": {
"finedata": {
"url": "https://mcp.finedata.ai/mcp",
"headers": {
"Authorization": "Bearer fd_your_api_key_here"
}
}
}
}
```
OAuth 2.1 (Claude.ai / ChatGPT connectors): register via AS at `https://api.finedata.ai`, consent in the cabinet, then use the access token as Bearer.
## Environment
| Variable | Required | Default | Description |
|----------|----------|---------|-------------|
| `FINEDATA_API_KEY` | stdio: yes | — | API key |
| `FINEDATA_API_URL` | no | `https://api.finedata.ai` | API base |
| `FINEDATA_TIMEOUT` | no | `180` | HTTP client timeout (seconds) |
| `FINEDATA_MCP_HOST` | HTTP | `0.0.0.0` | Bind host |
| `FINEDATA_MCP_PORT` | HTTP | `8080` | Bind port |
| `FINEDATA_OAUTH_ISSUER` | remote OAuth | — | AS URL (gateway) |
| `FINEDATA_MCP_RESOURCE_URL` | remote OAuth | — | Public MCP URL |
| `FINEDATA_JWT_SECRET` | remote OAuth | — | Verify `aud=mcp` JWTs |
## Tools
| Tool | Purpose |
|------|---------|
| `scrape_url` | Sync scrape with GET, read-only (markdown default) |
| `send_http_request` | Sync POST / PUT / PATCH / DELETE through the same pipeline |
| `scrape_async` | Async job, GET (`formats=['markdown']` default) |
| `get_job_status` | Poll job (markdown, not raw HTML) |
| `cancel_job` | Cancel job |
| `list_jobs` | List jobs |
| `batch_scrape` | Up to 100 URLs (string or `{url,...}` objects) |
| `get_batch_status` | Batch progress |
| `get_usage` | Period usage via `api_tokens_used` |
Notable parameters: `use_antibot`, `proxy_country`, `proxy_sticky`, `proxy_profile_id`, `auto_retry`, stealth modes, `formats`, `only_main_content`, extract_*.
Async/batch: no `csv`/`xlsx` formats (sync only).
## HTTP transport
```bash
finedata-mcp --transport http --host 0.0.0.0 --port 8080
```
Health: `GET /health`. Protected resource metadata is served at the path-scoped
URL for the endpoint — `GET /.well-known/oauth-protected-resource/mcp` — because
`FINEDATA_MCP_RESOURCE_URL` carries the `/mcp` path. Clients normally find it
from the `WWW-Authenticate` header on a `401` rather than guessing.
## Support
- Docs: https://finedata.ai/docs
- Issues: https://github.com/quality-network/finedata-mcp/issues
## License
MIT