mcpField
C
crawlport

crawlport

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

关于 crawlport

crawlport 是基于 Firecrawl 的命令行工具和 MCP 服务,为 Agent 与终端用户提供网页采集和研究能力,可抓取页面、搜索、提取结构化数据或生成 llms.txt。

主要功能

  1. 01抓取页面并返回可读内容
  2. 02映射网址并爬取站点
  3. 03搜索网页
  4. 04按提示词或架构提取数据
  5. 05批量抓取并开展深度研究
  6. 06生成 llms.txt 内容

适用场景

  1. 01获取网页的可读内容
  2. 02发现并爬取站点中的指定页面
  3. 03搜索并研究多个网页来源
  4. 04按指定架构提取页面字段

MCP 相关

MCP 服务提供 Firecrawl 工具,用于抓取、映射、搜索、爬取、提取、研究、批量任务和生成 llms.txt。它需要 Firecrawl API 密钥。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"cloudcorprecords-crawlport": {
"command": "npx",
"args": [
"-y",
"@reneturcios/crawlport"
]
}
}
}
启动命令npx -y @reneturcios/crawlport

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

安装包
npm@reneturcios/crawlport0.1.0
ocighcr.io/cloudcorprecords/crawlport:0.1.0

工具

10

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

参数类型必填说明
urlstring是要抓取的单个页面 URL。
proxystring否抓取请求要使用的代理模式,需符合 Firecrawl API 的要求。
actionsarray否抓取前要执行的浏览器操作,采用 Firecrawl 操作对象。
formatsarray否抓取页面要返回的输出格式,例如 markdown 或 html。
timeoutinteger否抓取请求的超时时间,单位为毫秒。
waitForinteger否抓取前等待页面稳定的毫秒数。
blockAdsboolean否为 true 时,抓取页面期间会屏蔽广告和弹出窗口。
excludeTagsarray否要从抓取结果中排除的 HTML 标签。
includeTagsarray否要纳入抓取结果的 HTML 标签;设置后仅返回这些标签中的内容。
onlyMainContentboolean否为 true 时,仅返回页面的主要内容,不包含导航和其他模板内容。

详细介绍

crawlport

crawlport 是 Agent 通往可读网络的入口,由 Firecrawl 提供支持。给它一个页面,它会返回整洁的 Markdown;给它整个网站,它可以映射页面、抓取某个版块,或批量抓取一组页面;给它一个问题,它可以搜索、从页面中提取符合你所描述架构的结构化字段、跨多个来源进行研究,或起草网站会用来介绍自身的 llms.txt。它既可作为命令行工具运行,也可作为 MCP 服务运行,并且需要 Firecrawl API 密钥。

设置

从 Firecrawl 获取密钥并将其导出:

export FIRECRAWL_API_KEY=<redacted>

如果未设置该变量,每条命令和工具调用都会失败,并显示提及 FIRECRAWL_API_KEY 的错误——不会向任何地方发送任何内容。

安装

npx @reneturcios/crawlport scrape https://example.com/some/page

或者运行容器镜像:

docker run -i -e FIRECRAWL_API_KEY ghcr.io/cloudcorprecords/crawlport

容器默认启动 MCP 服务(见下文)。传入命令行参数即可将其用作命令行工具。

命令行工具

# One page, as markdown (add --formats html,links etc. for more)
crawlport scrape https://example.com/article --only-main-content

# Discover a site's URLs, optionally filtered
crawlport map https://example.com --search pricing --limit 100

# Web search, with locale controls
crawlport search "standing desk reviews" --limit 5 --lang en --country US

# Start a crawl, then poll it with the returned job id
crawlport crawl https://example.com/docs --limit 50 --max-depth 2
crawlport crawl-status <job-id>

# Structured extraction and batch scraping
crawlport extract https://example.com/a https://example.com/b --prompt "pull the price"
crawlport batch-scrape https://example.com/a https://example.com/b
crawlport batch-status <job-id>

# Research and llms.txt
crawlport deep-research "home battery storage costs in 2026" --max-urls 40
crawlport llmstxt https://example.com --max-urls 25

crawlport --version

调用成功时会打印 API 的 JSON 响应。抓取和批量任务在上游以异步方式运行:启动调用会返回一个任务 ID,相应的状态命令会读取其进度和结果。退出码:成功时为 0,API 调用失败(包括缺少密钥)时为 1,用法错误时为 2。

MCP 服务

同一个二进制文件支持两种运行方式。mcp 子命令会启动一个 stdio MCP 服务:

npx -y @reneturcios/crawlport mcp

MCP 客户端配置:

{
  "mcpServers": {
    "crawlport": {
      "command": "npx",
      "args": ["-y", "@reneturcios/crawlport", "mcp"],
      "env": { "FIRECRAWL_API_KEY": "your-key-here" }
    }
  }
}
工具
工具输入功能
firecrawl_scrapeurl(必填);formats、onlyMainContent、waitFor、timeout、actions、includeTags、excludeTags、blockAds、proxy(可选)通过 POST /v1/scrape 抓取一个页面。
firecrawl_mapurl(必填);search、limit、ignoreSitemap通过 POST /v1/map 列出网站发现的 URL。
firecrawl_searchquery(必填);limit、lang、country、scrapeOptions通过 POST /v1/search 搜索网页,可选择抓取每条结果。
firecrawl_crawlurl(必填);limit、maxDepth、allowBackwardLinks、allowExternalLinks、excludePaths、includePaths、scrapeOptions通过 POST /v1/crawl 开始抓取;返回任务 ID。
firecrawl_check_crawl_statusid(必填)通过 GET /v1/crawl/{id} 轮询抓取任务。
firecrawl_extracturls(必填);prompt、schema、enableWebSearch、allowExternalLinks通过 POST /v1/extract,使用提示词/架构进行大模型提取。
firecrawl_batch_scrapeurls(必填);formats、onlyMainContent通过 POST /v1/batch/scrape 开始批量抓取;返回任务 ID。
firecrawl_check_batch_statusid(必填)通过 GET /v1/batch/scrape/{id} 轮询批量任务。
firecrawl_deep_researchquery(必填);maxDepth、timeLimit、maxUrls通过 POST /v1/deep-research 开展多来源研究。
firecrawl_generate_llmstxturl(必填);maxUrls、showFullText通过 POST /v1/llmstxt 生成 llms.txt 内容。

工具结果是上游 JSON,并以文本形式美化输出。仅当提供可选参数时才会转发这些参数,否则使用 API 默认值。上游错误会作为工具错误返回,其中包含 HTTP 状态码和 API 自带的错误消息。

开发

npm install
npm run build   # tsc -> dist/
npm test        # node test runner over test/*.test.ts, no network (fake fetch fixtures)
npm run dev     # run the CLI from source via tsx

许可证

MIT — 参见 LICENSE。

评论

支持 Markdown

第一次接触 MCP?

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

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