Pakistan Law

MCP server · Pakistani statute law, as of a date

Answers questions about Pakistani statute law as of a date, and shows the provision it answered from. A provision amended in 2022 has one text before that date and a different one after, so an answer with no date attached is wrong for one of them.

View on GitHub →

Interface

The interface
The interface
The call console
The call console

A real run

asked

{
 "tool": "answer_question",
 "question": "What is the punishment for theft?",
 "as_of": "2018-01-01"
}

what came back

Section 14 OAPEH - Punishment for theft liable to tazir
  in force from 1979-02-10 (still in force)
  matched 2 of 2 terms — theft (11.89), punishment (7.57)
  Whoever commits theft liable to tazir shall be awarded the punishment provided for the offence of theft in the Pakistan Penal Code (Act XLV of 1860).

Section 379 PPC - Punishment for theft
  in force from 1860-10-06 (still in force)
  matched 2 of 2 terms — theft (11.53), punishment (7.10)
  Whoever commits theft shall be punished with imprisonment of either description for a term which may extend to three years, or with fine or with both.

3 passage(s) returned, ranked. Each carries the window it was in force and the question terms it matched.

asked something the corpus does not hold

{
 "tool": "answer_question",
 "question": "How is cryptocurrency taxed?",
 "as_of": "2024-01-01"
}

what came back

{
 "refused": true,
 "refusal_status": "subject_not_in_corpus",
 "passages": 0,
 "refusal_reason": "no provision in this corpus contains a word the question turns on, in any form: 'cryptocurrency' appears in no provision here. The nearest is Section 5A IMFIB. If one of those words is what the question is about, this corpus does not hold it; if it is incidental, rephrase in the statute's own words."
}

It names the word it could not find rather than returning the nearest thing it has.

checked the citations in a draft

{
 "tool": "check_citations",
 "text": "Relying on section 302 of the Indian Penal Code and section 420 PPC.",
 "as_of": "2024-01-01"
}

what came back

{
 "citations": [
  {
   "citation": "Section 302 (Indian Penal Code)",
   "status": "act_not_recognised",
   "note": "the text names 'Indian Penal Code', which is not an Act this corpus knows; it was not read as a Pakistani provision of the same number"
  },
  {
   "citation": "Section 420 PPC",
   "status": "in_force",
   "heading": "Cheating and dishonestly inducing delivery of property"
  }
 ],
 "counts": {
  "act_not_recognised": 1,
  "in_force": 1
 },
 "verdict": "problems"
}

A foreign code is not read as the local Act of the same number.

asked for one provision's history

{
 "tool": "provision_history",
 "citation": "Section 8 AGRIC"
}

what came back

{
 "versions": 1,
 "history": [
  {
   "from": "1958-09-23",
   "to": "2011-05-31",
   "manner": "repealed",
   "amended_by": "Act XIV of 2011",
   "superseded_by": "",
   "heading": "Sanction for prosecution under this Act"
  }
 ],
 "currently_in_force": false
}

Captured from a real run on 2026-10-24 at revision 7a6691a, over the released corpus: 30174 provisions from 970 statutes. Output is shortened where a provision is long; nothing is edited. This page is static - the server runs on your own machine, not here.

What it does

answer_question
Answers from provisions in force on a date, with the citation and the words that matched
check_citations
Audits a draft for citations that were not good law on the date it speaks about
provision_history
Every version of one provision, and the instrument that amended it
compare_versions
One provision at two dates, with a word-level diff
list_provisions
What a statute contained on a date, in statute order
changes_between
Commencements, substitutions, omissions and repeals across a window
parse_citations
Resolves every citation in a passage to one canonical key
corpus_info
What is loaded: statutes, provisions, versions, date range

What it will not do

It holds no case law and says so. It refuses when no word the question turns on appears in any provision, and names the words it looked for. It will not read section 302 of the Indian Penal Code as PPC 302 — that comes back as act_not_recognised.

Stack