Skip to main content
Glama

my-eli-mcp

An MCP server for Laws of Malaysia Online (lom.agc.gov.my), the Attorney-General's Chambers' official portal for Malaysian federal legislation. It fetches and cites principal Acts, with a verifiable citation on every response.

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

Scope. This MVP covers principal Acts only, addressed by their numeric act coordinate (e.g. 883). No free-text search API was found on this portal during discovery; amendments and subsidiary legislation (P.U. (A)/(B) notices) are not yet covered. Every response carries a dataset_note.

Licence. lom.agc.gov.my legislation is official public information published by the Attorney-General's Chambers of Malaysia. This connector relays it with attribution and a source_url.

The tools

Tool

What it does

my_get_act

Metadata for a principal Act by its numeric act coordinate.

my_get_text

The full text of an Act, extracted from the official PDF.

my_coverage

Declare what this connector covers, when each family was captured, and - explicitly - what it does NOT cover. Every gap carries a fallback.

Every response carries the contract: eli_uri (Malaysia has no ELI - this is the durable lom.agc.gov.my act page URL, e.g. https://lom.agc.gov.my/act-detail.php?language=BI&act=883, see eli_note), human_readable_citation (derived from the official PDF's own filename, since the portal carries no separate title metadata), and source_url.

Related MCP server: sg-eli-mcp

Install

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

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

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

Configuration via env:

  • MY_ELI_BASE_URL - default https://lom.agc.gov.my

  • MY_ELI_CACHE_DIR - default ~/.matematic/cache/my-eli

  • MY_ELI_AUDIT_DIR - default ~/.matematic/audit

No API key. lom.agc.gov.my is keyless.

Configure (Claude Code / any MCP client)

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

Windows 11 with Smart App Control

Smart App Control blocks unsigned executables, which covers uvx.exe, pip.exe and the my-eli-mcp.exe launcher that pip writes at install time. The python.exe and py.exe from the python.org installer are signed by the Python Software Foundation, so running the module through the interpreter works:

python -m pip install my-eli-mcp
python -m my_eli_mcp

pip.exe is blocked for the same reason, so install with python -m pip, not pip install. If python is not on PATH, use the Windows launcher: py -3 -m my_eli_mcp.

{ "mcpServers": { "my-eli-mcp": { "command": "python", "args": ["-m", "my_eli_mcp"] } } }

Do not turn Smart App Control off to work around this - it cannot be re-enabled without reinstalling Windows.

Governance

  • Public data only - read-only against lom.agc.gov.my; no client data leaves the machine.

  • Audit log - every tool call appends one JSON line to ~/.matematic/audit/my-eli-mcp.jsonl.

  • Vendor-neutral - talks only to lom.agc.gov.my; 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 lom.agc.gov.my

Licence

Apache-2.0. © Matematic Solutions / Wieslaw Mazur.

Available Tools

3 tools
my_coverageA
Read-onlyIdempotent

Declare what this connector covers, how it is sourced, and what it does NOT cover.

Call this before telling a user that the law "does not contain" something, and whenever a search comes back empty: the absence may be a gap in this connector rather than in the law. Every gap carries a fallback saying where to look instead.

Returns: Coverage with families, an as-of note, and a non-empty list of known gaps.

Inputs: no named parameters. Returns: What this connector covers, how it is sourced, and what it does not cover.

my_get_actA
Read-onlyIdempotent

Fetch metadata for a Malaysian principal Act by its numeric act coordinate.

Inputs: act_number (required). Returns: Result of ``my_get_act`` - metadata only, no body text.

my_get_textB
Read-onlyIdempotent

Fetch the full text of a Malaysian principal Act (extracted from its official PDF).

Inputs: act_number (required). Returns: Result of ``my_get_text`` - the full text of an Act (extracted from its officia…

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.6/5.0

    Scored across 3 tools

    Disambiguation4/5

    The three tools are largely distinct: one fetches metadata, one fetches full text, and one declares coverage/gaps. The only potential confusion is between my_get_act and my_get_text, but their descriptions clearly separate metadata from full text.

    Naming Consistency3/5

    Two tools follow a get_<object> pattern (my_get_act, my_get_text), but my_coverage uses a noun instead of a verb, breaking the pattern. The my_ prefix is consistent, but the mixed verb/noun structure is a minor inconsistency.

    Tool Count4/5

    Three tools is on the lower end but reasonable for a narrowly scoped connector that serves act metadata, act text, and coverage declarations. It feels slightly thin but not inadequate for its stated purpose.

    Completeness3/5

    The connector covers fetching individual acts and declaring coverage gaps, but lacks obvious operations like listing all acts or searching across acts. The coverage tool helps mitigate the absence, but the surface remains somewhat incomplete for a legal research tool.

    Maintenance

    ActivityNo data
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      A
      quality
      B
      maintenance
      An MCP server that provides access to the Irish Statute Book, enabling retrieval of metadata and full enacted text for Irish acts and statutory instruments by year, number, and type, with verifiable ELI identifiers and citations.
      3
      93 PyPI
      1
      Apache 2.0
    • A
      license
      A
      quality
      B
      maintenance
      An MCP server for Singapore Statutes Online (SSO), the official portal for Singapore legislation. It browses, fetches, and cites Acts, with a verifiable citation on every response.
      4
      29 PyPI
      4
      Apache 2.0
    • A
      license
      A
      quality
      B
      maintenance
      MCP server for Australia's Federal Register of Legislation. Enables searching and fetching Commonwealth Acts with verifiable citations.
      3
      75 PyPI
      Apache 2.0
    • A
      license
      A
      quality
      B
      maintenance
      MCP server for searching and retrieving Pakistani federal statutes and Supreme Court judgments with structured citations, using static HuggingFace datasets.
      6
      33 PyPI
      Apache 2.0