io.github.massanaRoger/extracto-mcp
Turn any URL plus a schema into validated, typed JSON via the Extracto API.
Install
Add this to your client's MCP configuration (Claude Desktop: claude_desktop_config.json; Cursor: .cursor/mcp.json; VS Code and others use the same "mcpServers" shape).
extracto-mcpclaude mcp add extracto-mcp -e 'EXTRACTO_API_KEY=<your extracto_api_key>' -e 'EXTRACTO_BASE_URL=<EXTRACTO_BASE_URL>' -e 'EXTRACTO_TIMEOUT_MS=<EXTRACTO_TIMEOUT_MS>' -- npx -y extracto-mcp@0.1.2
{
"mcpServers": {
"extracto-mcp": {
"command": "npx",
"args": [
"-y",
"extracto-mcp@0.1.2"
],
"env": {
"EXTRACTO_API_KEY": "<your extracto_api_key>",
"EXTRACTO_BASE_URL": "<EXTRACTO_BASE_URL>",
"EXTRACTO_TIMEOUT_MS": "<EXTRACTO_TIMEOUT_MS>"
}
}
}
}
Environment variables
EXTRACTO_API_KEYrequired secret Your Extracto API key from https://app.getextracto.dev/keysEXTRACTO_BASE_URLOverride the API host (defaults to https://app.getextracto.dev)EXTRACTO_TIMEOUT_MSPer-request timeout in milliseconds (default 90000)
Documentation
From the project's README on GitHub, refreshed weekly. Links open on GitHub.
extracto-mcp
Model Context Protocol server for Extracto. It gives Claude, Cursor, Claude Code, and any MCP client the ability to turn a URL plus a schema into validated, typed JSON — no prompt engineering, no HTML parsing, and no hallucinated fields (missing data comes back as null).
Quick start
You need an Extracto API key. Get one at app.getextracto.dev/keys.
The server runs over stdio and is published to npm, so most clients just need this config block.
Claude Desktop
Edit claude_desktop_config.json (Settings → Developer → Edit Config):
{
"mcpServers": {
"extracto": {
"command": "npx",
"args": ["-y", "extracto-mcp"],
"env": { "EXTRACTO_API_KEY": "exa_live_your_key_here" }
}
}
}
Cursor
Add to ~/.cursor/mcp.json (or the project .cursor/mcp.json) with the same block.
Claude Code
claude mcp add extracto -e EXTRACTO_API_KEY=exa_live_your_key_here -- npx -y extracto-mcp
Restart the client and ask it to extract something, e.g. "Use extracto to pull the title, language and star count from github.com/facebook/react."
Tools
| Tool | What it does |
|---|---|
extract | Synchronous extraction from a single URL (up to ~90s). Returns { data, meta }. |
extract_async | Submit an async job for heavy or anti-bot pages. Returns a job id immediately. |
get_job | Poll an async job for status and result. |
list_jobs | List your recent async jobs. |
The schema argument
A schema is an object mapping field names to types. A type is:
- a literal:
"string","number","boolean","array","object" - a one-element array for a list:
["string"], or[{ "title": "string" }] - a nested object:
{ "author": { "name": "string" } }
{
"title": "string",
"price": "number",
"tags": ["string"],
"reviews": [{ "user": "string", "stars": "number" }]
}
Only fields that are actually found on the page are returned; anything missing is null rather than guessed.
Configuration
All configuration is via environment variables passed by your MCP client:
| Variable | Required | Description |
|---|---|---|
EXTRACTO_API_KEY | yes | Your key from app.getextracto.dev/keys. |
EXTRACTO_BASE_URL | no | Override the API host (defaults to https://app.getextracto.dev). |
EXTRACTO_TIMEOUT_MS | no | Per-request timeout in ms (default 90000). |
Development
npm install
npm run dev # run from source with tsx
npm run typecheck
npm run build # bundle to dist/ with tsup
Related
extracto— the official TypeScript/JavaScript SDK.- getextracto.dev — docs and API reference.
License
MIT
Frequently asked questions
What is io.github.massanaRoger/extracto-mcp?
Turn any URL plus a schema into validated, typed JSON via the Extracto API.
How do I install io.github.massanaRoger/extracto-mcp?
It runs on your machine. In Claude Code: claude mcp add extracto-mcp -e 'EXTRACTO_API_KEY=<your extracto_api_key>' -e 'EXTRACTO_BASE_URL=<EXTRACTO_BASE_URL>' -e 'EXTRACTO_TIMEOUT_MS=<EXTRACTO_TIMEOUT_MS>' -- npx -y extracto-mcp@0.1.2. For other clients, paste the JSON configuration from this page into their MCP settings.
Does io.github.massanaRoger/extracto-mcp need an API key?
Yes. It expects EXTRACTO_API_KEY, which you set in its configuration.
Is io.github.massanaRoger/extracto-mcp open source?
Yes. Its code is on GitHub under the MIT license.
Who maintains io.github.massanaRoger/extracto-mcp?
It is published by massanaRoger. AI.tn lists it but does not maintain or endorse it.
From the official MCP Registry. Listing is not an endorsement: review a server's code and permissions before giving it access to your data.