关于 Fedlex Connector
Fedlex Connector 是面向法律研究与分析的 MCP 服务,可访问《联邦法汇编》中的瑞士联邦法律。它结合 SPARQL 元数据查询与官方 HTML 正文获取,支持德语、法语和意大利语。
主要功能
- 01按标题搜索现行法案
- 02获取条文和完整法律文本
- 03指定条文汇编日期
- 04查看修订历史
- 05分页返回长篇法律文本
适用场景
- 01按标题查找法案 RS 编号
- 02以指定语言阅读条文
- 03查看法案近期变更
MCP 相关
它向 MCP 客户端提供法律搜索、条文或完整法律文本获取及修订查询工具。元数据来自 Fedlex SPARQL,正文取自 HTML 文件库。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://mcp.fedlex-connector.ch/claude mcp add --transport http ch-fedlex-connector-fedlex-connector https://mcp.fedlex-connector.ch/{"mcpServers":{"ch-fedlex-connector-fedlex-connector":{"type":"http","url":"https://mcp.fedlex-connector.ch/"}}}在 Cursor 中打开{"servers":{"ch-fedlex-connector-fedlex-connector":{"type":"http","url":"https://mcp.fedlex-connector.ch/"}}}在 VS Code 中打开{"mcpServers":{"ch-fedlex-connector-fedlex-connector":{"type":"http","url":"https://mcp.fedlex-connector.ch/"}}}{"mcpServers":{"ch-fedlex-connector-fedlex-connector":{"serverUrl":"https://mcp.fedlex-connector.ch/"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
工具
4| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| query | string | 是 | 用于匹配法规标题的关键词(例如 'code civil'、'protection des données') |
| language | enum | 否 | 结果语言(默认:de)fr | de | it |
详细介绍
Fedlex Connector
通过 Claude 访问瑞士联邦法律
这款连接器基于 Model Context Protocol(MCP),让 Claude 可以直接访问 Fedlex 上瑞士联邦立法的官方文本。涵盖《分类汇编》(SR、RS)中的所有法案,语言包括德语、法语和意大利语。
为何创建此项目
瑞士联邦法律仅在 Fedlex 上发布,但其前端是 JavaScript 单页应用,Claude 内置的网页工具无法呈现。不过,Fedlex 提供了两个无需 JavaScript 即可使用的机器可读接口:
- 用于查询元数据的 SPARQL 端点(
fedlex.data.admin.ch/sparqlendpoint) - 用于提供整合版立法文本的 静态 HTML 文件库(
fedlex.admin.ch/filestore/...)
这个 MCP 服务弥合了这一差距:它通过 SPARQL 查询元数据(RS 编号、整合日期、修订历史),获取并解析 HTML 中的实际立法文本,然后以结构化格式返回给 Claude。没有专有数据库,也没有缓存——只是一个连接 Fedlex 开放数据基础设施的无状态桥接服务。
设置
该服务支持两种传输方式:用于本地使用(Claude Code、Claude Desktop)的 stdio,以及用于远程使用(claude.ai)的 HTTP。你可以选择其中一种或同时使用两种。
服务托管于:
https://mcp.fedlex-connector.ch
claude.ai / Claude Desktop:
- 前往 claude.ai
- 点击侧边栏中的 Customize(Anpassen / Personnaliser / Personalizza)
- 点击 Connectors
- 点击 + → Add connector
- 点击 Add custom connector,并粘贴 URL:
https://mcp.fedlex-connector.ch
建议将其命名为“Fedlex Connector”。
Claude Code:
claude mcp add --transport http fedlex https://mcp.fedlex-connector.ch
连接后,Claude 可以直接从 Fedlex 获取文本,回答诸如 “瑞士民法典第 1 条规定了什么?” 之类的问题。
部署自己的实例
该服务包含一个 Dockerfile,可部署到任何支持 Docker 容器的云平台(Railway、Fly.io、Render 等)。设置 PORT 环境变量后,服务将以 HTTP 模式运行。若未设置 PORT,则会以 stdio 模式在本地运行。
你的 MCP 端点将位于 https://your-domain。使用以下命令验证:
curl https://your-domain/health
工具
search_by_title
在《分类汇编》(RS/SR)中搜索瑞士联邦立法标题。仅返回当前有效的法案。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
query | string | 是 | 用于匹配法案标题的关键词 |
language | fr de it | 否 | 结果语言(默认:de) |
示例: 查找数据保护法的 RS 编号。
search_by_title(query="protection des données")
→ RS 235.1 — Loi fédérale sur la protection des données (LPD)
get_article
获取特定条款的官方整合文本。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
rs_number | string | 是 | RS 编号(例如,民法典为 "210",债务法为 "220") |
article | string | 是 | 条款编号(例如,"3"、"28a"、"260bis") |
language | fr de it | 否 | 语言(默认:de) |
date | string | 否 | 整合日期(YYYY-MM-DD);默认使用最新日期 |
示例: 获取德语版民法典第 1 条。
get_article(rs_number="210", article="1", language="de")
→ Art. 1: Das Gesetz findet auf alle Rechtsfragen Anwendung...
get_law_text
获取某项法案或特定编、章的全文。这是用于阅读和分析原始立法文本的主要工具。
| Parameter | Type | Required | Description |
|---|---|---|---|
rs_number | string | Yes | RS 编号 |
section | string | No | 限定为某一编/章(例如 "Titre huitième") |
language | fr de it | No | 语言(默认:de) |
page | number | No | 分页结果的页码(默认:1) |
大型法案会自动分页(按条文边界拆分)。每条响应都会包含总页数。
**示例:**获取瑞士租赁法(CO,第 8 编)。
get_law_text(rs_number="220", section="Titre huitième", language="fr")
→ [Full text of tenancy provisions, art. 253 onwards]
list_amendments
列出某项法案的近期修订版本(汇编版本)。
| Parameter | Type | Required | Description |
|---|---|---|---|
rs_number | string | Yes | RS 编号 |
since | string | No | 起始日期,YYYY-MM-DD(默认:一年前) |
language | fr de it | No | 标题语言(默认:de) |
**示例:**查看 CO 的近期变更。
list_amendments(rs_number="220", since="2024-01-01")
→ 2026-01-01 — Version in force from 2026-01-01 (current)
2025-10-01 — Version in force from 2025-10-01 to 2025-12-31
...
工作原理
Claude ──MCP──> Fedlex Connector ──SPARQL──> fedlex.data.admin.ch
──HTTP───> fedlex.admin.ch/filestore/...
**元数据路径(SPARQL):**服务会查询 Fedlex 的 SPARQL 端点(JOLux 本体),将 RS 编号解析为内部 URI,查找最新汇编日期,发现 HTML 文件 URL,并列出修订历史。
**文本路径(HTML 文件存储):**服务确定要获取的 HTML 文件后,会从静态文件存储中检索文件,使用 Cheerio 解析 DOM,并提取所请求的条文、章节或全文。大型法案(例如包含 1,100 多条的 CO)会拆分到多个 HTML 文件中,服务会自动发现这些文件并拼接内容。
典型请求的数据流:
- Claude 调用
get_article(rs_number="210", article="3") - 服务查询 SPARQL:RS 210 → ConsolidationAbstract URI
- 服务查询 SPARQL:该 URI 的最新汇编日期
- 服务查询 SPARQL:该汇编对应的 HTML 文件存储 URL
- 服务获取 HTML、解析并提取第 3 条
- 服务将条文文本连同汇编日期和法律免责声明一起返回给 Claude
每条响应的页脚都会注明,只有由联邦总理府发布的官方汇编(RO/AS)具有法律效力。
开发
项目结构
src/
index.ts # Entry point: picks stdio or HTTP transport based on PORT env var
server.ts # MCP server factory: tool definitions and request handlers
types.ts # TypeScript interfaces, error types, constants
sparql.ts # SPARQL endpoint queries (metadata, RS resolution, amendments)
filestore.ts # HTML fetching, parsing, article/section extraction, pagination
build/ # Compiled JavaScript (generated by tsc)
Dockerfile # Container build for cloud deployment
脚本
| Command | Description |
|---|---|
npm run build | 将 TypeScript 编译到 ./build |
npm start | 运行 MCP 服务(stdio 模式) |
npm run start:http | 在本地以 HTTP 模式运行,端口为 3000 |
npm run dev | 监视模式(更改时自动重新编译) |
依赖项
| Package | Purpose |
|---|---|
@modelcontextprotocol/sdk | MCP 服务 SDK(工具注册、stdio 传输) |
cheerio | 用于提取立法文本的 HTML 解析 |
错误代码
服务会返回包含代码和可执行建议的结构化错误:
| 代码 | 含义 |
|---|---|
RS_NOT_FOUND | 在 SPARQL 图中未找到 RS 编号 |
ARTICLE_NOT_FOUND | 该法案中不存在此条款(会列出附近的 ID) |
SPARQL_UNAVAILABLE | SPARQL 端点已停机或返回了错误 |
FILESTORE_ERROR | 未找到 HTML 文件或获取失败 |
INVALID_INPUT | 缺少参数或参数格式错误 |
PARSE_ERROR | HTML 解析失败 |
已知限制
-
法案完整历史版本:
get_law_text只能获取当前生效的完整法案,不会返回过去的版本。如需历史文本,请使用支持date参数的get_article。 -
HTML 可用性: Fedlex 通常只为 2021 年及之后的汇编版本提供 HTML。较早版本只能在 Fedlex 平台上以 PDF 或 DOC 格式获取。如果所请求日期的 HTML 不可用,服务会返回明确错误并提供指引。
-
速率限制: SPARQL 端点和文件存储服务是瑞士政府的公共服务。为避免给服务造成负担,服务会将每个端点的请求速率限制在每秒 10 次。
-
章节筛选:
get_law_text中的section参数使用标题文本匹配,适用于常见章节名称,但可能无法匹配特殊标题。筛选失败时,会返回完整法案文本并附带说明。 -
语言覆盖范围: 支持法语(FR)、德语(DE)和意大利语(IT)。不支持罗曼什语。
-
范围: 仅涵盖《分类汇编》中的联邦法律。州法律、《联邦公报》和法院判决不在范围内。
许可证
MIT
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。