mcp-law-server

mcp-law-server

MCP server for retrieving and verifying audit regulations, clauses, and audit items using vector and relational databases.

Category
访问服务器

README

mcp-law-server

审计法规智能检索 MCP Server —— 面向审计 Agent 的法规/条款/审计事项检索与核实服务。

Milvus 向量检索(法规名 / 条款 / 审计事项)+ MySQL 关系查询(层级 / 分类)+ Hermes Agent 编排 + Agent 核实

技术栈

选型
语言 / 运行时 Python 3.12
包管理 / 构建 uv + hatchling(src-layout)
MCP 框架 FastMCP >=2.3(stdio + HTTP 双传输)
MySQL 访问 SQLAlchemy 2.x async + asyncmy(双库:audit_corpus / auditkm_factory)
向量库 Milvus(pymilvus),库 sys_law_title,10 个 Collection
Embedding BGE-large-zh-v1.5,1024 维(本地 FlagEmbedding 推理)
LLM Qwen3.5-27B(vLLM,OpenAI-compatible HTTP)
缓存 Redis / 内存双后端(TTL + 多轮对话上下文)
配置 pydantic-settings + .env
编排 Hermes Python 编排引擎(src/mcp_law_server/hermes/,14 Agent)

目录结构

mcp_law_server/
├── pyproject.toml                # 元数据 / 依赖 / 入口 / 工具配置
├── .env.example                  # 环境变量模板(复制为 .env 填写)
├── Dockerfile                    # Docker 镜像构建(python:3.12-slim)
├── docker-compose.yaml           # 单服务编排(stdio/http 双传输)
├── src/mcp_law_server/           # ── 应用代码(src-layout)──
│   ├── main.py                   # CLI 入口(stdio / http 双传输 + 优雅关闭)
│   ├── config/                   # 配置层 —— Settings 单例(pydantic-settings)
│   ├── models/                   # 数据模型层 —— enums / schemas / errors / error_codes
│   ├── interfaces/               # 接口层 —— 13 个 Protocol 定义(embedding/db/vector/cache)
│   ├── db/                       # MySQL 数据访问层 —— connection + 5 个 DAO
│   ├── vector/                   # Milvus 向量访问层 —— client + 3 个 Searcher
│   ├── embedding/                # Embedding 层 —— BGEEncoder 本地推理
│   ├── cache/                    # 缓存层 —— 内存/Redis 双后端 + TypedCache
│   ├── tools/                    # MCP 工具层 —— 11 个 tool handler(核心业务)
│   ├── hermes/                   # Hermes 编排层 —— 10 文件 Python 包(14 Agent DAG)
│   ├── observability/            # 可观测性 —— logging + degradation + log_format
│   ├── registry/                 # MCP Registry —— 12 文件 7 模块(工具注册/语义匹配/网关)
│   ├── chat/                     # Chat 服务 —— export/law/stats/sse 4 模块
│   └── server/                   # MCP Server 注册 —— mcp_app + error_boundary
├── scripts/                      # ── 运维脚本(验证/演示/向量化/性能测试)──
└── tests/                        # ── 测试(14 子目录,1066 测)──

依赖方向(从下到上,禁止反向引用): config → models → {db, vector, embedding, cache} → tools → server → main

横切层 observability/registry/interfaces/ 被多层依赖。

核心能力(11 个 MCP 工具)

类型 工具 说明
编排入口 agent_query Hermes DAG 综合查询(意图→路由→三通道并行→融合)
编排入口 decompose_query Agent 00 问题拆解 + 逐题验证 + 可信度聚合
路由入口 smart_query 按意图路由到对应原子工具
原子工具 search_law_name_vector 法规名称向量检索(MySQL 三形态 + Milvus 语义)
原子工具 search_clause_vector 条款内容向量检索(Milvus 6 collection 联合)
原子工具 issue_to_law 审计问题→法规映射(bge 双路 RRF 合并)
原子工具 law_lookup 按法规 ID 查六要素详情
原子工具 law_article_search 法规全文条款检索
原子工具 get_regulation_hierarchy 法规层级关系查询(上位法/相关法/历史版本/废止)
原子工具 get_clause_classifications 条款法定属性分类(7 类法律规范属性)
原子工具 verify_law_reference 法规引用 4 轮 Loop 核实

快速开始

# 1. 安装核心 + 开发依赖(uv 会自动准备 Python 3.12 解释器)
uv sync

# 2. (按需)安装 ML 依赖(FlagEmbedding / torch,体积较大)
uv sync --extra ml

# 3. 配置环境变量
cp .env.example .env          # 然后编辑 .env 填写真实值

# 4. 启动 MCP Server(stdio 模式)
uv run mcp-law-server

# 5. 启动 MCP Server(HTTP 模式)
MCP_TRANSPORT=http uv run mcp-law-server

常用命令

命令 说明
uv sync 安装核心 + 开发依赖
uv sync --extra ml 额外安装 ML 依赖
uv run mcp-law-server 启动 MCP server(stdio)
uv run mcp-law-server http 启动 MCP server(HTTP)
uv run python -m pytest tests/ -v 运行全部测试(1066 测)
uv run ruff check . 代码风格检查
uv run mypy src/ 类型检查
uv run docker compose up --build Docker 部署

环境变量

.env.example,字段与 src/mcp_law_server/config/settings.py 一一对应。

推荐服务器

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 模型以安全和受控的方式获取实时的网络信息。

官方
精选