Skip to main content
Glama
duhu2000

qcc-mcp-legal-oauth

by duhu2000

Плагин MCP OAuth для юридических данных 企查查 (DeepSeek Harness)

One-click OAuth connect to MCP юридических данных 企查查 (Qichacha) inside DeepSeek Harness. Авторизация OAuth в один клик для подключения к MCP юридических данных 企查查 в DeepSeek Harness (нормативные акты / судебные дела).

License: MIT

Возможности / Features

  • 🔑 Подключение OAuth в один клик: Authorization Code + PKCE(S256), динамическая регистрация клиента (без client_secret), автоматическое открытие браузера с переходом на страницу авторизации 企查查, автоматическое завершение через loopback-обратный вызов

  • 🌐 Одна авторизация — доступны все серверы: один access_token / refresh_token покрывает MCP-серверы юридических данных 企查查 (legal-regulation — нормативные акты / legal-case — судебные дела, всего 2); плагин динамически подключает серверы по фактической области авторизации токена: 2 для аккаунтов с нормативными актами и делами, 1 — только с нормативными актами

  • 🔄 Автообновление: автоматический refresh до истечения срока действия access_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/...), возможна одновременная установка

Related MCP server: just-one-mcp

Установка / Install

Требования: DeepSeek Harness (dsh CLI, web profile), Node ≥ 20.

🤖 Установка через агента (проще всего, рекомендуется пользователям, не знакомым с командной строкой)

Отправьте ссылку ниже в диалог DeepSeek Harness (рекомендуется сначала выполнить поиск «企查查法律数据» в маркетплейсе плагинов dshmarket и установить в один клик; если установка из маркетплейса не удалась, просто отправьте ссылку агенту — он установит за вас):

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

Агент выполнит следующие команды в соответствии с этим 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 (зависимости хоста), устанавливать их отдельно не нужно; после установки обязательно перезапустите 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

Если автоматическая регистрация не произошла: вручную добавьте "qcc-dsh-mcp-legal-oauth" в dsh.profile.bundles файла ~/.dsh/profiles/web/package.json (в один ряд с @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: показывает статус авторизации, срок действия токена, покрываемые MCP-серверы

«Отключить юридические данные 企查查»

Запускает 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, версия публичного API) и использует тот же сервер авторизации, что и плагин MCP корпоративных данных:

  1. Обнаружение MCP Protected Resource Metadata → 2. Обнаружение OAuth Server Metadata (все endpoint читаются динамически, без жёсткого кодирования)

  2. Динамическая регистрация клиента (client_id, автоматическое продление каждые 90 дней) → 4. Открытие страницы авторизации (scope=mcp:tools)

  3. Проверка state в loopback-обратном вызове → 6. Обмен кода авторизации и code_verifier на токен

  4. Анализ фактически авторизованных ресурсов токена (JWT claim), внедрение Bearer header через ctx.loader для авторизованных записей @deepseek-ai/dsh-mcp-client (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: это client_name из протокола OAuth, который 企查查 записывает в claim client_name токена access_token и использует для идентификации бренда на панели управления (на стороне 企查查 имя очищается от пробелов/дефисов/подчёркиваний, приводится к нижнему регистру и нормализуется по префиксу deepseekharness* в источник активации deepseekharness). Значение по умолчанию DeepSeek Harness - QCC Legal MCP уже соответствует этому префиксу. При изменении сохраняйте префикс DeepSeek Harness, иначе в панели управления активация будет отнесена к категории «Другое (не зарегистрировано)» и не будет корректно учитываться.

Безопасность / Security

  • Токен записывается только в ~/.dsh/storages (0700), не попадает в git и историю диалога

  • Во время подключения loader записывает конфигурацию записей (включая токен) обратно в конфигурационный файл profile; рекомендуется: 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 серверами юридических данных (legal-regulation нормативные акты / legal-case судебные дела); токен аккаунта может быть авторизован только для одного из них, плагин динамически подключает серверы по фактической области авторизации токена (2 / 1)

  • Серверы корпоративных данных (company/risk/ipr/operation/history/executive) управляются отдельным «Плагином MCP OAuth для 企查查» (qcc-dsh-mcp-oauth), данный плагин их не дублирует; оба плагина можно устанавливать одновременно

  • Сторонние плагины не могут регистрировать карточки на странице настроек DSH (ограничение apiproxy allowlist), точка входа для управления — инструменты диалога

  • Обратный вызов использует локальный loopback-адрес, подходит для настольных приложений; для SaaS/Web адреса обратного вызова необходимо заранее согласовать с 企查查 (белый список)

  • Прямое подключение по статическому API-ключу (Bearer YOUR_API_KEY) — это отдельный канал прямого подключения 企查查 и не входит в обязанности данного плагина; если нужен статический ключ, просто используйте обычную конфигурацию mcp-client

Разработка / Development

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

Покрытие тестами: PKCE, обнаружение метаданных, динамическая регистрация, полный поток кода авторизации (loopback), ротация refresh, revoke, интеграционные тесты уровня плагина (подключение/идемпотентность/автообновление/отключение/восстановление после перезапуска/динамическое подключение по авторизации токена).

Каталоги плагинов и поисковые ключевые слова / Marketplace

Данный плагин можно найти и установить следующими способами:

  1. Топик dsh-plugin (официальный рекомендуемый канал обнаружения): DeepSeek Harness официально рекомендует находить плагины по топику GitHub dsh-plugin, данный репозиторий уже помечен этим топиком; сообщества-маркетплейсы, такие как dsh-plugin-marketplace, автоматически включают плагин в каталог на основе этого. Поиск осуществляется через поиск по репозиториям GitHub (название репозитория / описание / топик), включение в каталог мгновенное, но без ручной модерации.

  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 курируемого списка)

  • Английский: qcc, qichacha, legal, law, legal-tech, legal-data, regulation, case (указаны в названии репозитория / описании / топике / npm keywords)

Лицензия

MIT

Related MCP Connectors

Related MCP Servers