al-legal-mcp
Click on "Deploy 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., "@al-legal-mcpFind Supreme Court decisions on property restitution from 2023"
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.
Albania Legal Research MCP Server (al-legal-mcp)
Model Context Protocol (MCP) server providing direct, read-only access to Albania (AL) legislation, multi-tier judicial decisions (First Instance, Regional/Cantonal/Appellate, and Supreme/Constitutional courts), and statutory citation verification for Claude Desktop, Cursor, and Antigravity.
Quick Desktop Setup (No Command Line Required)
This package includes a graphical installer for legal practitioners who prefer not to use terminal commands or edit JSON configuration files manually.
Download: Click
<> Codeat the top right of this repository, selectDownload ZIP, and extract the folder to your computer.Run the Setup Utility:
Windows: Double-click
Click_Here_To_Install_Windows.batmacOS: Double-click
Click_Here_To_Install_Mac.command
Connect: Click Install & Connect Automatically in the setup window and restart Claude Desktop.
System Integrity Note: The setup utility operates strictly in read-only mode with respect to your personal files and documents. It installs an isolated Python environment inside the extracted folder and registers the server entry in your AI client configuration.
Related MCP server: Cyprus Legal Research MCP Server
Multi-Tier Judicial Hierarchy & Official Sources
This server indexes and queries decisions across the full judicial hierarchy of Albania, allowing practitioners to filter research by procedural stage:
Judicial Tier | Covered Courts & Tribunals |
Tier 1 — First Instance | Gjykatat e Shkallës së Parë të Juridiksionit të Përgjithshëm (13 District First Instance Courts), Gjykatat Administrative të Shkallës së Parë & GJKKO |
Tier 2 — Regional / Cantonal / Appellate | Gjykata e Apelit të Juridiksionit të Përgjithshëm (Tiranë), Gjykata Administrative e Apelit & Gjykata e Posaçme e Apelit |
Tier 3 — Supreme & Constitutional | Gjykata e Lartë e Republikës së Shqipërisë (gjykataelarte.gov.al) & Gjykata Kushtetuese (gjk.gov.al) |
Primary Legal Portals
National Legislation Registry: Qendra e Botimeve Zyrtare - QBZ (qbz.gov.al Official Publications Center) (
https://qbz.gov.al)Multi-Tier Case Law Database: Portali Gjyqësor Kombëtar Gjykatat.gov.al & Gjykata e Lartë Unifying Decisions (
https://gjykatat.gov.al)Supported Citation Format Example:
Vendimi Nr. 123/2024 or Fletorja Zyrtare Nr. 15/2024
Indexed Court & Regional Sub-Portals
Sub-Portal Identifier ( | Official Endpoint / Registry |
|
|
|
|
|
|
Available MCP Tools
Tool | Description |
| Searches enacted statutes, codes, decrees, and official gazette publications in Albania. |
| Searches national jurisprudence and European/ECLI-linked judgments for Albania. |
| Filters case law specifically by judicial instance ( |
| Returns the complete 3-tier court structure and registered sub-portal endpoints for Albania. |
| Retrieves full statutory or judicial texts and converts them into clean Markdown. |
| Validates statutory and case law citations against official registries. |
{
"mcpServers": {
"al-legal-mcp": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/jurisatlas/al-legal-mcp",
"al-legal-mcp"
]
}
}
}Available Tools
6 toolsget_legal_document_markdownGet Legal Document MarkdownA
Retrieve full Markdown text of a legislation document or court judgment from Albania (AL) by its URL or official identifier.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (5,000 characters per page). | |
| document_id_or_url | Yes | Document URL, ECLI, ELI, or official ID returned by search tools. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations present, the description carries the full behavioral burden. 'Retrieve' implies a non-mutating read, and the AL-only scope is useful context, but there is no disclosure of failure behavior for malformed or unknown identifiers, coverage limits, or rate/auth constraints. Pagination exists only in the schema, not the description.
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?
A single front-loaded sentence with the verb and resource first and the accepted input forms last. Nothing is repeated and no sentence is 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?
An output schema exists, so return-format explanation is unnecessary, and the input schema is fully documented. What remains thin is the behavioral edge around what actually comes back (full text vs. paged excerpt) and how errors surface, but for a simple two-parameter retrieval tool this is nearly complete.
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 both parameters are already documented, including accepted identifier forms and the 5,000-character page size. The description adds only marginal meaning by clarifying that the document may be legislation or a court judgment. Baseline 3 is appropriate when the schema does the heavy lifting.
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 sentence names a specific verb and resource ('Retrieve full Markdown text of a legislation document or court judgment') and scopes it geographically to Albania (AL). It is clearly distinguishable from the sibling search_* tools, which find documents, and from verify_citation, which validates references rather than returning text.
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 phrase 'by its URL or official identifier' implies this is a follow-up call to a search tool, but the description never says so explicitly nor names an alternative. There is no guidance on when this is the wrong tool (e.g., when you only need metadata or a verification result).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_court_hierarchyList Court HierarchyA
Return the complete step-by-step multi-tier judicial hierarchy for Albania (AL): Tier 1 (First Instance / Trial / Municipal / District Courts), Tier 2 (Regional / Cantonal / County / Appellate Courts), Tier 3 (Supreme / Cassation / Constitutional Courts), and all official court sub-portals.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden and correctly implies a read-only reference listing scoped to Albania. However, it does not state whether the hierarchy is static or dynamically updated, its authoritative source, or any caching/rate-limit behavior.
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 definition is a single front-loaded sentence with no wasted wording. The tier enumeration is useful because it specifies the exact scope of the returned hierarchy.
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 simple zero-parameter static lookup with an output schema, the description is mostly complete: it defines the jurisdiction and hierarchical coverage. The main gap is the absence of explicit usage guidance, though the tool's purpose remains understandable.
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?
The tool takes zero parameters, so there are no parameter semantics to clarify beyond the schema. The baseline for a parameterless tool is 4.
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 uses a specific verb, 'Return', names the exact resource, Albania's judicial hierarchy, and enumerates the tiers and sub-portals. This makes clear it is a static hierarchy lookup rather than a search or document-retrieval tool.
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 explains what is returned but gives no explicit when-to-use guidance, prerequisites, or named alternatives among the sibling court/legal-search tools. Usage is only inferable from the tool name and output description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_case_lawSearch Case LawB
Search Albania (AL) court decisions and binding precedents via Gjykata e Lartë e Republikës së Shqipërisë (gjykataelarte.gov.al) & Gjykata Kushtetuese (gjk.gov.al) (Supported courts: Gjykata e Lartë (High / Supreme Court), Gjykata Kushtetuese (Constitutional Court), Gjykata e Apelit të Juridiksionit të Përgjithshëm).
| Name | Required | Description | Default |
|---|---|---|---|
| court | No | Optional court filter (Gjykata e Lartë (High / Supreme Court), Gjykata Kushtetuese (Constitutional Court), Gjykata e Apelit të Juridiksionit të Përgjithshëm). | |
| limit | No | Maximum number of judgments to return. | |
| query | Yes | Legal issue, keywords, party name, or ECLI/case number. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are supplied, so the description carries the full disclosure burden; it does add useful context about which courts and official websites are covered. It says nothing about result ordering, whether full text or snippets are returned, pagination, or any access constraints, which are the traits an agent would need before invoking a search tool.
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?
It is front-loaded with the core purpose, which is good, but it is a single run-on sentence that repeats the supported-court list already present in the schema and stuffs two URLs and three court names into one breath. Content that earns its place is diluted by duplication.
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?
An output schema exists and the input schema is fully documented, so return values and parameters need not be explained. What is missing is the routing information relative to the similar sibling search_tiered_court_decisions, which for a three-parameter search tool is a meaningful gap.
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 all three parameters are already documented in the schema, establishing a baseline of 3. The description merely restates the court list verbatim from the schema and adds no extra meaning about query syntax or how court names should be matched.
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?
States a specific verb and resource (search Albanian court decisions and binding precedents) and pins the jurisdiction and source domains (gjykataelarte.gov.al, gjk.gov.al). It does not differentiate itself from the close sibling search_tiered_court_decisions, so an agent cannot tell from the description alone which of the two to pick.
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?
There is no when-to-use or when-not-to-use guidance and no mention of alternatives, despite four siblings including search_tiered_court_decisions and search_legislation that an agent could confuse with this one. The only conditional hint is that the court filter is optional, which is already visible in the schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_legislationSearch LegislationA
Search Albania (AL) national legislation (statutes, acts, codes, regulations) via Qendra e Botimeve Zyrtare - QBZ (qbz.gov.al Official Publications Center) and European/International legal registries.
| Name | Required | Description | Default |
|---|---|---|---|
| year | No | Optional enactment year filter. | |
| limit | No | Maximum number of results to return. | |
| query | Yes | Keywords or statute title/number to search in Albania legislation. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are supplied, so the description carries the full burden. It usefully discloses the source registries being queried (QBZ plus European/International legal registries), which tells the agent about jurisdictional coverage, but it says nothing about result ranking, language of the corpus, pagination behavior, or any access constraints.
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?
A single front-loaded sentence with the verb first and no filler. The parenthetical expansions of QBZ and the document types earn their place by clarifying coverage, though the dual-source clause is somewhat compressed.
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?
An output schema exists and parameter coverage is complete, so the description needn't explain return values. For a simple three-parameter search tool it covers what is searched and where; the main residual gap is the absence of sibling routing guidance and any note on corpus language.
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 explains query, year, and limit, including the 1-50 range on limit. The description adds no extra meaning about query syntax (keywords vs statute number), language expectations, or what the year filter matches against, so baseline 3 applies.
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?
Specific verb ("Search") plus a precisely scoped resource: Albania (AL) national legislation, with enumerated document types (statutes, acts, codes, regulations) and named sources (QBZ/qbz.gov.al, European/International registries). The resource type alone distinguishes it from siblings like search_case_law and verify_citation, though no sibling is named explicitly.
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 by the resource scope (legislation, not case law or citations), but there is no explicit when-to-use, when-not-to-use, or routing statement naming the alternative tools. An agent must infer that court decisions belong to search_case_law and citation checks to verify_citation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_tiered_court_decisionsSearch Tiered Court DecisionsA
Search court decisions in Albania (AL) filtered by specific judicial tier or regional/cantonal/appellate court. Supports Tier 1 (first_instance), Tier 2 (appellate_regional — including Cantonal/Regional/County/Circuit courts), and Tier 3 (supreme_constitutional), or a specific sub-portal key from list_court_hierarchy.
| Name | Required | Description | Default |
|---|---|---|---|
| tier | No | Judicial stage: 'first_instance', 'appellate_regional' (Cantonal/Regional/Circuit/Appellate), 'supreme_constitutional', or 'all'. | appellate_regional |
| limit | No | Maximum number of decisions to return. | |
| query | Yes | Legal issue, statute article, case number, or keywords. | |
| sub_court | No | Optional specific court/canton/region key (e.g. 'kanton_sarajevo', 'kanton_tuzla', 'kanton_mostar', 'okruzni_banja_luka', etc.). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It identifies the operation as a search but does not disclose read-only status, permissions, rate limits, result ordering, or other behavioral traits beyond the basic operation, though the output schema covers return values.
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 two dense sentences with no filler, front-loading the resource and jurisdiction before detailing supported tiers and the sub-portal option. Every phrase contributes to selection or invocation.
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 output schema and 100% parameter coverage, the description is nearly complete for calling the tool. It lacks guidance on when to choose this over the sibling search_case_law, and without annotations it does not cover behavioral caveats such as permission requirements or rate limits.
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 coverage is 100%, so the baseline is 3, but the description adds meaning by mapping Tier 1/2/3 labels to the enum values and by noting that appellate_regional includes Cantonal/Regional/County/Circuit courts. It also ties sub_court to list_court_hierarchy, which helps clarify that optional parameter.
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 states a specific verb (Search), resource (court decisions), jurisdiction (Albania), and filter dimensions (judicial tier or specific court). It distinguishes from list_court_hierarchy by referencing it for sub-portal keys, but does not differentiate from the sibling search_case_law tool.
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 by describing tier-based filtering and pointing to list_court_hierarchy for sub_court keys, but there is no explicit guidance on when to use this tool versus search_case_law or other siblings, nor any when-not conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
verify_citationVerify CitationA
No-Hallucination Citation Verifier for Albania (AL). Validates format and live existence of legal citations (e.g., 'Vendimi Nr. 123/2024 or Fletorja Zyrtare Nr. 15/2024') against official Albania and ECLI/ELI registries to prevent AI-hallucinated citations.
| Name | Required | Description | Default |
|---|---|---|---|
| citation | Yes | Case citation, ECLI, or statute reference to verify (e.g., 'Vendimi Nr. 123/2024 or Fletorja Zyrtare Nr. 15/2024'). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It does disclose meaningful behavior beyond the name: validation covers both syntax and 'live existence' against external registries, implying a network lookup and dependence on registry availability. It does not say what happens on lookup failure, whether unverified results are distinguished from invalid ones, or whether any auth/rate limits apply.
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?
One sentence, front-loaded with the tool's purpose and followed by the concrete scope and rationale. Slight marketing framing ('No-Hallucination Citation Verifier') is decorative but costs little, and nothing is redundant.
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 one-parameter verification tool with a full schema, an output schema covering return values, and clear jurisdiction scope, the description is nearly sufficient. The main remaining gap is failure behavior for citations that cannot be resolved, which matters for a verification tool whose verdict drives downstream trust.
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?
There is a single parameter with 100% schema description coverage, so the baseline is 3. The description's example ('Vendimi Nr. 123/2024 or Fletorja Zyrtare Nr. 15/2024') largely duplicates the schema's own example and adds no new format rules, accepted variants, or normalization guidance.
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 names a specific verb+resource pair: it 'validates format and live existence of legal citations' against official Albania and ECLI/ELI registries. That is clearly distinct from the sibling search_* and get_* tools, but the description never explicitly contrasts itself with them, so the differentiation is implicit rather than stated.
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 only implied: an agent can infer it should call this before relying on or emitting a citation, but the description gives no explicit trigger conditions, no when-not-to-use cases, and no named alternative (e.g., search_legislation for finding a citation you don't have yet). The Albania-only scope is the one useful boundary it does convey.
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.
6 tool updates
v1.1.0- First observed
get_legal_document_markdown - First observed
list_court_hierarchy - First observed
search_case_law - First observed
search_legislation - First observed
search_tiered_court_decisions - First observed
verify_citation
TDQS
Scored across 6 tools
The two search tools (search_case_law and search_tiered_court_decisions) overlap substantially: both return Albanian court decisions, and the distinction between 'named apex courts' vs 'filter by tier' is only clear after reading the full descriptions. The remaining tools (legislation search, document fetch, hierarchy listing, citation verification) are cleanly distinct.
All six tools follow a consistent snake_case verb_noun pattern: list_*, search_*, get_*, verify_*. Lengths vary but the convention is uniform and predictable.
Six tools is well-scoped for a legal research server: one per core action (hierarchy, legislation search, case law search, tiered search, document retrieval, citation verification). Each tool earns its place.
The surface covers discovery, search, full-text retrieval, and citation verification, which is a solid lifecycle for read-only legal research. Minor gaps remain, such as a direct fetch-by-citation path or a tool for treaty/international-law lookup separate from the legislation search.
Maintenance
Related MCP Connectors
Resolve, search and verify legal citations against the official sources, with provenance.
Search national and EU case law, legislation and regulation, with citations you can verify.
Search and read Lebanese laws, articles, court rulings and Gazette issues. Verbatim texts only.
Current law as data for AI: search, read and verify statutes and citations. CIS countries first.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables read-only search, retrieval, and citation verification for Bosnia and Herzegovina legislation and court decisions across first-instance, appellate, and supreme/constitutional tiers.MIT
- AlicenseAqualityBmaintenanceEnables read-only search and retrieval of Cyprus legislation and multi-tier court decisions, plus verification of statutory and case-law citations against official legal registries through MCP tools.6MIT
- AlicenseNot gradedqualityCmaintenanceEnables read-only search and retrieval of Czech legislation and multi-tier court decisions, filtering by judicial instance, and verification of statutory and case-law citations against official registries.MIT
- AlicenseNot gradedqualityCmaintenanceEnables direct, read-only legal research across EU and ECHR legislation and multi-tier judicial decisions, including full-text retrieval and statutory/case-law citation verification through MCP tools.MIT