内容
# 哥伦比亚法规 — MCP 服务器
[](https://www.npmjs.com/package/normativa-colombia-mcp)
[](LICENSE)
[](https://modelcontextprotocol.io)
通过任何支持 [Model Context Protocol](https://modelcontextprotocol.io) 的 AI 助手查询哥伦比亚的法规和司法解释,无需打开浏览器或填写表单。
连接两个官方来源:
- **国家行政部门职能公共管理规范** - 法律、法令、决议、通函和公共部门的概念,主题查询和解释器说明每项规范为何适用于某个主题。
- **宪法法院判决** - 49,000 项判决和裁决,每天更新。
这是一个标准的 MCP 服务器,通过 **stdio** 通信,适用于 Claude Desktop、Claude Code、Cursor、VS Code、Windsurf、Zed、Continue、LM Studio,以及使用 MCP SDK 的自定义代理。
---
## 安装
### 选项 A — Claude Desktop,一键安装
如果您使用 Claude Desktop,这是最简单的安装方式,不需要 Node.js 或配置文件。
1. 从 [Releases](https://github.com/Angelthebestone/Normativa-colombiana-MCP/releases) 下载 `normativa-colombia.mcpb`。
2. 打开 Claude Desktop → **设置 → 扩展**。
3. 将文件拖到该窗口并确认。
Claude Desktop 自带 Node.js,因此无需额外安装。
### 选项 B — 其他 MCP 客户端,从 npm 安装
发布为 [`normativa-colombia-mcp`](https://www.npmjs.com/package/normativa-colombia-mcp)。需要 **Node 18 或更高版本**。无需克隆或编译:软件包中已包含构建好的服务器和主题索引,无需额外依赖。
```bash
# 像通常在 MCP 客户端中一样安装,无需额外操作
npx -y normativa-colombia-mcp
# 或在项目中安装
npm install normativa-colombia-mcp
# 或全局安装
npm install -g normativa-colombia-mcp
```
大多数客户端都支持此格式:
```json
{
"mcpServers": {
"normativa-colombia": {
"command": "npx",
"args": ["-y", "normativa-colombia-mcp"]
}
}
}
```
| 客户端 | 配置文件位置 |
| --- | --- |
| **Claude Desktop** (手动) | `claude_desktop_config.json` - 在设置 → 开发者 → 编辑配置 |
| **Cursor** | `.cursor/mcp.json` 在项目中,或 `~/.cursor/mcp.json` 在全局 |
| **Windsurf** | `~/.codeium/windsurf/mcp_config.json` |
| **Continue** | 其配置中的 `mcpServers` 块 |
| **LM Studio** | 程序 → 安装 → 编辑 mcp.json |
| **自定义代理** | 作为 MCP SDK 中的 `StdioServerParameters`,在 Python 或 TypeScript 中 |
**Claude Code** 不使用配置文件;通过命令行注册:
```bash
claude mcp add normativa-colombia -- npx -y normativa-colombia-mcp
```
**VS Code** 在 `.mcp.json` 或用户配置中使用 `servers` 键代替 `mcpServers`:
```json
{
"servers": {
"normativa-colombia": {
"type": "stdio",
"command": "npx",
"args": ["-y", "normativa-colombia-mcp"]
}
}
}
```
如果您使用 `npm install -g` 安装,则命令为纯 `normativa-colombia-mcp`,无需参数。
如果您的客户端未在列表中,请查找其声明的 stdio MCP 服务器:命令和参数始终相同。
#### 验证安装
```bash
echo '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"prueba","version":"1"}}}' \
| npx -y normativa-colombia-mcp
```
应返回一个包含 `"name":"normativa-colombia"` 和 `instructions` 字段的 JSON。
### 选项 C — 从源代码构建
用于开发或自定义版本。需要 **Node 22 或更高版本**:
```bash
git clone https://github.com/Angelthebestone/Normativa-colombiana-MCP.git
cd Normativa-colombiana-MCP
npm install
npm run generar-indice # 主题索引,~20 MB 下载,一次
npm run build # 生成 server/index.js
```
然后将客户端指向 `node /absolute/path/to/Normativa-colombiana-MCP/server/index.js`,使用上面的相同格式。
### 客户端接收的数据
连接时,服务器提供 **11 种工具**、**4 种提示**及其**使用说明**:每种工具对应哪种类型的问题,必须引用来源,永不声称某项规范有效。支持 `instructions` 字段的客户端无需配置即可利用此功能。
## 可以询问的问题
- 「2008 年第 1221 号法律关于连接辅助的规定是什么?」
- 「哪些规范监管公共部门的远程工作,为什么适用?」
- 「第 1083 号法令关于任命的规定是什么?」
- 「寻找宪法法院最近关于加强劳动稳定性的判决。」
- 「2004 年第 909 号法律是否仍然有效?」
服务器还包括四个现成的提示,支持这些提示的客户端会将其显示为命令:*哪些规范适用于某个主题?*、*该规范是否仍然有效?*、*用简单语言解释该规范* 和 *比较两个规范*。
## 使用前须知
**这不是法律咨询。** 这是一个搜索引擎,使 AI 助手能够访问官方来源。始终通过随附的链接验证响应。
**有效性不是门户网站的数据。** 既没有管理器也没有报告有一个字段表示「此规范已被废除」:废除写入文本中。服务器在检测到「废除」或「由... 修改」标记时会发出警告,但不能保证某篇文章仍然有效。例如,第 1083 号法令(2015 年)包含 155 个修改注释。
**管理器不搜索完整文本**,只搜索主题摘要,并用 OR 连接术语。其单词索引也很差:「远程工作」只与门户网站中的 3 个文档匹配,没有一个是归类到该子主题下的 43 个概念。服务器通过三种方式进行补偿:在查询前删除空单词,如果按单词搜索效果不佳,则重试官方子主题,如果您要求具体规范,则在计算机上搜索。
**查询率。** 服务器每秒最多向每个门户网站发出一个请求,突发请求最多为 5 个,同一站点永不并发。如果门户网站响应查询限制,则等待其指示的时间,而不是坚持不懈。这些是公共服务,如果自动助手比浏览人员更注重它们,则更好。
**隐私。** 每次查询都会发送到哥伦比亚国家服务器,它们会记录请求和您的 IP 地址,就像您浏览网站一样。不会将任何内容发送到其他任何服务器,也不会收集分析数据或您的信息。如果您要咨询自己的事务,请注意这一点。
**打包数据。** 包含一个主题索引(12,054 个子主题),以便立即响应并在门户网站关闭时继续服务。该索引有日期:如果超过三个月,服务器会通知您。
## 开发者
```bash
npm install
npm run check # typecheck + lint + 30 库测试 + 18 端到端测试
npm run generar-indice # 重新生成数据/索引主题.json (~20 MB 下载)
npm run pack # 生成 normativa-colombia.mcpb
```
`数据/索引主题.json` 由于其大小而未被版本控制:在打包前生成。
测试查询官方门户网站。`SIN_RED=1 npm test` 只运行纯逻辑,有助于快速迭代或无连接测试。
没有持续集成:`npm run check` 在发布前手动运行。最好经常运行它,即使代码没有更改,因为它可以检测门户网站是否更改了其 HTML。
结构:
| 文件 | 责任 |
| --- | --- |
| `src/index.ts` | MCP 工具和提示 |
| `src/parse.ts` | HTML 提取和清理,切片,防破坏检查 |
| `src/citas.ts` | 哥伦比亚法规引用解析器 |
| `src/http.ts` | 具有完整 TLS 链的 HTTP 客户端 |
| `src/fuentes/gestor.ts` | 规范管理器(HTML) |
| `src/fuentes/corte.ts` | 宪法法院报告(JSON) |
| `test/smoke.ts` | 针对真实来源的库测试 |
| `test/e2e.ts` | 启动服务器并通过 stdio 与其通信,如同任何 MCP 客户端 |
模型接收的使用说明位于 `INSTRUCCIONES` 中,在 `src/index.ts` 中:这是选择工具的唯一机制,任何测试都无法验证。
给修改者的两点说明:
- **门户网站发送不完整的 TLS 链。** 其证书由「Sectigo RSA Organization Validation」颁发,但服务器发送「Domain Validation」的中间证书。`curl` 容忍这一点,因为其捆绑包已经包含该证书;Node.js 不容忍。`src/ca.ts` 包含正确的中间证书,以完成链 **而无需禁用验证**。不要将其更改为 `rejectUnauthorized: false`。
- **金丝雀。** 如果门户网站的 HTML 更改,解析器会抛出 `CanarioError` 而不是返回空列表。这是故意的:空列表会被误读为「该规范不存在」,在法律事务中,这种混淆是最糟糕的错误。
## 贡献
指南位于 [CONTRIBUTING.md](CONTRIBUTING.md),有四条不可协商的规则:金丝雀从不默默返回空值,不会禁用 TLS 验证,不会增加门户网站的查询率,任何响应都不会声称有效。
如果服务器给出了错误的响应,这是最有价值的报告:有一个 [问题模板](https://github.com/Angelthebestone/Normativa-colombiana-MCP/issues/new/choose) 用于此目的。
要报告漏洞,请参阅 [SECURITY.md](SECURITY.md);不要公开提出问题。
## 许可证
代码根据 MIT 许可证(参见 [LICENSE](LICENSE))授权。关于规范内容和门户网站的自动访问,请参阅 [NOTICE.md](NOTICE.md)。