extracto-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@extracto-mcppull the title, language and star count from github.com/facebook/react"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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-mcpRestart 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."
Related MCP server: Haunt API
Tools
Tool | What it does |
| Synchronous extraction from a single URL (up to ~90s). Returns |
| Submit an async job for heavy or anti-bot pages. Returns a job id immediately. |
| Poll an async job for status and result. |
| 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 |
| yes | Your key from app.getextracto.dev/keys. |
| no | Override the API host (defaults to |
| no | Per-request timeout in ms (default |
Development
npm install
npm run dev # run from source with tsx
npm run typecheck
npm run build # bundle to dist/ with tsupRelated
extracto— the official TypeScript/JavaScript SDK.getextracto.dev — docs and API reference.
License
MIT
Maintenance
Tools
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/massanaRoger/extracto-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server