Skip to main content
Glama

cl-eli-mcp

MCP server for Chilean legislation via the BCN (Biblioteca del Congreso Nacional de Chile) Linked Open Data SPARQL endpoint. Searches and fetches laws, decrees, and resolutions by their persistent resource URI.

What this is not

BCN's resource URIs are not formally called ELI, but they carry the same idea: jurisdiction, type, issuing body, date, number, all in one dereferenceable URI. This connector returns metadata (title, number, dates, issuing body) - not the operative text of the law. Following source_url (the same URI, content-negotiated) takes you to the human-readable page.

Related MCP server: LeyChile MCP

Tools

Tool

Purpose

cl_search_norms

Full-text search over norm titles

cl_get_norm

Full detail for one norm by its BCN resource URI

cl_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 lex_uri and source_url (both the BCN resource URI) and human_readable_citation (e.g. "Ley 18290, de 1984-01-23").

Install

pip install cl-eli-mcp

Windows 11 with Smart App Control

Smart App Control blocks unsigned executables, which covers uvx.exe, pip.exe and the cl-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 cl-eli-mcp
python -m cl_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 cl_eli_mcp.

{ "mcpServers": { "cl-eli-mcp": { "command": "python", "args": ["-m", "cl_eli_mcp"] } } }

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

Configuration

Env var

Default

CL_ELI_CACHE_DIR

~/.matematic/cache/cl-eli

CL_ELI_AUDIT_DIR

~/.matematic/audit

CL_ELI_BASE_URL

https://datos.bcn.cl/sparql

License

Apache-2.0 (code). BCN Linked Open Data is a public government dataset (see SOURCES.md).

Available Tools

3 tools
cl_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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
statusNo
familiesNo
as_of_noteYesStates what the dates mean, and what they do not promise.
known_gapsNoNever empty. An empty list would mean 'not checked', not 'no gaps'.

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already include openWorldHint and readOnlyHint. The description adds meaningful behavioral context: it warns that absence may reflect a connector gap rather than the law, and states that every gap carries a fallback. It also discloses return details like an as-of note and a non-empty gap list, going beyond the annotation metadata.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded, starting with the core purpose, then giving a clear usage trigger, and ending with a Returns summary. Every sentence serves a distinct purpose with no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a no-parameter tool with rich annotations and an output schema, the description fully covers when to use it, what it returns, and how to interpret results. It also explains fallback behavior, making it complete for an agent to decide when and how to invoke it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

This tool has zero parameters and an empty input schema, so there is nothing to document. The baseline of 4 applies because parameter documentation is inherently complete; no additional explanation is needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with 'Declare what this connector covers, how it is sourced, and what it does NOT cover' — a specific verb and resource that clearly distinguishes it from search/get tools. It also emphasizes the gap-reporting nature, which is a distinct purpose from querying norms.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly instructs when to call: before telling a user that the law does not contain something, and whenever a search comes back empty. This gives a concrete trigger and even explains why it should precede negative claims. The context of sibling tools further reinforces appropriate usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cl_get_normA
Read-onlyIdempotent

Fetch full detail for one Chilean norm by its BCN resource URI.

ParametersJSON Schema
NameRequiredDescriptionDefault
uriYese.g. ``"http://datos.bcn.cl/recurso/cl/ley/ministerio-de-justicia/1984-02-07/18290"``.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false, etc. The description adds 'Fetch full detail' which is consistent but does not provide additional behavioral information such as error handling, rate limits, or authentication needs. With annotations covering the safety profile, the description adds minimal extra transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence that immediately conveys the tool's purpose. It is front-loaded with the key action and resource, with no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With one parameter, clear annotations, and an output schema (as indicated by context), the description is adequate. It could be enhanced by noting the output schema covers the full detail, but it is not necessary. The description is complete for this simple tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents the parameter. The tool description mentions 'by its BCN resource URI' which mirrors the schema's description. No new semantic information is added beyond what the schema provides. Baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states it fetches full detail of one Chilean norm by its BCN resource URI. The verb is specific, and the distinction from sibling tool 'cl_search_norms' is implied by focusing on a single norm by URI rather than searching.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied: use this when you have a specific URI. However, no explicit guidance is given about when not to use it or when to prefer the sibling tool 'cl_search_norms'. The description lacks explicit when/when-not alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cl_search_normsA
Read-onlyIdempotent

Full-text search over Chilean legislation titles.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNomax results (default 20).
queryYesfree text, e.g. ``"ley de transito"``.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=true, idempotentHint=true, and destructiveHint=false, which convey safety and idempotency. However, the description does not add any behavioral details beyond 'full-text search', such as pagination, rate limits, or search scope. Minimal added value.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence of five words, with zero waste. It is front-loaded with the key verb 'search', making the purpose immediately clear. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity, good annotations, and presence of an output schema, the description is largely complete. It clearly specifies the resource (Chilean legislation titles) and operation (full-text search). Minor missing details like search behavior for special characters or case sensitivity are not critical for a basic search tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the input schema already documents both parameters (query and limit) with descriptions. The tool description does not provide any additional semantic information beyond what is in the schema, meeting the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'search' and the resource 'Chilean legislation titles', making the tool's purpose immediately obvious. It distinguishes itself from the sibling tool cl_get_norm, which presumably retrieves a specific norm.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implicitly guides usage: use this tool for full-text search over titles, not for retrieving specific norms. The sibling tool cl_get_norm provides an alternative, and the context signals give enough information to infer when to use each.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 1 tool updatev0.3.3
    • Addedcl_coverage
  2. 2 tool updatesv0.1.0
    • First observedcl_get_norm
    • First observedcl_search_norms

TDQS

A4.2/5.0

Scored across 3 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: search for norms, retrieve a specific norm by URI, and declare coverage gaps. There is no meaningful overlap; get_norm requires a URI from search or elsewhere, while coverage is a meta-tool.

Naming Consistency4/5

The naming uses a consistent 'cl_' prefix and most tools follow a verb_noun pattern (search_norms, get_norm). However, 'cl_coverage' is a noun phrase rather than verb_noun, which is a minor deviation from the otherwise consistent style.

Tool Count5/5

Three tools is an appropriate, focused set for a Chilean legal norms connector. Each tool serves a necessary function: searching, retrieving full details, and self-documenting gaps. No tool feels redundant or missing.

Completeness5/5

The tool surface covers the core workflow of discovering and reading Chilean norms (search + get). The coverage tool proactively addresses a key gap by telling users when absence might be a connector limitation, making the set complete for its read-only purpose.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    MCP server that enables searching and retrieving judicial decisions from the Uruguayan National Public Jurisprudence Database (BJN).
    -
  • A
    license
    A
    quality
    A
    maintenance
    MCP server for the Brazilian Chamber of Deputies open-data API, enabling search and retrieval of federal legislative bills and their status.
    15
    1
    Apache 2.0

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/matematicsolutions/cl-eli-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server