cl-eli-mcp
The cl-eli-mcp server lets you search and retrieve metadata for Chilean legislation (laws, decrees, resolutions) from the BCN (Biblioteca del Congreso Nacional de Chile) Linked Open Data SPARQL endpoint.
Tools available:
cl_search_norms: Full-text search over Chilean legislation titles (e.g.,"ley de tránsito"), with a configurable result limit (default: 20). Returns matching norms with title, number, dates, issuing body, and a human-readable citation.cl_get_norm: Fetch detailed metadata for a specific norm by providing its BCN resource URI (e.g.,http://datos.bcn.cl/recurso/cl/ley/.../18290). Returns the same metadata fields as the search tool.
Each result includes:
lex_uri— the BCN resource URIsource_url— a content-negotiated URI linking to the human-readable BCN web pagehuman_readable_citation— e.g.,"Ley 18290, de 1984-01-23"
Note: This server provides metadata only (title, number, dates, issuing body) — not the full operative text of the legislation.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@cl-eli-mcpsearch for laws about education"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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 |
| Full-text search over norm titles |
| Full detail for one norm by its BCN resource URI |
| 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-mcpWindows 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_mcppip.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 |
|
|
|
|
|
|
License
Apache-2.0 (code). BCN Linked Open Data is a public government dataset (see SOURCES.md).
Available Tools
3 toolscl_coverageARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| status | No | |
| families | No | |
| as_of_note | Yes | States what the dates mean, and what they do not promise. |
| known_gaps | No | Never empty. An empty list would mean 'not checked', not 'no gaps'. |
TDQS
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.
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.
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.
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.
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.
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_normARead-onlyIdempotent
Fetch full detail for one Chilean norm by its BCN resource URI.
| Name | Required | Description | Default |
|---|---|---|---|
| uri | Yes | e.g. ``"http://datos.bcn.cl/recurso/cl/ley/ministerio-de-justicia/1984-02-07/18290"``. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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_normsARead-onlyIdempotent
Full-text search over Chilean legislation titles.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | max results (default 20). | |
| query | Yes | free text, e.g. ``"ley de transito"``. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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 tool update
v0.3.3- Added
cl_coverage
2 tool updates
v0.1.0- First observed
cl_get_norm - First observed
cl_search_norms
TDQS
Scored across 3 tools
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.
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.
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.
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
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
MCP server for Brazilian Federal Senate open data (legislative, administrative, e-Cidadania).
MCP for CanLII: Canadian case law and legislation metadata (federal, provincial, territorial).
Hosted MCP server for finding authoritative primary data sources and official portals.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceMCP server that enables searching and retrieving judicial decisions from the Uruguayan National Public Jurisprudence Database (BJN).-
- AlicenseAqualityCmaintenanceMCP server that connects AI to the Chilean legislation system (Ley Chile) for retrieving legal norms, citations, and intertemporal analysis.282MIT
- AlicenseAqualityCmaintenanceMCP server providing access to Canadian legal information metadata (case law and legislation) from CanLII.752MIT
- AlicenseAqualityAmaintenanceMCP server for the Brazilian Chamber of Deputies open-data API, enabling search and retrieval of federal legislative bills and their status.151Apache 2.0
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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