Skip to main content

sg-eli-mcp

An MCP server for Singapore Statutes Online (SSO, sso.agc.gov.sg), the Attorney-General's Chambers' official portal for Singapore legislation. It browses, fetches, and cites Acts, with a verifiable citation on every response.

Part of the MateMatic eu-legal-mcp production line, extended into Asia alongside jp-eli-mcp. Same citation contract (a stable identifier + a human-readable citation + a source URL), adapted for a jurisdiction with no ELI and no public search API.

Scope. SSO's robots.txt disallows /search; discovery here is by browsing the current Acts listing (sg_list_acts, paginated), not by title or keyword query. Fetch a specific section (sg_get_provision) or the full text (sg_get_full_text, truncated for very large Acts). Every response carries a dataset_note.

Licence. SSO legislation is official public information published by the Singapore government. This connector relays it with attribution and a source_url, respects robots.txt (no /search calls), and does not cache more aggressively than a normal browser visit would.

The tools

Tool What it does
sg_list_acts Browse the current Acts, paginated (no keyword search - see Scope above).
sg_get_provision The text of one numbered section of an Act, by act_code and section number.
sg_get_full_text The full text of an Act (truncated at ~300,000 characters).

Every response carries the contract: eli_uri (Singapore has no ELI - this is the durable SSO act URL, e.g. https://sso.agc.gov.sg/Act/CoA1967, see eli_note), human_readable_citation (the Act title as SSO itself renders it, e.g. Companies Act 1967), and source_url.

Install

Not yet on PyPI - install from source until the first release ships:

git clone https://github.com/matematicsolutions/sg-eli-mcp
cd sg-eli-mcp
pip install -e .

Once released, this will be uvx sg-eli-mcp.

Configuration via env:

  • SG_ELI_BASE_URL - default https://sso.agc.gov.sg
  • SG_ELI_CACHE_DIR - default ~/.matematic/cache/sg-eli
  • SG_ELI_AUDIT_DIR - default ~/.matematic/audit

No API key. SSO is keyless.

Configure (Claude Code / any MCP client)

{
  "mcpServers": {
    "sg-eli-mcp": { "command": "sg-eli-mcp" }
  }
}

Governance

  • Public data only - read-only against SSO; no client data leaves the machine.
  • Robots-compliant - never calls /search (disallowed by SSO's robots.txt); discovery uses only the allowed /Browse listing.
  • Audit log - every tool call appends one JSON line to ~/.matematic/audit/sg-eli-mcp.jsonl.
  • Vendor-neutral - talks only to sso.agc.gov.sg; no LLM provider, no telemetry.
  • Verifiable citations - every response is independently checkable via source_url.

See CONSTITUTION.md and DISCOVERY.md.

Tests

pip install -e ".[dev]"
pytest tests/test_instructions_drift.py -v   # offline
pytest tests/test_smoke.py -v                # hits live SSO

Licence

Apache-2.0. © Matematic Solutions / Wieslaw Mazur.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sg_eli_mcp-0.2.0.tar.gz (22.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sg_eli_mcp-0.2.0-py3-none-any.whl (20.9 kB view details)

Uploaded Python 3

File details

Details for the file sg_eli_mcp-0.2.0.tar.gz.

File metadata

  • Download URL: sg_eli_mcp-0.2.0.tar.gz
  • Upload date:
  • Size: 22.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for sg_eli_mcp-0.2.0.tar.gz
Algorithm Hash digest
SHA256 bb5fdf980d631d311f05a0ea6d24bff2fca61ddb7044bc05e71f981c64a20824
MD5 089b3120ec1d1451480097caeba19e32
BLAKE2b-256 fcf7e2e93dea97766802b712a7d11527af7f75e4f4ac731f724689cc2b713b96

See more details on using hashes here.

File details

Details for the file sg_eli_mcp-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: sg_eli_mcp-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 20.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for sg_eli_mcp-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 3d983678cccca924770505f8d093d25cedfc46e5f700cff43a3d3375d6149807
MD5 37d8a25f05cf5e86a6ee7d2bd6851c5e
BLAKE2b-256 5afb1458e70975325212c43cb159780f1ddec550d00587f3a9583757f465686d

See more details on using hashes here.

Release history Release notifications | RSS feed

0.3.3

2 files

0.3.2

2 files

0.3.1

2 files

0.3.0

2 files

0.2.2

2 files

0.2.1

2 files

This release

0.2.0 This release

2 files

0.1.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page