MCP Servers

A collection of Model Context Protocol servers, templates, tools and more.

企查查 MCP 接口批量抓取企业 工商/经营/风险/知产 67 项字段,断点续爬、并行调用、CLI 字段筛选

Created 4/27/2026
Updated about 6 hours ago
Repository documentation and setup instructions

企查查 MCP 批量抓取脚本

通过企查查官方 MCP 接口(agent.qcc.com)批量获取企业 工商 / 经营 / 风险 / 知产 四大类字段数据。

  • 可用字段数:67 项(工商 14 / 经营 13 / 风险 34 / 知产 6)
  • 默认抓取:推荐核心 25 项(不传 --fields 时的行为)
  • 可自由选择字段:CLI 参数 / 按分组批量选

准备工作(第一次跑必看)

步骤 1:安装 Python 依赖

只需要一个第三方库 requests

pip install requests

⚠ 不要开代理 / VPN 企查查接口只接受国内 IP,挂着 Clash / V2ray / Tailscale 等会被服务端拒(错误码 100002 暂不支持境外IP请求)。 程序已自动忽略 Windows 系统代理与环境变量代理(trust_env=False),但如果你开了 TUN 模式 / 全局代理 / 虚拟网卡,仍会接管所有流量,需要手动关闭代理或在代理软件里把 *.qcc.com 加到直连规则。

步骤 2:填 Token(重要!)

打开同目录下的 config.json,把里面 4 处 YOUR_TOKEN_HERE 替换成你自己的企查查 MCP Token。

Token 在企查查 agent 平台(agent.qcc.com)登录后获取,4 个 server 用同一个 token 即可。

填完之后 config.json 应该长这样:

{
  "mcpServers": {
    "qcc-company": {
      "url": "https://agent.qcc.com/mcp/company/stream",
      "headers": {
        "Authorization": "Bearer 你的真实Token贴这里"
      }
    },
    ...其他 3 个 server 同理
  }
}

步骤 3:准备名单 CSV

qcc_search_list.csv 是要查的公司名单,列名固定为 entity_name,entity_type,source,uscc

  • entity_name:公司全称(必填一个,没 USCC 时用这个查)
  • uscc:18 位统一社会信用代码(有就填,优先用这个查,更准)
  • entity_type / source:你自己的分类标签,不影响抓取

把示例两行删掉,换成你自己的名单即可。


积分消耗提醒(重要)

  • 每调用一次 MCP tool 消耗 1 个积分
    • 默认核心 25 项:单条实体 = 25 积分
    • 全部 67 项:单条实体 = 67 积分(约 ×2.68)
  • 跑前先算账:实体数 × 字段数 ≤ 当前账户余额
  • 代码在 errors 字段会记录 code 300008: 当前积分余额不足,充值后重跑即可(断点续爬会自动跳过已成功的)

快速上手

# 验证配置:跑名单前 5 条
py qcc_mcp.py --test

# 全量抓取(默认核心 25 项,断点续爬)
py qcc_mcp.py

# 跑全部 67 项字段(消耗翻 2.68 倍,慎用)
py qcc_mcp.py --all-fields

# 临时抓一家
py qcc_mcp.py --entity "深圳华信股权投资基金管理有限公司"

# 抓完合并
py qcc_mcp.py --merge

字段选择

# 查看全部 67 项(★ 为核心)
py qcc_mcp.py --list-fields

# 只抓指定字段(中文名,空格或逗号分隔)
py qcc_mcp.py --fields 工商信息 股东信息 专利
py qcc_mcp.py --fields "工商信息,股东信息,专利"

# 按分组批量抓取(工商 / 经营 / 风险 / 知产)
py qcc_mcp.py --fields-group 工商 风险

# 跑全部 67 项
py qcc_mcp.py --all-fields

# 分组 + 单独字段混用(去重)
py qcc_mcp.py --fields-group 工商 --fields 专利 司法拍卖

优先级--all-fields > --fields / --fields-group > 默认核心 25 项


三种工作模式

模式 1:名单模式(默认)

qcc_search_list.csv 按行顺序跑,用 uscc(有)或 entity_name(无)作为查询键。

py qcc_mcp.py                       # 全量
py qcc_mcp.py --test                # 只跑前 5 条
py qcc_mcp.py --start 100 --end 200 # 跑第 100-199 条

断点续爬:已完成的 key 记录在 qcc_data_mcp/_progress.json,中断后再跑会自动跳过;Ctrl+C 中断时会保存进度。

模式 2:手动模式(临时补抓,不写进度文件)

三种输入方式任选其一,可混用:

# 方式 A:命令行参数(18 位字母数字 → USCC,否则 → 企业名)
py qcc_mcp.py --entity 9144030059070463XP
py qcc_mcp.py --entity "深圳华信股权投资基金管理有限公司"
py qcc_mcp.py --entity USCC1 USCC2 "某公司名"

# 方式 B:交互输入,启动后逐行敲,空行或 Ctrl+Z 回车结束
py qcc_mcp.py -i

# 方式 C:从文本文件读(一行一条,# 开头是注释)
py qcc_mcp.py --entity-file list.txt

手动模式不读不写 _progress.json,适合临时补抓名单外的公司。

模式 3:合并模式

qcc_data_mcp/json/ 下所有单体 JSON 合并成大表:

py qcc_mcp.py --merge
# 产出:
#   qcc_data_mcp/qcc_全量数据.json      —— 所有实体的数组
#   qcc_data_mcp/qcc_全量数据汇总.csv   —— 扁平化(每行一个实体,列为 工商.企业名称/工商.注册资本/…)

参数速查

| 参数 | 作用 | | --------------------------- | ------------------------------------- | | --test | 只跑名单前 5 条 | | --start N / --end M | 跑名单 [N, M) 区间 | | --entity NAME/USCC ... | 手动抓一个或多个实体 | | -i / --interactive | 交互输入模式 | | --entity-file PATH | 从文本文件读实体(一行一条) | | --merge | 合并已抓数据为大 JSON + CSV | | --workers N | 单实体内工具并发数(默认 6) | | --list-fields | 列出全部 67 项可选字段(★ 标核心) | | --fields 字段名 ... | 只抓指定字段(中文名) | | --fields-group 组名 ... | 按分组抓取(工商/经营/风险/知产) | | --all-fields | 跑全部 67 项(不传时默认只跑核心 25) |


可抓字段清单(67 项)

工商(14,★ 12 项核心)

★ 工商信息 · ★ 企业简介 · ★ 股东信息 · ★ 实控人 · ★ 受益所有人 · ★ 主要人员 · ★ 对外投资 · ★ 分支机构 · ★ 变更记录 · ★ 年报 · ★ 上市信息 · ★ 联系方式 · 税号开票 · 准确性验证

经营(13,★ 4 项核心)

★ 融资历程 · ★ 新闻舆情 · ★ 资质 · ★ 招投标 · 信用评价 · 行政许可 · 招聘信息 · 进出口信用 · 抽查检查 · 电信许可 · 上榜榜单 · 荣誉信息 · 企业公告

风险(34,★ 5 项核心)

★ 失信 · ★ 经营异常 · ★ 行政处罚 · ★ 裁判文书 · ★ 股权出质 · 被执行人 · 限制高消费 · 严重违法 · 终本案件 · 立案信息 · 开庭公告 · 法院公告 · 送达公告 · 破产重整 · 股权冻结 · 司法拍卖 · 询价评估 · 诉前调解 · 限制出境 · 环保处罚 · 税务非正常户 · 欠税公告 · 税收违法 · 惩戒名单 · 违约事项 · 担保信息 · 股权质押 · 动产抵押 · 土地抵押 · 简易注销 · 注销备案 · 清算信息 · 劳动仲裁 · 公示催告

知产(6,★ 4 项核心)

★ 专利 · ★ 商标 · ★ 软著 · ★ 互联网备案 · 作品著作权 · 标准信息

详见 企查查可抓取字段.md(官方工具描述)或 py qcc_mcp.py --list-fields


输出 JSON 结构

每条实体落盘一个 JSON(文件名:优先企业中文名,没有才用 USCC):

{
  "entity_name": "深圳华信股权投资基金管理有限公司",
  "uscc": "9144030059070463XP",
  "entity_type": "基金",
  "source": "基金名称",
  "search_key": "9144030059070463XP",
  "crawled_at": "2026-04-22 16:42:15",
  "fields":   ["工商信息", "股东信息", "..."],
  "data":     { "工商信息": {...}, "股东信息": {...}, ... },
  "no_match": { "专利": true, ... },
  "errors":   { "融资历程": "...", ... }
}
  • fields:本次实际抓取的字段名清单(方便追溯不同批次抓了哪些维度)
  • data:正常返回的数据
  • no_match:接口成功返回但查不到该维度记录(USCC/名称错误,或该公司在此维度确实无记录)
  • errors:真错误(SSL 抖动 / 积分不足 / 限流 / 超时)

data 为空且 no_match 满所有请求字段时,日志会打 ⚠ 全部无匹配——通常是查询键错了。


FAQ / 坑

| 症状 | 原因 | 处理 | | ---------------------------------------------------------- | --------------------------------- | ---------------------------------------------------------------------- | | [配置错误] config.json 里的 Authorization 还没填 Token | 还没填 token | 打开 config.json 把 4 处 YOUR_TOKEN_HERE 换成自己的 token | | code 100002: 暂不支持境外IP请求 | 你开着 VPN / 代理 / Tailscale | 关掉代理(或在 Clash 里把 *.qcc.com 加 DIRECT 直连规则)后重跑 | | SSL EOF / 400 Bad Request | cold start 并发竞态 | 脚本自动重试 3 次,一般能恢复;偶发几条可以 --merge 后看缺哪条重跑 | | code 300008: 当前积分余额不足 | 积分耗尽 | 充值后直接重跑,断点续爬自动跳过已完成 | | 所有维度"无匹配项" | USCC/名称错误或该实体不在企查查库 | 核对企业名全称或补一个准确 USCC | | 控制台中文乱码 | Windows 代码页非 UTF-8 | 跑前 chcp 65001,或看 qcc_data_mcp/_log.txt(始终 UTF-8) |


相关文档

  • 企查查可抓取字段.md — 官方 67 项工具完整描述与适用场景
  • qcc_mcp_tools.json — 企查查 67 个工具完整清单(探针生成)

有 bug / 建议欢迎随时提 Issue!

Quick Setup
Installation guide for this server

Install Package (if required)

uvx qcc-mcp-batch

Cursor configuration (mcp.json)

{ "mcpServers": { "ace-kelly-qcc-mcp-batch": { "command": "uvx", "args": [ "qcc-mcp-batch" ] } } }