mcpField
F
Fedlex Connector

Fedlex Connector

远程服务
fedlex-connector.ch法律与政务7今天更新

关于 Fedlex Connector

Fedlex Connector 是面向法律研究与分析的 MCP 服务,可访问《联邦法汇编》中的瑞士联邦法律。它结合 SPARQL 元数据查询与官方 HTML 正文获取,支持德语、法语和意大利语。

主要功能

  1. 01按标题搜索现行法案
  2. 02获取条文和完整法律文本
  3. 03指定条文汇编日期
  4. 04查看修订历史
  5. 05分页返回长篇法律文本

适用场景

  1. 01按标题查找法案 RS 编号
  2. 02以指定语言阅读条文
  3. 03查看法案近期变更

MCP 相关

它向 MCP 客户端提供法律搜索、条文或完整法律文本获取及修订查询工具。元数据来自 Fedlex SPARQL,正文取自 HTML 文件库。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://mcp.fedlex-connector.ch/
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。

工具

4
参数类型必填说明
querystring是用于匹配法规标题的关键词(例如 'code civil'、'protection des données')
languageenum否结果语言(默认: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:

  1. 前往 claude.ai
  2. 点击侧边栏中的 Customize(Anpassen / Personnaliser / Personalizza)
  3. 点击 Connectors
  4. 点击 + → Add connector
  5. 点击 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)中搜索瑞士联邦立法标题。仅返回当前有效的法案。

参数类型必填说明
querystring是用于匹配法案标题的关键词
languagefr 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_numberstring是RS 编号(例如,民法典为 "210",债务法为 "220")
articlestring是条款编号(例如,"3"、"28a"、"260bis")
languagefr de it否语言(默认:de)
datestring否整合日期(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

获取某项法案或特定编、章的全文。这是用于阅读和分析原始立法文本的主要工具。

ParameterTypeRequiredDescription
rs_numberstringYesRS 编号
sectionstringNo限定为某一编/章(例如 "Titre huitième")
languagefr de itNo语言(默认:de)
pagenumberNo分页结果的页码(默认: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

列出某项法案的近期修订版本(汇编版本)。

ParameterTypeRequiredDescription
rs_numberstringYesRS 编号
sincestringNo起始日期,YYYY-MM-DD(默认:一年前)
languagefr de itNo标题语言(默认: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 文件中,服务会自动发现这些文件并拼接内容。

典型请求的数据流:

  1. Claude 调用 get_article(rs_number="210", article="3")
  2. 服务查询 SPARQL:RS 210 → ConsolidationAbstract URI
  3. 服务查询 SPARQL:该 URI 的最新汇编日期
  4. 服务查询 SPARQL:该汇编对应的 HTML 文件存储 URL
  5. 服务获取 HTML、解析并提取第 3 条
  6. 服务将条文文本连同汇编日期和法律免责声明一起返回给 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
脚本
CommandDescription
npm run build将 TypeScript 编译到 ./build
npm start运行 MCP 服务(stdio 模式)
npm run start:http在本地以 HTTP 模式运行,端口为 3000
npm run dev监视模式(更改时自动重新编译)
依赖项
PackagePurpose
@modelcontextprotocol/sdkMCP 服务 SDK(工具注册、stdio 传输)
cheerio用于提取立法文本的 HTML 解析
错误代码

服务会返回包含代码和可执行建议的结构化错误:

代码含义
RS_NOT_FOUND在 SPARQL 图中未找到 RS 编号
ARTICLE_NOT_FOUND该法案中不存在此条款(会列出附近的 ID)
SPARQL_UNAVAILABLESPARQL 端点已停机或返回了错误
FILESTORE_ERROR未找到 HTML 文件或获取失败
INVALID_INPUT缺少参数或参数格式错误
PARSE_ERRORHTML 解析失败

已知限制

  • 法案完整历史版本: get_law_text 只能获取当前生效的完整法案,不会返回过去的版本。如需历史文本,请使用支持 date 参数的 get_article。

  • HTML 可用性: Fedlex 通常只为 2021 年及之后的汇编版本提供 HTML。较早版本只能在 Fedlex 平台上以 PDF 或 DOC 格式获取。如果所请求日期的 HTML 不可用,服务会返回明确错误并提供指引。

  • 速率限制: SPARQL 端点和文件存储服务是瑞士政府的公共服务。为避免给服务造成负担,服务会将每个端点的请求速率限制在每秒 10 次。

  • 章节筛选: get_law_text 中的 section 参数使用标题文本匹配,适用于常见章节名称,但可能无法匹配特殊标题。筛选失败时,会返回完整法案文本并附带说明。

  • 语言覆盖范围: 支持法语(FR)、德语(DE)和意大利语(IT)。不支持罗曼什语。

  • 范围: 仅涵盖《分类汇编》中的联邦法律。州法律、《联邦公报》和法院判决不在范围内。


许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。