Skip to main content

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_version reports the pytauargus package version and the native engine version.
  • tauargus_explore inspects a microdata dataset and returns its variables with their types. It reads .parquet files directly and .asc/.rda files through the engine metadata parser.
  • tauargus_build_arb writes a .arb batch file from the dataset description (wraps micro_arb).
  • tauargus_run_arb runs a .arb batch and reports the table files it writes.
  • tauargus_protect protects one or more tables from microdata in a single call (wraps protect). The suppression method is selectable through the suppress spec (default OPT(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_audit audits the suppressed cells of a table computed by a batch and returns their realised feasibility intervals.
  • tauargus_method_advice recommends a protection method for the table structure (dimensions, hierarchy, count response) and explains the trade-offs of the applicable alternatives. Each method is marked available when 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_assess runs 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)

Table of built distributions (wheels) for pytauargus-mcp 0.8.0
File Interpreter ABI Platform Actions
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 log

Security 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 log

A 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.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page