FAI Legal Research
Server Details
Pakistani case law and statutes: Supreme Court and High Court judgments, laws, drafting templates.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 5 tools
Each tool has a clearly distinct purpose: list vs. retrieve templates, search vs. retrieve statutes, and search judgments. The descriptions explicitly clarify when to use each tool, leaving no meaningful overlap.
All names follow a consistent snake_case verb_noun pattern: get_drafting_template, list_drafting_templates, get_statute_section, search_judgments, search_statutes. Minor pluralization differences do not break predictability.
Five tools are well-scoped for a legal research and drafting assistant, each covering a distinct capability without redundancy. This falls comfortably within the typical 3–15 tool range.
Core workflows are covered: finding statutes, retrieving specific sections, searching judgments, and listing/retrieving drafting templates. A minor gap exists in retrieving full judgment text or a judgment directly by citation, which may limit deeper case research.
Available Tools
5 toolsget_drafting_templateGet a Pakistani legal drafting templateARead-onlyIdempotentInspect
Return one reviewed template: its structure, the facts that must be collected first, and the standard wording for its Pakistani forum. Ask the user for any missing facts, never invent them, then fill the template.
| Name | Required | Description | Default |
|---|---|---|---|
| template_id | Yes | An id from list_drafting_templates, e.g. "legal-notice". |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| name | No | |
| note | Yes | |
| forum | No | |
| found | Yes | |
| message | No | |
| category | No | |
| template | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so safety is covered. The description adds genuine value beyond that: the template is 'reviewed', and it discloses the return content and the anti-hallucination constraint on missing facts.
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?
Two compact sentences, no filler, and the deliverable is front-loaded before the workflow instruction. Every clause 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?
Purpose, returned content, parameter source, and the operating constraint (ask, don't invent) are all present, and an output schema exists so return-value documentation is unnecessary. An agent has everything needed to invoke this correctly.
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; the schema already documents template_id, its length bounds, and that it comes from list_drafting_templates. The description adds no additional parameter meaning, so the baseline of 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?
States a specific verb and resource ('Return one reviewed template') and enumerates the payload ('its structure, the facts that must be collected first, and the standard wording for its Pakistani forum'). The singular 'one' implicitly separates it from the sibling list_drafting_templates, which returns many.
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?
Gives clear operational context: ask the user for missing facts, never invent them, then fill the template. It also implies the template_id originates from list_drafting_templates via the schema. However, it never states when to prefer this tool over siblings like get_statute_section or search_judgments, and offers no exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_statute_sectionGet a section of a Pakistani lawARead-onlyIdempotentInspect
Return the full text of one section or article of a Pakistani law when the act and number are known, e.g. act "PPC", section "392"; act "Constitution", section "199".
| Name | Required | Description | Default |
|---|---|---|---|
| act | Yes | Act name or common short form: PPC, CrPC, CPC, Constitution, Contract Act, Qanun-e-Shahadat... | |
| section | Yes | Section or article number, e.g. "489-F", "199". |
Output Schema
| Name | Required | Description |
|---|---|---|
| note | Yes | |
| found | Yes | |
| message | No | |
| sections | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint=false and destructiveHint=false, so the safety profile is fully covered by structured data. The description adds only the retrieval granularity (one section, full text) and no auth, rate-limit, or not-found behavior, which is acceptable but modest given an output schema is also present.
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 that states the action, the scope, and the triggering condition, then illustrates with two concrete pairs. No filler and nothing buried.
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 two-parameter lookup with an output schema and full annotation coverage, the description supplies everything needed to invoke it correctly. Minor gaps (behavior when a section is not found, exact identifier normalization) are tolerable given the output schema exists.
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% and both parameters already document accepted formats and examples ('PPC', 'CrPC', '489-F'). The examples in the description ('PPC'/'392', 'Constitution'/'199') largely restate the schema, 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?
States a specific verb (return) and resource (full text of one section/article of a Pakistani law) with concrete examples of the act/section pairings. The precondition 'when the act and number are known' implicitly separates it from search_statutes, which is the sibling an agent would otherwise confuse it with.
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?
Gives a clear precondition for use ('when the act and number are known'), which tells the agent to reach for a search tool when the citation is unknown. It does not name search_statutes as the alternative or state what happens on a miss, so it falls short of an explicit when/when-not rule.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_drafting_templatesList Pakistani legal drafting templatesARead-onlyIdempotentInspect
List FAI's reviewed Pakistani legal drafting templates (legal notice, plaint, bail application, written statement, affidavit, agreements, family and rent matters and more). Use when the user wants to draft a Pakistani legal document; then call get_drafting_template with the chosen id.
| Name | Required | Description | Default |
|---|---|---|---|
| filter | No | Optional words to narrow the list, e.g. "bail" or "notice". |
Output Schema
| Name | Required | Description |
|---|---|---|
| note | Yes | |
| count | Yes | |
| templates | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=false and destructiveHint=false, so the safety profile is fully covered. The description adds the 'reviewed' curation signal and the breadth of template categories, but says nothing about result ordering, count, or pagination behavior; with an output schema present, return-format detail is not required. Modest value added on top of annotations.
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?
Front-loaded with the verb and resource, and the workflow sentence is compact. The parenthetical category list is long-ish but earns its place by conveying the template breadth an agent needs to judge relevance.
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 annotations covering the safety profile, an output schema covering returns, and a fully documented single parameter, the description supplies the remaining essentials: scope, content breadth, and the chaining step to get_drafting_template. Only the absence of explicit non-use cases keeps it from a 5.
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% and the single filter parameter is fully documented in the schema with a default, maxLength and examples. The description adds nothing about filtering syntax or matching behavior, so baseline 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?
States a specific verb (List) plus a precisely scoped resource (FAI's reviewed Pakistani legal drafting templates) and enumerates concrete examples (legal notice, plaint, bail application, affidavit, etc.). It also differentiates itself from the sibling get_drafting_template by positioning itself as the discovery step.
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 says to use it when the user wants to draft a Pakistani legal document, and gives the follow-up routing step (call get_drafting_template with the chosen id), which is a genuinely useful workflow hint. It does not state when-not to use it (e.g. use search_statutes or search_judgments for research rather than drafting), so it stops short of full alternative coverage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_judgmentsSearch Pakistani judgmentsARead-onlyIdempotentInspect
Find reported judgments (case law, precedents) of Pakistani courts: Supreme Court of Pakistan, Lahore, Sindh, Peshawar, Balochistan and Islamabad High Courts, Federal Shariat Court and others. Use for any request like "Supreme Court judgment on bike snatching", "case law on pre-arrest bail mala fide", "precedent on specific performance". Returns citation (e.g. 2022 SCMR 1577), court, year, parties, judges, provisions and headnote, ranked by relevance; off-topic matches are dropped, so an empty list means no on-point judgment was found. Pakistan only.
| Name | Required | Description | Default |
|---|---|---|---|
| court | No | Only this court. Omit to search all Pakistani courts. | |
| limit | No | How many judgments to return (max 5). | |
| query | Yes | The legal issue or facts in plain English, e.g. "motorcycle snatched at gunpoint robbery conviction". | |
| year_to | No | Latest year of the report. | |
| year_from | No | Earliest year of the report. |
Output Schema
| Name | Required | Description |
|---|---|---|
| note | Yes | |
| results | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), so the bar is lower. The description still adds real behavioral context the annotations cannot: results are relevance-ranked, off-topic matches are dropped, and an empty list explicitly means no on-point judgment exists rather than a failure.
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?
Three front-loaded sentences: scope first, usage examples second, return shape and empty-result semantics last. No sentence is redundant and none repeats the schema verbatim.
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 5-parameter, single-required search tool with full schema coverage and an output schema, the description supplies everything else an agent needs: jurisdiction limits, sample invocations, ranking behavior, and empty-result interpretation.
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; the description earns slightly more by giving example query strings that demonstrate the expected plain-English fact pattern for `query` and by enumerating the court bodies that map onto the `court` enum. It does not clarify the year_from/year_to interaction, which is left entirely to the schema.
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 (Find) and resource (reported judgments/case law) plus an explicit jurisdiction scope and an enumeration of covered courts. It is clearly separable from the sibling search_statutes, which handles statutes rather than case law.
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?
Gives concrete trigger phrasings ("Supreme Court judgment on bike snatching", "case law on pre-arrest bail mala fide") that show exactly what requests belong here, and constrains scope with "Pakistan only." It never names an alternative tool or states when not to use it, so it falls short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_statutesSearch Pakistani statutesARead-onlyIdempotentInspect
Find the sections of Pakistani laws relevant to a question: Pakistan Penal Code (PPC), Code of Criminal Procedure (CrPC), Code of Civil Procedure (CPC), the Constitution, Contract Act, Limitation Act, Qanun-e-Shahadat, family, tax, labour and provincial laws. Use for "punishment for snatching a motorcycle", "which section covers cheque dishonour", "bail in a non-bailable offence". Understands everyday words (murder finds qatl-i-amd, s.302 PPC). Returns section text with its citation.
| Name | Required | Description | Default |
|---|---|---|---|
| act | No | Only search this act, e.g. "Code of Criminal Procedure". | |
| limit | No | ||
| query | Yes | The question or topic, or a section reference like "section 302 PPC". |
Output Schema
| Name | Required | Description |
|---|---|---|
| note | Yes | |
| results | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, closed-world and non-destructive, so the safety profile is covered. The description adds real behavioral value beyond them: natural-language synonym matching ('murder finds qatl-i-amd, s.302 PPC') and the fact that section text plus citation is returned.
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?
Front-loaded with purpose then scope then examples; every clause carries information. The act enumeration and example list are dense but justified for a multi-corpus legal search, though slightly long.
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 an output schema present, the description needn't explain returns, yet briefly notes section text with citation. Coverage of corpus, query semantics and scoping is sufficient for correct invocation; only explicit sibling routing is missing.
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 67% (limit is undocumented in the schema). The description compensates for the important parameter by explaining that query accepts everyday words, topics, or section references, and that act scopes the search to one statute, adding semantic detail the schema alone does not convey.
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+resource ('Find the sections of Pakistani laws relevant to a question') and enumerates the exact corpus covered (PPC, CrPC, CPC, Constitution, etc.), so an agent knows precisely what this returns versus a general web search.
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?
Provides concrete trigger examples ('punishment for snatching a motorcycle', 'bail in a non-bailable offence') that make the intended use unambiguous, and clarifies it handles everyday phrasing. It stops short of naming when to prefer get_statute_section (citation lookup) or search_judgments (case law) instead.
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.
5 tool updates
- First observed
get_drafting_template - First observed
get_statute_section - First observed
list_drafting_templates - First observed
search_judgments - First observed
search_statutes
Related MCP Connectors
Search 230,000+ Pakistani court judgments by keyword, citation, or the legal question they settle.
Search 18M+ legal documents worldwide — case law, legislation, and doctrine across 110+ countries.
Taiwan legal research: court judgments, statutes, and interpretations. 台灣判決、法條、函釋、釋字搜尋。
Search and cite UAE law (federal, Dubai, Abu Dhabi, DIFC, ADGM) with verifiable citations.
Related MCP Servers
- AlicenseAqualityAmaintenanceMCP server for searching and retrieving Pakistani federal statutes and Supreme Court judgments with structured citations, using static HuggingFace datasets.647 PyPIApache 2.0
- FlicenseNot gradedqualityCmaintenanceEnables searching IndiaKanoon's live index of Indian case law, legislation, the Constitution, treaties, and parliamentary material, then retrieving full document text with pagination and excerpt targeting. Also traces precedent chains by listing the cases that cite, or are cited by, a given judgment.-
- AlicenseAqualityBmaintenanceProvides retrieval-grounded, citation-verified access to Philippine law and compliance, including statutes, jurisprudence, and government issuances across 15 compliance domains.191Apache 2.0
- AlicenseNot gradedqualityBmaintenanceEnables searching and reading Kazakhstan law texts, retrieving versions as of past dates, and exploring legislative history via MCP.-
Glama MCP Gateway
Add one secure layer between your agents and this server.