关于 Pasal.id - Indonesian Law
Pasal.id 是印度尼西亚法规的开放检索平台,提供全文搜索、条文(Pasal)读取、修订状态查询等功能,面向需要可靠法律引用的用户与 AI 助手。其 MCP 服务让 Claude 基于实际法规文本作答。
主要功能
- 01覆盖 67,000+ 法规的全文检索
- 02按编号读取具体条文(Pasal)
- 03查询法规是否有效、修订与废止链
- 04按类型与年份浏览法规
- 05印尼语词干处理的检索
适用场景
- 01查询印尼劳动法等法规的具体条文并引用
- 02核实某部法律是否仍然有效
- 03让 AI 助手基于真实法规文本回答印尼法律问题
MCP 相关
Pasal.id 的 MCP 服务向 MCP 客户端提供 search_laws、get_pasal、get_law_status 和 list_laws 四个工具,返回带准确引用的法规数据。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
首个面向印度尼西亚法律的开放式 AI 原生平台
演示视频 · 网站 · 连接到 Claude · REST API · AGPL-3.0 许可证
问题
2.8 亿印度尼西亚人没有实用的途径查阅本国法律。官方法律数据库(peraturan.go.id)只提供 PDF 下载:没有搜索、没有结构化内容,也没有 API。询问 AI 有关印度尼西亚法律的问题时,得到的却是虚构的条文和错误的引文,因为没有可靠的数据源可供依据。
立即试用
只需一条命令,即可将 Claude 连接到真实的印度尼西亚法律数据:
claude mcp add --transport http pasal-id https://pasal-mcp-server-production.up.railway.app/mcp
然后提问:
“Apa saja hak pekerja kontrak menurut UU Ketenagakerjaan?”(《劳动法》规定的合同工有哪些权利?) “Jelaskan pasal tentang perlindungan data pribadi”(解释有关个人数据保护的条文) “Apakah UU Perkawinan 1974 masih berlaku?”(1974 年《婚姻法》目前仍然有效吗?)
Claude 会搜索超过 40,000 部法规和 937,000 条结构化条文,引用具体 Pasal(条文),并提供有据可依的回答,不会产生幻觉。
也可以访问网页应用 pasal.id。
我们构建的内容
| 功能 | 说明 | |
|---|---|---|
| 搜索 | 法律全文搜索 | 印度尼西亚语词干提取器 + 三层回退机制,覆盖超过 937,000 条条文 |
| 阅读 | 结构化阅读器 | 三栏法律阅读器,包含目录、修订时间线和验证徽章 |
| AI | MCP 服务 | 提供 4 种有依据的工具,让 Claude 访问实际法规并获取精确引文 |
| API | REST API | 提供用于搜索、浏览和获取条文的公开 JSON 端点 |
| 纠错 | 众包纠错 | 任何人都可以提交更正;AI 会在应用前进行验证 |
| 验证 | AI 验证 Agent | Opus 4.6 视觉模型将解析出的文本与原始 PDF 图像进行比对 |
| 追踪 | 修订关系链 | 完整追踪法规关系:修订、废止和交叉引用 |
| 全球化 | 双语界面 | 通过 next-intl 提供印度尼西亚语和英语界面(法律内容仍为印度尼西亚语) |
Opus 4.6 如何驱动平台
从 Next.js 前端、MCP 服务到数据管道,整个代码库都是在黑客松期间通过 Claude Code 使用 Claude Opus 4.6 构建的。但 Opus 4.6 不只是开发工具,它也嵌入了产品本身,通过一个自我改进的纠错飞轮持续提升平台的准确性:
┌───────────────────────────────┐
│ Users submit corrections │
│ via pasal.id web app │
└──────────────┬────────────────┘
▼
┌───────────────────────────────┐
│ Opus 4.6 Verification Agent │
│ Uses VISION to compare text │
│ against original PDF images │
│ → accept / reject / correct │
└──────┬───────────────┬────────┘
│ │
≥85% conf │ │ parser_feedback
auto-apply │ │ from each review
▼ ▼
┌──────────┐ ┌───────────────────────┐
│ Database │ │ Opus 4.6 reads the │
│ updated │ │ parser source code │
│ via safe │ │ + aggregated feedback │
│ revision │ │ → creates GitHub │
│ function │ │ issues with fixes │
└──────────┘ └───────────────────────┘
1. MCP 服务:可靠的法律访问
Claude 可以使用 4 种工具来搜索真实法规、获取具体条文、检查修订状态并浏览法规。所有工具都返回带有精确引文的真实数据,而非生成的文本。
2. 多模态验证 Agent
当用户提交更正时,Opus 4.6 会使用视觉能力,将解析后的文本与原始 PDF 页面图像进行比较。它会逐字读取实际的 PDF,并根据置信度分数决定接受、拒绝或更正。(scripts/agent/opus_verify.py)
3. 自我改进反馈循环
每次验证都会生成 parser_feedback,记录解析器出错的原因。Opus 4.6 会汇总这些反馈、从 GitHub 获取解析器源代码、分析系统性错误,并创建包含具体代码修复方案的 GitHub 问题。AI 会改进为其提供数据的整个流程。(scripts/agent/parser_improver.py)
4. 人机协同安全机制
置信度较高(≥85%)的更正会通过事务安全的修订函数自动应用。低于此阈值的更正会进入队列,等待管理员审核。每次变更都会记录在仅追加的审计跟踪中。不会有任何内容被静默覆盖。
5. 将 Claude Code 用作开发工具
整个平台都是在 Claude Code 的协助下构建的,开发过程遵循了分布在 4 个目录(根目录、Web 应用、MCP 服务和数据管道)中的 489 行 CLAUDE.md 规范,其中记录了架构决策、编码约定、数据库不变量和领域知识。
架构
┌──────────────────────────────────────┐
│ Supabase (PostgreSQL) │
│ 40,143 regulations · 937,155 Pasal │
│ 49 migrations · FTS · RLS │
└─────────┬──────────────┬─────────────┘
│ │
┌────────────────┘ └────────────────┐
▼ ▼
┌─────────────────────┐ ┌───────────────────────┐
│ MCP Server (Py) │ │ Next.js 16 Web App │
│ FastMCP · Railway │ │ Vercel · pasal.id │
│ │ │ │
│ · search_laws │ │ · /search │
│ · get_pasal │ │ · /jelajahi │
│ · get_law_status │ │ · /peraturan/[type] │
│ · list_laws │ │ · /connect · /api │
└─────────┬───────────┘ └───────────────────────┘
│
▼ ┌───────────────────────┐
┌─────────────────────┐ │ Opus 4.6 Correction │
│ Claude / AI │ │ Agent · Railway │
│ Grounded answers │ │ │
│ with citations │ │ Verify · Auto-apply │
└─────────────────────┘ │ Parser improvement │
└───────────────────────┘
经久耐用:技术深度
这不是一个周末匆忙拼凑出来的项目。关键工程决策包括:
- 49 次 SQL 迁移,通过迭代演进模式,而非一次性导入
- 带身份快速通道的 3 层搜索:正则表达式检测法规 ID(评分 1000)→ 法律文件全文搜索(评分 1-15)→ 内容全文搜索,并带有 3 级回退(
websearch_to_tsquery→plainto_tsquery→ILIKE);候选 CTE 数量上限可防止 O(N) 摘要生成 - 仅追加的修订审计跟踪:绝不会直接更新内容;所有变更都通过单个事务中的
apply_revision()SQL 函数完成(插入修订记录 + 更新节点 + 更新建议) - 事务安全的内容变更:任何步骤失败,所有操作都会回滚
- 所有表均启用行级安全性,法律数据设有公开读取策略
- 输入清理:执行 tsquery 前移除
[^a-zA-Z0-9 ],以防止注入 - 按需重新验证的 ISR:用于静态生成,并在内容变更时即时更新
- 原子化任务认领:
FOR UPDATE SKIP LOCKED可防止抓取管道重复处理任务 - 11 种法规类型:涵盖 1945 年至 2026 年的法律,数据来自官方政府来源
MCP 工具
| 工具 | 描述 |
|---|---|
search_laws | 对所有法律条款进行全文关键词搜索,并使用印尼语词干提取 |
get_pasal | 按法律名称和编号获取特定条款(Pasal)的准确文本 |
get_law_status | 检查法律是否有效、已修订或已废止,并显示完整修订链 |
list_laws | 按类型、年份和状态筛选并浏览可用法规 |
技术栈
| 层 | 技术 |
|---|---|
| 前端 | Next.js 16(App Router)、React 19、TypeScript、Tailwind v4、shadcn/ui |
| 数据库 | Supabase(PostgreSQL 全文搜索,使用 indonesian 词干提取器 + pg_trgm) |
| MCP 服务 | Python + FastMCP,部署于 Railway |
| 更正 Agent | Claude Opus 4.6(视觉 + 代码分析),部署于 Railway |
| 数据管道 | Python、httpx、PyMuPDF、BeautifulSoup |
| 搜索 | 3 层:身份快速通道 → 法律文件全文搜索 → 带 ILIKE 回退的内容全文搜索 |
| 国际化 | next-intl,支持印尼语(默认)+ 英语 |
法律覆盖范围
目前涵盖 40,143 项法规,共 11 种类型,包括:
- UU(Undang-Undang)· 国会通过的主要法律
- PP(Peraturan Pemerintah)· 政府法规
- Perpres(Peraturan Presiden)· 总统法规
- UUD · 1945 年宪法
- Permen、Perda 等来自官方政府来源的法规
Development
# Frontend
cd apps/web && npm install && npm run dev
# MCP Server
cd apps/mcp-server && pip install -r requirements.txt && python server.py
# Correction Agent
cd scripts && pip install -r requirements.txt
python -m scripts.agent.run_correction_agent
Built with Claude Opus 4.6 for the Claude Code Hackathon
AGPL-3.0
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。