pytauargus-mcp
A Model Context Protocol (MCP) server for
Tau-Argus, the statistical
disclosure control engine. It lets an AI assistant (for example
OpenCode, or any other MCP client) work on your data: you point it at a
microdata file, it explores the variables, protects the tables and
reports what was suppressed and why. Each tool call is one
self-contained task with its full result, so a long solve can be
backgrounded by the client. It is a thin wrapper over the pytauargus
Python API; it re-implements no engine behaviour. Installing it also
gives you the pytauargus package and the tauargus CLI.
The server runs locally on stdio: the microdata, the protection run and the results stay on the machine that hosts it, and the server makes no network calls. You can run it air-gapped, for example in a datacenter with an MCP client backed by a local LLM.
What it does
Eight tools cover the workflow.
tauargus_versionreports thepytauarguspackage version and the native engine version.tauargus_exploreinspects a microdata dataset and returns its variables with their types. It reads.parquetfiles directly and.asc/.rdafiles through the engine metadata parser.tauargus_build_arbwrites a.arbbatch file from the dataset description (wrapsmicro_arb).tauargus_run_arbruns a.arbbatch and reports the table files it writes.tauargus_protectprotects one or more tables from microdata in a single call (wrapsprotect). The suppression method is selectable through thesuppressspec (defaultOPT(1)); hypercube (GH) secondary suppression runs in this build for flat, non-weighted tables. It returns per-table cell counts, status counts, the unsafe and secondary cells, and all produced file paths.tauargus_auditaudits the suppressed cells of a table computed by a batch and returns their realised feasibility intervals.tauargus_method_advicerecommends a protection method for the table structure (dimensions, hierarchy, count response) and explains the trade-offs of the applicable alternatives. Each method is markedavailablewhen this build implements it; a method the engine cannot run is never recommended, and the result says so. This build marks global recoding, optimal, modular (HiTaS), hypercube (flat tables) and controlled rounding as available; network and CTA are not.tauargus_assessruns the safety rules without suppressing and returns the cells the rules flag, with their values, contributor counts and the plain-language reason each is sensitive (safety rule, frequency, singleton, zero, manual, ...), plus the applied rules in plain words. It previews what a protection run would withhold, so it runs first.
The server runs on the stdio transport.
Basis
The method advice, rule meanings and status legend describe standard statistical disclosure control practice as documented in the legacy tau-ARGUS 4.1 manual. The method trade-offs follow the overview in Meindl (2025), Statistical Disclosure Control. Improving tools and methods to facilitate the application, doctoral thesis, Johannes Kepler University Linz.
Install
Python 3.11 to 3.14, on the platforms the pytauargus wheel covers
(macOS arm64, Linux x86_64 and aarch64, Windows x86_64). The wheel
bundles the native engine and HiGHS, so no compiler, CMake, R or Java
is needed.
pip install pytauargus-mcp
# or, as an extra of the engine package:
pip install "pytauargus[mcp]"
To try it without installing anything (requires uv), run it with
uvx:
uvx pytauargus-mcp
Run
tauargus-mcp # starts the server on stdio
The server is a local process that the client starts for you. Point the
client at the tauargus-mcp console script. With a pip install it is on
the PATH; without one, use uvx pytauargus-mcp instead.
OpenCode. Add a tauargus server to the project or user config:
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"servers": {
"tauargus": {
"type": "local",
"command": ["tauargus-mcp"]
}
}
}
}
Claude Desktop. Add a tauargus entry to claude_desktop_config.json
(the app opens it from Settings, Developer, Edit Config) and restart it:
{
"mcpServers": {
"tauargus": { "command": "tauargus-mcp" }
}
}
Desktop starts the command without your shell environment; if it does not
find the script, use its absolute path (which tauargus-mcp).
Claude Code.
claude mcp add tauargus -- tauargus-mcp
Gemini CLI.
gemini mcp add -s user tauargus tauargus-mcp
or add the same mcpServers entry to ~/.gemini/settings.json.
ChatGPT. Its custom connectors connect to a remote server over HTTPS and cannot start a local one, so this server does not work with ChatGPT.
When the server connects, the client lists its eight tools. In OpenCode,
/mcps shows ✓ tauargus connected.
Develop (monorepo)
cd mcp
uv sync --extra test
.venv/bin/python -m pytest tests -q
The uv sync step installs the parent package editable and builds its
native extension, so the pinned engine checkout's superbuild output
(engine/build/lib) must exist first. scripts/sync-venv.sh builds it
if needed (it reads the sibling ../tauargus-engine checkout; point
TAUARGUS_ENGINE_DIR at it for the mcp venv too, so the editable build
uses the same checkout). The tests read their fixtures from
$TAUARGUS_ENGINE_DIR/data (default: the sibling checkout).
Metadata
Release files for pytauargus-mcp 0.8.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| pytauargus_mcp-0.8.0-py3-none-any.whl | Python 3 | none | any | Details for pytauargus_mcp-0.8.0-py3-none-any.whl |
Release files / pytauargus_mcp-0.8.0-py3-none-any.whl
| Download URL | pytauargus_mcp-0.8.0-py3-none-any.whl |
|---|---|
| Size | 16.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
5202e6e5b3154b16c5407c3455700c77a82bfcd682bb60d41d140f58027b1087
|
|
BLAKE2b-256 checksum How to use checksums |
069f176ba271d7e35f8b83b5fb427ca655bab22c0991b3ec1214f1a5350b72b2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 12, 2026.
Transparency logSecurity for pytauargus-mcp 0.8.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
1 file in this release has been uploaded with provenance metadata.
Attestation for pytauargus_mcp-0.8.0-py3-none-any.whl
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 12, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.