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
Audiense Insights MCP Server

Audiense Insights MCP Server

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

官方
精选
本地
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

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

官方
精选
本地
TypeScript
VeyraX

VeyraX

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

官方
精选
本地
Kagi MCP Server

Kagi MCP Server

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

官方
精选
Python
graphlit-mcp-server

graphlit-mcp-server

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

官方
精选
TypeScript
Exa MCP Server

Exa MCP Server

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

官方
精选
mcp-server-qdrant

mcp-server-qdrant

这个仓库展示了如何为向量搜索引擎 Qdrant 创建一个 MCP (Managed Control Plane) 服务器的示例。

官方
精选
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选