Odel
FineData

FineData

@quality-networkPythonMITUpdated 3w ago

FineData web scraping MCP — JavaScript rendering, captcha solving, markdown for AI agents

Server endpointStreamable HTTPOAuthProbed

This is the third-party server itself — Odel doesn't run it. Hitting this URL directly talks straight to the upstream server with no auth or proxying. Connect through Odel to front it with managed auth.

FineData MCP Server

MCP (Model Context Protocol) server for FineData 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)

curl -LsSf https://astral.sh/uv/install.sh | sh
FINEDATA_API_KEY=fd_xxx uvx finedata-mcp

pip

pip install finedata-mcp
FINEDATA_API_KEY=fd_xxx finedata-mcp

npx

npx -y @finedata/mcp-server

Cursor

~/.cursor/mcp.json (Windows: %USERPROFILE%\.cursor\mcp.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)

{
  "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

VariableRequiredDefaultDescription
FINEDATA_API_KEYstdio: yesAPI key
FINEDATA_API_URLnohttps://api.finedata.aiAPI base
FINEDATA_TIMEOUTno180HTTP client timeout (seconds)
FINEDATA_MCP_HOSTHTTP0.0.0.0Bind host
FINEDATA_MCP_PORTHTTP8080Bind port
FINEDATA_OAUTH_ISSUERremote OAuthAS URL (gateway)
FINEDATA_MCP_RESOURCE_URLremote OAuthPublic MCP URL
FINEDATA_JWT_SECRETremote OAuthVerify aud=mcp JWTs

Tools

ToolPurpose
scrape_urlSync scrape with GET, read-only (markdown default)
send_http_requestSync POST / PUT / PATCH / DELETE through the same pipeline
scrape_asyncAsync job, GET (formats=['markdown'] default)
get_job_statusPoll job (markdown, not raw HTML)
cancel_jobCancel job
list_jobsList jobs
batch_scrapeUp to 100 URLs (string or {url,...} objects)
get_batch_statusBatch progress
get_usagePeriod 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

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

License

MIT