A conversation on the subject of this page starts with a message to the scientific director of the institute.
Write to the scientific directorInstall in five minutes: the open MITR packages, offline and without registration
The institute’s three open packages install into an isolated Python environment in a few minutes and show the method on one’s own examples: a destructive database query is stopped before execution, and every decision goes into a hash-chained log. Below are the commands for Linux and macOS and separately for Windows, the checksums of the files, and what the open packages do not contain.
The commands on this page are run at the acceptance of every release in a clean environment without a network, with the same lines printed here. Check of 26 October 2026: the installation passed, and a DROP TABLE query was stopped with exit code 2.
What is inside and what is not
| Package | What it does | SHA-256 checksum of the file |
|---|---|---|
| mcp-sentinel 1.1.2 | A wrapper around a Model Context Protocol (MCP) server with four rules: the file system is confined to the working folder, destructive database queries are refused, secret leaks are intercepted, destructive shell commands are refused. The call is checked by pattern matching. | 681a4db59a1a44e89a2b1386ec4b4f2e1fc23c1025c295b9ebf00fd5d20901ea |
| iss-ledger-117 1.1.1 | An append-only log of decisions chained with the GOST R 34.11-2012 (“Streebog”) hash function, with a single-file verifier. mcp-sentinel requires it, which is why there are two wheels. | 8d4ffe60f41ebd377c476f369655aaef5e0ac91858a3d294be37fd1e3100bc87 |
| iss-agent-kit 0.1.1 | Wraps a Python agent function with one import and writes the decision on every call to the same log. | 7ed0ae9073f512a5cfd71b62904094ca36d0ae2fdb1b4bfff5900d3e368781c3 |
What the open packages do not contain: the solver that proves an action admissible under a contract, and the receipt chain with an external time witness. That is the full version of MITR, delivered under an agreement and described on the page MITR. The public PyPI catalog lists an unrelated project under the name mcp-sentinel, so the packages are installed only from the downloaded folder with the --no-index flag.
Linux and macOS
mkdir wheels && cd wheels
curl -O https://isslab.ru/wp-content/uploads/iss-utils/mcp_sentinel-1.1.2-py3-none-any.whl
curl -O https://isslab.ru/wp-content/uploads/iss-utils/iss_ledger_117-1.1.1-py3-none-any.whl
sha256sum *.whl # the sums are in the table above
cd .. && python3 -m venv .venv && . .venv/bin/activate
pip install --no-index --find-links ./wheels mcp-sentinel
mcp-sentinel check --tool sql_query --args '{"query": "DROP TABLE users;"}'
# BLOCK: the destructive query is stopped, exit code 2
mcp-sentinel check --tool sql_query --args '{"query": "SELECT id FROM users WHERE id = 1;"}'
# PERMIT: the query is admitted, exit code 0
Windows
The same steps in PowerShell. The package prints its messages in Russian, so the console is switched to UTF-8 in the first line; without it the messages appear as unreadable characters.
chcp 65001; $env:PYTHONIOENCODING = 'utf-8'
mkdir wheels; cd wheels
curl.exe -O https://isslab.ru/wp-content/uploads/iss-utils/mcp_sentinel-1.1.2-py3-none-any.whl
curl.exe -O https://isslab.ru/wp-content/uploads/iss-utils/iss_ledger_117-1.1.1-py3-none-any.whl
Get-FileHash *.whl -Algorithm SHA256 # the sums are in the table above
cd ..; py -m venv .venv; .venv\Scripts\Activate.ps1
pip install --no-index --find-links .\wheels mcp-sentinel
mcp-sentinel check --tool sql_query --args '{"query": "DROP TABLE users;"}'
# BLOCK: the destructive query is stopped, exit code 2 ($LASTEXITCODE)
What to look at in an hour and where to go next
- Wrap an MCP server of one’s own. The server is started not directly but through
mcp-sentinel wrap, and every tool call is checked before execution; a sample client configuration is on the page MITR, quick start. - Recompute the log. The single-file verifier (
iss_verifier.py, SHA-2561ff894574407307d33ec99115652bcaec4e53d06189178696d0db1c767a8608f) recomputes the chain; editing one record breaks it. - Source code.
git clone https://git.isslab.ru/isslab/mcp-sentinel.git(branch master), likewise iss-ledger-117 and iss-agent-kit; Apache-2.0 license. - The full version. How the solver proves an action and what a receipt holds: Formal verification and The action receipt; how an outsider checks the receipt chain: Verification protocol; how MITR is installed at a customer: A pilot at a customer.
Autonomous Non-Profit Organization (ANO) “Research Institute of System Synthesis”, edition of 26 October 2026. The checksums were taken from the files on the host on 25 October 2026; the installation was checked on 26 October 2026.