mcpField
E
Extracto

Extracto

本地服务
github.com/massanaRoger浏览器自动化020 周前更新

关于 Extracto

Extracto 是一个 MCP 服务,可将 URL 和类型化架构转换为经过验证的 JSON,供 MCP 客户端使用。它支持同步和异步提取,缺失字段返回 null,而非猜测补全。

主要功能

  1. 01从 URL 提取类型化数据
  2. 02按架构验证输出
  3. 03缺失字段返回 null
  4. 04运行异步提取任务
  5. 05查询任务状态和近期任务

适用场景

  1. 01从网页收集结构化字段
  2. 02异步提取内容繁重或有反爬机制的页面
  3. 03按指定 JSON 结构获取文章或商品详情

MCP 相关

向 MCP 客户端提供 URL 提取和异步任务管理工具。基于 stdio 的服务需要 Extracto API 密钥。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"extracto": {
"command": "npx",
"args": [
"-y",
"extracto-mcp"
],
"env": {
"EXTRACTO_API_KEY": "<EXTRACTO_API_KEY>",
"EXTRACTO_BASE_URL": "<EXTRACTO_BASE_URL>",
"EXTRACTO_TIMEOUT_MS": "<EXTRACTO_TIMEOUT_MS>"
}
}
}
}
启动命令npx -y extracto-mcp
需要配置的环境变量
EXTRACTO_API_KEY密钥Your Extracto API key from https://app.getextracto.dev/keys
EXTRACTO_BASE_URLOverride the API host (defaults to https://app.getextracto.dev)
EXTRACTO_TIMEOUT_MSPer-request timeout in milliseconds (default 90000)

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmextracto-mcp0.1.2

工具

4

收录的工具列表 · 更新于 2 周前

参数类型必填说明
urlstring是要从中提取数据的公共 HTTPS URL。
schemaobject是一个对象,将每个字段名映射到一种类型。类型可以是字面值 "string"、"number"、"boolean"、"array"、"object" 之一;也可以是表示列表的单元素数组(例如,字符串列表使用 ["string"],对象列表使用 [{ "title": "string", "price": "number" }]);还可以是嵌套对象(例如 { "author": { "name": "string" } })。请尽可能使用最具体的结构。例如:{ "title": "string", "price": "number", "tags": ["string"], "reviews": [{ "user": "string", "stars": "number" }] }。
examplesarray否最多提供 3 个少样本示例,用于确定输出格式。

详细介绍

extracto-mcp

面向 Extracto 的 Model Context Protocol 服务。它让 Claude、Cursor、Claude Code 和任何 MCP 客户端都能将 URL 和 schema 转换为经过验证的类型化 JSON——无需提示词工程、无需解析 HTML,也不会产生幻觉字段(缺失的数据会以 null 返回)。

快速开始

你需要一个 Extracto API 密钥。请前往 app.getextracto.dev/keys 获取。

该服务通过 stdio 运行,并发布到了 npm,因此大多数客户端只需使用这段配置即可。

Claude Desktop

编辑 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

将相同的配置添加到 ~/.cursor/mcp.json(或项目中的 .cursor/mcp.json)。

Claude Code
claude mcp add extracto -e EXTRACTO_API_KEY=exa_live_your_key_here -- npx -y extracto-mcp

重启客户端,然后让它提取一些内容,例如 “使用 extracto 从 github.com/facebook/react 获取标题、语言和星标数。”

工具

工具功能
extract从单个 URL 同步提取(最长约 90 秒)。返回 { data, meta }。
extract_async为内容繁杂或带有反机器人机制的页面提交异步任务。立即返回任务 ID。
get_job轮询异步任务的状态和结果。
list_jobs列出你最近的异步任务。
schema 参数

schema 是一个将字段名称映射到类型的对象。类型包括:

  • 字面量:"string"、"number"、"boolean"、"array"、"object"
  • 用于列表的单元素数组:["string"],或 [{ "title": "string" }]
  • 嵌套对象:{ "author": { "name": "string" } }
{
  "title": "string",
  "price": "number",
  "tags": ["string"],
  "reviews": [{ "user": "string", "stars": "number" }]
}

只会返回页面上实际找到的字段;任何缺失内容都会返回 null,而不是猜测。

配置

所有配置都通过 MCP 客户端传入的环境变量设置:

变量必需描述
EXTRACTO_API_KEY是你从 app.getextracto.dev/keys 获取的密钥。
EXTRACTO_BASE_URL否覆盖 API 主机(默认为 https://app.getextracto.dev)。
EXTRACTO_TIMEOUT_MS否单次请求超时时间,单位为毫秒(默认 90000)。

开发

npm install
npm run dev        # run from source with tsx
npm run typecheck
npm run build      # bundle to dist/ with tsup

相关内容

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。