Extracto Mcp

io.github.massanaRogerPublished by GitHub account massanaRogerv0.1.2Updated Oct 24, 2026

Turn any URL plus a schema into validated, typed JSON via the Extracto API.

VerifiedSTDIODesktop onlyWeb Search & ScrapingData & Analytics

Overview

AI-generated overview

Turns a URL plus a field schema into validated, typed JSON through the Extracto API, with sync and async extraction jobs.

What you can do
Exposes the Extracto extraction API to an MCP client. The extract tool performs a synchronous extraction from a single URL (up to about 90 seconds) and returns data plus metadata. extract_async submits heavy or anti-bot pages as a background job and returns a job id, while get_job polls a job for status and result and list_jobs lists recent jobs. Fields are requested through a schema mapping names to types, and missing data comes back as null instead of being guessed.
When to use it
Useful when an assistant needs structured data from web pages without writing HTML parsers or prompts, for example pulling a title, language and star count from a repository page. The async tools suit heavy or bot-protected pages that would exceed a synchronous request.
Requirements
Runs locally over stdio, typically launched with npx from the npm package extracto-mcp, so Node.js and network access are needed. A required EXTRACTO_API_KEY is passed by the MCP client; optional EXTRACTO_BASE_URL and EXTRACTO_TIMEOUT_MS override the API host and per-request timeout. Desktop clients only.
Before you install
The API key EXTRACTO_API_KEY is a secret stored in the client configuration and sent to the Extracto service, so the URLs and schemas you submit go to that third party. Extraction is read-only against the target pages, but async jobs are retained and listed by list_jobs. Pointing EXTRACTO_BASE_URL at another host sends the key there.

Installation

In SourceWeft

  1. Open Extracto Mcp in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

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):

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

bash
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

ToolWhat it does
extractSynchronous extraction from a single URL (up to ~90s). Returns { data, meta }.
extract_asyncSubmit an async job for heavy or anti-bot pages. Returns a job id immediately.
get_jobPoll an async job for status and result.
list_jobsList 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" } }
json
{  "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:

VariableRequiredDescription
EXTRACTO_API_KEYyesYour key from app.getextracto.dev/keys.
EXTRACTO_BASE_URLnoOverride the API host (defaults to https://app.getextracto.dev).
EXTRACTO_TIMEOUT_MSnoPer-request timeout in ms (default 90000).

Development

bash
npm installnpm run dev        # run from source with tsxnpm run typechecknpm run build      # bundle to dist/ with tsup

Related

License

MIT

Source: README.md at commit 0403e82

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v0.1.2LatestSep 16, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts