qcc-mcp-legal-oauth

qcc-mcp-legal-oauth

Enables one-click OAuth authorization to access Qichacha legal data (regulations and judicial cases) via MCP within DeepSeek Harness, with automatic token refresh and dynamic server mounting.

Category
访问服务器

README

企查查法律数据 MCP OAuth 插件(DeepSeek Harness)

One-click OAuth connect to 企查查 (Qichacha) 法律数据 MCP inside DeepSeek Harness. 在 DeepSeek Harness 中一键 OAuth 授权接入企查查法律数据 MCP(法规法条 / 司法案例)。

License: MIT

功能 / Features

  • 🔑 一键 OAuth 连接Authorization Code + PKCE(S256),动态注册客户端(无 client_secret),自动打开浏览器跳转企查查授权页,loopback 回调自动完成
  • 🌐 一次授权、全 Server 可用:一份 access_token / refresh_token 覆盖企查查法律数据 MCP SERVER(legal-regulation 法规 / legal-case 案例,共 2 个);插件按 token 实际授权范围动态挂载——同时开通法规+案例的账号 2 个、仅开通法规的账号 1 个
  • 🔄 自动刷新:access_token 过期前自动 refresh(token 轮换),失败才需要重新授权
  • 💾 安全持久化:token 存储于 DSH 存储域(~/.dsh/storages,目录 0700),重启 Host 自动恢复连接
  • 🛠 对话即管理:内置 qcc_legal_oauth_connect / qcc_legal_oauth_status / qcc_legal_oauth_disconnect 三个工具
  • 🚪 一键断开:调用 OAuth revoke 撤销 refresh_token 并停用 MCP 工具
  • 🧩 与企业数据插件可共存:工具名、存储域、条目 id 与「企查查 MCP OAuth 插件」(company/risk/...)完全独立,可同时安装

安装 / Install

前置:DeepSeek Harness(dsh CLI,web profile),Node ≥ 20。

🤖 让 Agent 安装(最省事,推荐给不熟悉命令行的用户)

把下面的链接直接发给你的 DeepSeek Harness 对话(推荐先在 dshmarket 插件市场搜索「企查查法律数据」一键安装;市场直装失败时,同样把链接发给 Agent 即可代为安装):

帮我安装这个插件 https://github.com/duhu2000/qcc-mcp-legal-oauth

Agent 会按本 README 执行以下命令(你也可以自己跑):

# 方式一:一键脚本(自动安装 + 注册 bundle + 提示重启)
bash <(curl -fsSL https://raw.githubusercontent.com/duhu2000/qcc-mcp-legal-oauth/main/install.sh)

# 方式二:手动两步
dsh plugin --profile web add qcc-dsh-mcp-legal-oauth   # 安装依赖并自动注册 bundle
# 重启 dsh web

说明:安装时的 peer dependencies 警告可忽略——@deepseek-ai/* 等对等依赖由 DSH web profile 自带(host 依赖),无需另行安装;安装完成后必须重启 dsh web 才能生效。

方式 A:npm 安装

# 1. 安装插件到 profile(声明了 dsh.bundle 的包会被 dsh plugin add 自动注册到 bundles)
dsh plugin --profile web add qcc-dsh-mcp-legal-oauth

# 2. 重启 dsh web

若未自动注册:手动在 ~/.dsh/profiles/web/package.json 的 dsh.profile.bundles 追加 "qcc-dsh-mcp-legal-oauth"(与 @deepseek-ai/dsh-base@deepseek-ai/dsh-web-app 并列),再重启。

方式 B:GitHub 直装

dsh plugin --profile web add github:duhu2000/qcc-mcp-legal-oauth
# 再重启 dsh web

方式 C:源码 / 本地调试

git clone https://github.com/duhu2000/qcc-mcp-legal-oauth.git
cd qcc-mcp-legal-oauth
dsh plugin --profile web add "link:$(pwd)"      # 或 pnpm add "file:$(pwd)"
# 再重启 dsh web

插件包内自带 cordis.patch.yml(bundle patch);dsh plugin add 自动完成依赖安装与 bundles 注册,插件行自动合入,无需手改任何文件。

使用 / Usage

重启后,插件会自动发起 OAuth 授权(默认开启,激活且无有效授权时自动打开企查查授权页);如未自动触发,在对话中输入:

你说 效果
"连接企查查法律数据" 触发 qcc_legal_oauth_connect:自动打开浏览器跳转企查查授权页,登录授权后自动完成连接
"查一下企查查法律数据连接状态" 触发 qcc_legal_oauth_status:显示授权状态、token 过期时间、覆盖的 MCP Server
"断开企查查法律数据" 触发 qcc_legal_oauth_disconnect:撤销 refresh_token、清除本地授权、停用工具

连接成功后,以下工具直接可用(示例):

  • mcp__legal-regulation__*regulation_search(法规关键词检索)、regulation_detail(法规全文)、regulation_detail_article(法条原文)等
  • mcp__legal-case__*case_search(案例关键词检索)、case_detail(案例完整文书)等
  • 溯源工具:法规溯源 / 案例溯源(引用核验 + 可点击超链)

原理 / How it works

严格遵循《企查查MCP OAuth 接入文档》(Authorization Code + PKCE,公开接口版),与企业数据 MCP 插件共用同一套授权服务器:

  1. 发现 MCP Protected Resource Metadata → 2. 发现 OAuth Server Metadata(endpoint 全部动态读取,不硬编码)
  2. 动态注册客户端(client_id,90 天自动续期)→ 4. 打开授权页(scope=mcp:tools
  3. loopback 回调校验 state → 6. 授权码 + code_verifier 换 token
  4. 解析 token 实际授权的 resource(JWT claim),通过 ctx.loader 为授权的 @deepseek-ai/dsh-mcp-client 条目注入 Bearer header(法规+案例 2 个 / 仅法规 1 个)→ 8. 过期前自动刷新(轮换)

架构与授权流程

详见 docs/OAUTH-IMPLEMENTATION.md

工具清单与调用示例详见 docs/TOOLS.md

配置 / Configuration

插件行位于 ~/.dsh/profiles/web/cordis.patch.yml(bundle 合入后可见):

- id: qcc-legal-mcp-oauth
  name: 'qcc-dsh-mcp-legal-oauth'
  config:
    issuer: 'https://agent.qcc.com'                 # OAuth 授权服务器
    clientName: 'DeepSeek Harness - QCC Legal MCP'  # OAuth 客户端名(授权页展示 + 后台品牌识别依据)
    refreshSkewMs: 300000                            # 过期前提前刷新(ms)
    openBrowser: true                                # 自动打开浏览器(false = 仅打印授权 URL)
    autoConnectOnActivate: true                      # 激活且无授权时自动打开授权页(false = 手动触发)
    persistTokens: true                              # 持久化 token(false = 仅内存)
    mcpEntryPrefix: 'mcp-qcc'                        # 受管 mcp-client 条目 id 前缀(条目:mcp-qcc-legal-regulation / mcp-qcc-legal-case)

关于 clientName:它是 OAuth 协议的 client_name,会被企查查写入 access_token 的 client_name claim,用于后台看板品牌识别(企查查侧将名称去除空格/连字符/下划线并转小写后,按 deepseekharness* 前缀归一为激活来源 deepseekharness)。默认值 DeepSeek Harness - QCC Legal MCP 已命中该前缀。如需自定义,请保持 DeepSeek Harness 前缀,否则后台会归入「其他(未注册)」、无法正确统计品牌激活。

安全说明 / Security

  • token 只写入 ~/.dsh/storages(0700),不进入 git、不进入对话历史
  • 连接期间 loader 会把条目配置写回 profile 配置文件(含 token),建议:chmod 600 ~/.dsh/profiles/web/cordis.yml;不要把 ~/.dsh 加入任何仓库
  • Bearer token 仅发送给授权集合内的精确 resource URL
  • 断开时调用 revoke 撤销 refresh_token
  • 如需彻底移除:qcc_legal_oauth_disconnect 后从 bundles 移除包名并 dsh plugin --profile web remove qcc-dsh-mcp-legal-oauth

已知限制 / Limitations

  • 插件默认管理 2 个法律数据 SERVER(legal-regulation 法规 / legal-case 案例);账号 token 可能只授权其一,插件按 token 实际授权范围动态挂载(2 个 / 1 个)
  • 企业数据 SERVER(company/risk/ipr/operation/history/executive)由独立的「企查查 MCP OAuth 插件」(qcc-dsh-mcp-oauth)管理,本插件不重复管理;两插件可同时安装
  • 第三方插件无法注册 DSH 设置页卡片(apiproxy allowlist 限制),管理入口为对话工具
  • 回调使用本地 loopback 地址,适用于桌面端;SaaS/Web 回调地址需提前与企查查确认白名单
  • 静态 API Key(Bearer YOUR_API_KEY)直连属企查查另一直连通道,不属本插件职责;如需静态 Key,直接用普通 mcp-client 配置即可

开发 / Development

npm install          # 需要 host 依赖时(见 docs/INSTALL.md)
npm run lint         # 语法检查
npm test             # 单元 + 集成测试(含 mock OAuth 服务器全流程)

测试覆盖:PKCE、元数据发现、动态注册、完整授权码流程(loopback)、refresh 轮换、revoke、 插件级集成(连接/幂等/自动刷新/断开/重启恢复/按 token 授权动态挂载)。

插件市场收录与搜索关键词 / Marketplace

本插件可通过以下渠道被发现与安装:

  1. dsh-plugin topic(官方推荐发现渠道):DeepSeek Harness 官方推荐通过 GitHub dsh-plugin topic 发现插件,本仓库已打该 topic;dsh-plugin-marketplace 等社区市场据此自动收录,搜索走 GitHub 仓库搜索(仓库名 / 描述 / topic),收录即时但无人工审核。
  2. dshmarket(社区插件市场,人工精选 + PR 守门审核):数据源为 awesome-dsh-plugin 精选列表,仅安装列表内来源。本插件已提交收录 PR(data/plugins/duhu2000__qcc-mcp-legal-oauth.yml),合并后即可在「设置 → 插件市场」浏览、搜索「企查查法律数据」并一键安装。安装方式:官方 CLI 支持 dsh plugin add <package> 通用安装,dshmarket 依此提供 dsh plugin --profile web add dshmarket

为便于中文 / 英文检索,已覆盖以下关键词:

  • 中文:企查查法律产品法律数据法规案例(写入仓库描述与精选列表 zh 描述)
  • 英文:qccqichachalegallawlegal-techlegal-dataregulationcase(写入仓库名 / 描述 / topic / npm keywords)

License

MIT

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选