缘起:为什么要做这件事

做客户准入、供应商入库、投后监控时,绕不开三件事:

这三件事手工查可以,但有两个问题:(一家公司散在十几个页面,复制粘贴半小时)、(信息进不了 Agent 编排,AI 用不上)。所以目标变成:把企查查 146 个查询点变成 AI Agent 原生可调用的工具集

选型:四条路只剩一条

选项状态否决理由
Aily不开放 API 直连,只能在 Aily 自己产品里用
OpenClaw 内置当时不稳定,工具粒度不可控
QCC 企业 REST API⏸️3 元/次,量起来贵;需走采购
QCC Agent MCP免费 tier + 日配额、Streamable HTTP、6 个 server 全覆盖

上游长这样:6 server / 146 tool

QCC 把数据按业务域切成了 6 个独立的 MCP server,挂在 https://agent.qcc.com/mcp/<server>/stream,Bearer token 鉴权:

servertool 数覆盖
company16工商、股东、UBO、对外投资、年报、财务、分支、上市
risk35司法、失信、限消限出、经营异常、严重违法、行政处罚、税务、破产、抵质押
ipr18专利、商标、著作权、数字资产、自媒体矩阵
operation35资质、招投标、招聘、融资、舆情、公告、政府约谈、抽检、召回
executive42法代/高管个人背调(双参数 USCC + 人名)
history企业历史轨迹(需企业实名认证)

5 分钟跑通

# 1) 配 key
git clone https://github.com/zhanglunet/qcc && cd qcc
cp .env.example .env
# 编辑 .env,填 QCC_API_KEY(裸 token,不带 Bearer 前缀)

# 2) 装 Python 客户端 + skills 额外依赖
cd python && python3.10 -m venv .venv && source .venv/bin/activate
pip install -e ".[skills]"

# 3) 跑 qcc-person-portfolio
python ../skills/qcc-person-portfolio/run.py \
  --person "雷军" \
  --anchor-by-name "小米科技"
# → ./雷军_companies.xlsx,8 sheet,约 200 家关联公司

四条铁律

1. 锚定先行

用户给非 USCC 时,第一步永远是 qcc-company:get_company_by_query。返回多候选时必须让用户选,禁止自动取 top1——QCC 自己的工具描述里就明令禁止了。

真实违规案例:用户输入"腾讯科技最新工商变更",AI 自动补全成"腾讯科技深圳有限公司"调下游,命中的是"腾讯科技(深圳)有限公司"(外资子公司),而非真正想要的运营主体。

2. USCC 优先

锚定拿到 18 位统一社会信用代码后,所有下游调用都用 USCC 作 searchKey,不要再把原始企业名往下传。

3. executive server 双参数

qcc-executive 工具组例外:必须同时提供 searchKey(USCC)+ personName(姓名)——双锚定避免同名误查。

4. 配额错误码

已知限制

写在最后

整个项目的核心判断只有一个:AI Agent 时代,数据源接入的颗粒度不是"API"也不是"工具",而是"工作流"

8 个 skill 看似只是把 146 个 tool 重新打包,但真正的价值在于把"用户一次尽调动作"沉淀成可复用、可触发、可被任意 Agent 框架消费的最小单元。Claude Code 拿去做对话式尽调,OpenClaw 拿去做 IM 侧助手,Hermes 拿去做服务端编排,Python 脚本拿去做批量导出——同一份 skill 目录,四个运行时无缝复用

仓库地址:github.com/zhanglunet/qcc

← 回到首页 在 GitHub 查看源码 →