cnipa-mcp
CNIPA(中国国家知识产权局 · 专利检索及分析系统)专利查询 MCP 服务器。 让 Qoder / Claude Desktop / Cursor 以及魔搭(ModelScope)MCP 托管等支持 MCP 的客户端 直接调用专利查询能力。
MCP 客户端 ──stdio──▶ cnipa-mcp ──┬─ 直连模式: 进程内访问 CNIPA(自带 Node,自动登录/滑块/铸币)
└─ 代理模式: HTTP 转发给 Docker 后端(cnipa-api 等兼容服务)
功能与工具
| 工具 | 功能 | 关键参数 |
|---|---|---|
service_status |
查看运行模式、Node/OpenCV 依赖、数据目录、凭据配置状态 | — |
query_patent |
按专利号查询:检索信息 + 著录项目 + 费用信息 | patent_no(逗号分隔多个;支持 CN/ZL 前缀、.X 后缀) |
query_applicant_patents |
按申请人查询名下专利:完整 JSON 落盘 + 生成 Excel + 返回预览 | sqrmc、preview_count、max_pages、download_excel、save_dir |
download_excel_file |
下载后端已生成的 Excel(仅代理模式) | filename 或完整 URL |
所有查询工具都需要 CNIPA 账号凭据,优先取工具参数 account / password / type_key,
缺省回退到环境变量 CNIPA_USERNAME / CNIPA_PASSWORD / CNIPA_TYPE_KEY
(type_key:1 自然人 / 2 法人 / 3 代理机构;也接受"自然人/法人/代理机构"中文写法)。
⚠️ 本包不内置任何默认凭据,请使用您本人有权使用的账号,并遵守 CNIPA 用户协议与相关法律法规。
安装
# 推荐(隔离环境,适合 MCP 客户端/云端一键拉起)
uvx cnipa-mcp
# 或 pip 安装
pip install cnipa-mcp
cnipa-mcp # stdio 方式运行
两种运行模式
直连模式(默认,自包含)
不设置 CNIPA_API_BASE 即启用:进程内直接访问 CNIPA,自动完成
登录(滑块验证求解 + 瑞数铸币)、检索、著录项、费用信息查询。
依赖均已声明在包内:nodejs-bin(随包 Node 18)、opencv-python-headless(滑块求解)、
numpy、requests、openpyxl(Excel 导出)。临时数据目录自动落到系统临时目录,
适配只读/受限沙箱环境(如魔搭免费实例)。
代理模式
设置 CNIPA_API_BASE(如 http://127.0.0.1:15000)后,转发给 Docker 后端
(兼容 hahaha121391/cnipa-api 的 HTTP 服务):
docker run -d --name cnipa-api --restart unless-stopped \
-p 127.0.0.1:15000:5000 hahaha121391/cnipa-api:latest
MCP 客户端配置
本地客户端(Qoder / Claude Desktop 等,stdio)
{
"mcpServers": {
"cnipa": {
"command": "uvx",
"args": ["cnipa-mcp"],
"env": {
"CNIPA_USERNAME": "<您的账号>",
"CNIPA_PASSWORD": "<您的密码>",
"CNIPA_TYPE_KEY": "1"
}
}
}
}
凭据也可以不放在 env,由调用方在每次工具调用时传入 account / password。
魔搭(ModelScope)MCP 部署服务
选择"托管 STDIO"类型,提交如下 JSON(创建表单中用 uvx 拉取本包):
{
"mcpServers": {
"cnipa": {
"command": "uvx",
"args": ["cnipa-mcp"],
"env": {
"CNIPA_USERNAME": "",
"CNIPA_PASSWORD": "",
"CNIPA_TYPE_KEY": "1"
}
}
}
}
平台会自动从 PyPI 安装本包并调用 list_tools 做可部署检测;
env 中的账号/密码由部署者或使用者在部署向导中填写,不会出现在公开页面。
环境变量
| 变量 | 默认值 | 说明 |
|---|---|---|
CNIPA_API_BASE |
空 | 空=直连模式;设置(如 http://127.0.0.1:15000)=代理模式 |
CNIPA_USERNAME / CNIPA_PASSWORD |
空 | 默认凭据(可被工具参数覆盖) |
CNIPA_TYPE_KEY |
1 |
账号类型:1 自然人 / 2 法人 / 3 代理机构 |
CNIPA_EXPORT_DIR |
~/cnipa-exports |
导出文件保存目录 |
CNIPA_DATA_DIR |
系统临时目录/cnipa-mcp | 会话/JWT 缓存目录(受限环境自动降级) |
CNIPA_NODE_PATH |
空 | 指定 node 可执行文件(默认用随包 Node) |
CNIPA_TIMEOUT |
290 |
代理模式 HTTP 超时秒数 |
已知限制
- 首次查询包含"登录 + 滑块验证 + 铸币"流程,可能耗时数十秒;
- 超大申请人(数万条专利)全量拉取耗时较长,受限环境请设置
max_pages取样, 截断时返回truncated: true; - 自由实例(1 vCPU / 1GB 内存 / 512MB 磁盘)下全量导出大申请人数据可能超限;
- 本工具通过自动化方式访问公开检索系统,请在获得授权的前提下用于合法用途 (如查询自有/客户授权范围内的专利数据)。
License
未声明许可证。仅供授权范围内的内部使用。
Metadata
Release files for cnipa-mcp 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| cnipa_mcp-0.1.0.tar.gz | 39.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| cnipa_mcp-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 79.2 kB
Release files / cnipa_mcp-0.1.0.tar.gz
| Download URL | cnipa_mcp-0.1.0.tar.gz |
|---|---|
| Size | 39.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
5103b3d6c25a3c9089d43bbd8d5fbb77aeca167b1728126cad6f33b3e94f9e85
|
|
BLAKE2b-256 checksum How to use checksums |
ec6091c9d9b308a44ac3bdef1e48d00e631811167ae875a2ac85ed8d68d4a7e0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.0
|
Release files / cnipa_mcp-0.1.0-py3-none-any.whl
| Download URL | cnipa_mcp-0.1.0-py3-none-any.whl |
|---|---|
| Size | 39.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
c6bb05e3caa3d5550171a8174cfd00728cf822fb03a3ad7bf72033afa975cc23
|
|
BLAKE2b-256 checksum How to use checksums |
8625252dce080e5cee76968aa10348dbca13bea6c8bae789c55576a1afd5b446
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.0
|