/ Directory / Playground / pasal
● Community ilhamfp ⚡ Instant

pasal

by ilhamfp · ilhamfp/pasal

Ask Claude about Indonesian law and get answers grounded in 40k+ regulations and 937k+ structured articles from pasal.id — with citations.

Pasal.id is the first open, AI-native Indonesian legal platform. This MCP exposes 4 tools for law search, article retrieval, status checks, and browsing — all sourced from official Indonesian government publications from 1945 to 2026. No auth required for read access.

Why use it

Key features

Live Demo

What it looks like in practice

pasal.replay ▶ ready
0/0

Install

Pick your client

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "pasal": {
      "command": "npx",
      "args": [
        "-y",
        "pasal"
      ],
      "_inferred": true
    }
  }
}

Open Claude Desktop → Settings → Developer → Edit Config. Restart after saving.

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "pasal": {
      "command": "npx",
      "args": [
        "-y",
        "pasal"
      ],
      "_inferred": true
    }
  }
}

Cursor uses the same mcpServers schema as Claude Desktop. Project config wins over global.

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "pasal": {
      "command": "npx",
      "args": [
        "-y",
        "pasal"
      ],
      "_inferred": true
    }
  }
}

Click the MCP Servers icon in the Cline sidebar, then "Edit Configuration".

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "pasal": {
      "command": "npx",
      "args": [
        "-y",
        "pasal"
      ],
      "_inferred": true
    }
  }
}

Same shape as Claude Desktop. Restart Windsurf to pick up changes.

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "pasal",
      "command": "npx",
      "args": [
        "-y",
        "pasal"
      ]
    }
  ]
}

Continue uses an array of server objects rather than a map.

~/.config/zed/settings.json
{
  "context_servers": {
    "pasal": {
      "command": {
        "path": "npx",
        "args": [
          "-y",
          "pasal"
        ]
      }
    }
  }
}

Add to context_servers. Zed hot-reloads on save.

claude mcp add pasal -- npx -y pasal

One-liner. Verify with claude mcp list. Remove with claude mcp remove.

Use Cases

Real-world ways to use pasal

Research an Indonesian legal question with citations

👤 Lawyers, law students, compliance folks ⏱ ~15 min intermediate

When to use: You're answering a specific Indonesian legal question and need to cite actual regulation text.

Flow
  1. Search
    Cari regulasi tentang perlindungan data pribadi. Berikan UU/PP yang paling relevan.✓ Copied
    → List of matching laws with numbers and years
  2. Pull articles
    Ambil pasal 26 dari UU 27/2022. Jelaskan konteksnya.✓ Copied
    → Article text + explanation
  3. Verify status
    Apakah UU ini masih berlaku? Ada amendemen?✓ Copied
    → Current status + amendment chain

Outcome: Grounded answer with citations to official text.

Pitfalls
  • LLM translates Indonesian regulatory terms loosely — For legal work, always reference original Indonesian + ask for literal translation
Combine with: notion

Check whether a business activity needs a specific permit

👤 Founders, compliance officers ⏱ ~30 min intermediate

When to use: You're setting up or modifying a business in Indonesia and unsure of regulatory requirements.

Flow
  1. Scope the question
    I'm running a fintech app offering peer-to-peer lending in Indonesia. Which regulations are most relevant?✓ Copied
    → List of POJK / UU with scopes
  2. Deep dive
    For each, fetch the specific article requiring license/registration. Quote the text.✓ Copied
    → Quoted obligations

Outcome: Initial regulatory map — don't skip a lawyer for final advice.

Pitfalls
  • LLM legal advice is not advice — This is research; decisions need licensed counsel

Track whether an old regulation has been superseded

👤 Researchers citing Indonesian law ⏱ ~5 min beginner

When to use: You have a citation to a 2010 PP and want to know if it's still current.

Flow
  1. Check status
    Get status of PP 23/2010. Is it still in force? What amended or replaced it?✓ Copied
    → Status + chain to current

Outcome: Safe citation — not a dead law.

Combinations

Pair with other MCPs for X10 leverage

pasal + notion

Build a compliance knowledge base

For each regulation in my compliance scope, fetch articles + status, create a Notion page per regulation.✓ Copied

Tools

What this MCP exposes

ToolInputsWhen to callCost
search_laws query: str (ID), limit? Discover relevant laws by keyword free
get_pasal law_id or name, pasal_number Retrieve a specific article free
get_law_status law_id or name Check if still in force free
list_laws type?, year?, status? Browse by category free

Cost & Limits

What this costs to run

API quota
Public read — no stated limits; be polite
Tokens per call
Full articles ~500-5000 tokens each
Monetary
Free
Tip
Search then fetch specific articles; don't try to list all 40k regulations.

Security

Permissions, secrets, blast radius

Credential storage: None
Data egress: Queries go to pasal-mcp-server-production.up.railway.app

Troubleshooting

Common errors and fixes

No results for a query you expect to match

Indonesian stemming — try root words (e.g. 'lindung' not 'perlindungan'). Also try English synonym.

Pasal number not found in a law

Articles may have been renumbered across amendments. Check get_law_status first.

MCP connection drops

Remote HTTP server — check your network / Railway status.

Alternatives

pasal vs others

AlternativeWhen to use it insteadTradeoff
peraturan.go.id (official government portal)You want primary source, UI-firstNo LLM integration; manual search
Hukumonline (commercial DB)You need case law + commentarySubscription; broader scope

More

Resources

📖 Read the official README on GitHub

🐙 Browse open issues

🔍 Browse all 400+ MCP servers and Skills