Skip to content
← About praktika-mcp

praktika-mcp · Connection

Highest-court case law alongside your assistant

The assistant searches Supreme Court decisions and Plenum guidance, reads the reasoning and quotes verbatim with a link to the court's PDF. This page explains how to connect it to Claude, ChatGPT, Claude Code or Codex.

Practice is available as a hosted service: https://mizenko.ru/praktika/mcp. Access is through the mizenko.ru cabinet: Claude and ChatGPT connect via OAuth, other clients use a personal key. Open the cabinet

Installation

Local installation (for developers)

The server runs on your computer: the corpus is loaded into a local database and the client starts the server itself. Database passwords stay in .env and never go into client settings.

Requirements

uv
Python environment manager; it installs Python 3.12 itself
Docker
PostgreSQL 17 with search runs in a container
Case corpus
texts of the highest courts' decisions; provided together with repository access
Disk
about 15 GB: the working corpus, the previous one for rollback and the one being built
Client
Claude Code or Codex; any other MCP client that launches stdio servers also works

Install and load the corpus

  1. Get access to the praktika-mcp repository and the case corpus (currently on request) and place the corpus where the project README says.
  2. Copy .env.example to .env and set three database role passwords, for example with openssl rand -hex 24.
  3. Start the database, install dependencies and load the corpus. A full load takes about 9 minutes and about 3.5 GB in the database.
  4. praktika doctor checks Docker, the database, migrations, the presence of the corpus and the loaded corpus version. All five lines should show ✓.
git clone <praktika-mcp> praktika-mcp
cd praktika-mcp
cp .env.example .env      # set three database role passwords; .env stays out of git
docker compose up -d      # PostgreSQL 17 на 127.0.0.1:5432
uv sync                   # environment and dependencies
uv run praktika ingest    # load the corpus, ~9 minutes
uv run praktika doctor    # all five checks marked ✓

Connect your assistant

Choose one option. The plugin adds the server and three skills at once; manual setup adds the server only. Enabling both connects the server twice.

Plugin · Claude Code
  1. Build the plugin in the praktika-mcp folder: the builder records absolute paths to uv and the project and installs nothing itself.
  2. Add the built folder as a plugin marketplace and install praktika-mcp for your user.
  3. Open a new Claude Code session: /mcp lists the praktika server, and the skills respond to plain requests.
uv run python scripts/build_plugin.py
cd dist/plugins/local
claude plugin marketplace add .
claude plugin install praktika-mcp@praktika-local --scope user

The plugin is tied to this computer's paths. Rebuild and reinstall it after the skills are updated.

Plugin · Codex
  1. Build the plugin as for Claude Code, or reuse the existing dist/plugins/local folder.
  2. Add the folder as a marketplace, install the plugin and open a new Codex session.
cd dist/plugins/local
codex plugin marketplace add .
codex plugin add praktika-mcp@praktika-local
Manually · Claude Code, Cursor
  1. Create .mcp.json in the project folder (or add praktika to your personal client settings) using the template below.
  2. Replace /ABSOLUTE/PATH/TO/praktika-mcp with the absolute path to your clone. No database password is needed: the server reads it from .env.
  3. Restart the client and approve the praktika server. With manual setup, the skills are available as the server's MCP prompts.
{
  "mcpServers": {
    "praktika": {
      "command": "uv",
      "args": [
        "run",
        "--directory",
        "/ABSOLUTE/PATH/TO/praktika-mcp",
        "praktika",
        "serve"
      ]
    }
  }
}
Manually · Codex
  1. Add the block to your personal ~/.codex/config.toml and replace the clone path.
  2. Restart Codex and check the server with codex mcp list.
[mcp_servers.praktika]
command = "uv"
args = ["run", "--directory", "/ABSOLUTE/PATH/TO/praktika-mcp", "praktika", "serve"]

Server tools

praktika_search
search by question or keywords with filters: provision, chamber, decision type, outcome, period, guidance paragraph (cites); Plenum guidance and recent chamber practice come as separate blocks
praktika_find_term
all decisions with an exact phrase in any grammatical case, with verbatim quotes
praktika_get_document
reading a decision part by part (reasoning first) or a guidance paragraph; its status and the practice citing it
praktika_case
all Supreme Court decisions by case number, including those outside the search corpus, with a PDF link
praktika_status
corpus contents, snapshot, versions and coverage

Three skills

A skill gives the agent a working method: provision and guidance first, then the reasoning, a separate search for contrary practice, verbatim quotes only. Use a plain request:

Practice review

“Review the case law on reducing a contractual penalty under Article 333 of the Civil Code for a business debtor”

A memo: Plenum position, Supreme Court chamber line, recent practice, limitations and what was not found.

Arguments for and against

“Find case law for and against the arguments in this response to the claim”

For each argument — quotes for and against and an assessment: supported, disputed, practice against, not found.

Decision check

“Check the conclusions of this appellate ruling against Supreme Court practice”

A table of the court's conclusions marked confirmed, conflicting or not covered, with the weight of the source.

How to check that it works

Send your assistant:

Call praktika_status and show the corpus snapshot.
Then find Supreme Court practice on reducing a penalty
under Article 333 of the Civil Code for a business,
read the reasoning of one decision and quote the court.

The chat should show praktika tool calls, and the answer should include the decision's details, a PDF link and a quote in quotation marks.

Troubleshooting

“Database unavailable”
Start Docker, run docker compose up -d in the praktika-mcp folder, then praktika doctor.
“Corpus built by another version”
The code was updated but the corpus was not: run praktika ingest. praktika rollback restores the previous corpus.
The assistant replies without quotes
Check that the server is enabled in /mcp and ask explicitly to use praktika. Only text and quote from server responses may be quoted: search snippets are truncated.
Update the corpus
Update the case corpus and run praktika ingest. The rebuild is atomic: the server keeps using the previous version until the switch.

Limitations

  • The corpus covers substantive Supreme Court decisions, Plenum guidance and the Supreme Commercial Court archive as of 27.09.2026. Constitutional Court, IP Court and cassation district decisions are not included.
  • Whether decisions are final or were later reviewed is not checked. Guidance status reflects the corpus, not an official verification.
  • An empty result does not prove there is no practice: search is lexical, and some texts were extracted from PDF with errors.
  • The skills collect and organise case law, but give no legal opinion and do not predict outcomes.