Skip to main content

Wallras clients for Python

Two single-file, zero-dependency clients for Wallras, the AI monitoring proxy you run next to your app:

  • wallras_mcp.py: an MCP server, so Claude Desktop, Claude Code, Cursor or your own agent can check drift, read requests and agent runs, work the review queue, fetch prompts and run regression sets. Read-only unless you pass --enable-writes.
  • wallras_sdk.py: report what Wallras can't see on its own: a self-hosted model's token probabilities and decision records, agent steps (tool runs, lookups), and feedback; fetch prompt versions.

Both talk only to your own Wallras with your token. The Wallras engine itself ships as a Docker image (ghcr.io/wallras/wallras-engine); this repository holds the open-source clients.

Install

pip install git+https://github.com/wallras/wallras-python

Or run the MCP server without installing anything:

uvx --from git+https://github.com/wallras/wallras-python wallras-mcp

Each file also works on its own: copy it next to your code.

MCP server

{"mcpServers": {"wallras": {
  "command": "uvx", "args": ["--from", "git+https://github.com/wallras/wallras-python", "wallras-mcp"],
  "env": {"WALLRAS_URL": "http://localhost:8080", "WALLRAS_TOKEN": "a viewer or admin token"}}}}

Add "--enable-writes" to args for the tools that change something (feedback, review decisions, saving or promoting prompts, regression runs, optionally graded by a judge_model). Those need an admin token; regression runs call your provider with WALLRAS_PROVIDER_KEY (and WALLRAS_ANTHROPIC_KEY / WALLRAS_GEMINI_KEY), which stay on your machine.

SDK

from wallras_sdk import Wallras
w = Wallras("http://localhost:8080", token="your WALLRAS_APP_TOKEN")
w.report(model="llama-3.1-8b", prompt=prompt, answer=text,
         tokens=Wallras.tokens_from_openai(response["choices"][0]["logprobs"]["content"]))

Reports go in the background and never raise into your code. See the docs for traces, decision records and prompts.

Try a hub with two nodes

examples/docker-compose.hub.yml starts one hub and two nodes on your machine:

docker compose -f examples/docker-compose.hub.yml up -d

Send requests to a node (http://localhost:8081/v1 or :8082, with your provider key), then open http://localhost:8080/wallras/ui and the Nodes tab.

Try active-active

examples/docker-compose.active.yml starts Postgres, three Wallras containers and a load balancer. Any container answers any request, and together they keep one tamper-evident record:

docker compose -f examples/docker-compose.active.yml up -d

Send requests to http://localhost:8080/v1, then ask the MCP server's wallras_fleet tool (or GET /wallras/fleet) which containers answered.

Issues

Bugs and ideas for the clients, or for Wallras itself: open an issue. Security reports: see SECURITY.md, not public issues.

MIT licensed. The files here are copies of the ones published with each Wallras release.

Metadata

Release files for wallras 0.20.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for wallras 0.20.1
File Size Uploaded Provenance Actions
wallras-0.20.1.tar.gz 13.3 kB Without provenance Details for wallras-0.20.1.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for wallras 0.20.1
File Interpreter ABI Platform Actions
wallras-0.20.1-py3-none-any.whl Python 3 none any Details for wallras-0.20.1-py3-none-any.whl

Total release size: 28.0 kB

Release files / wallras-0.20.1.tar.gz

Download URL wallras-0.20.1.tar.gz
Size 13.3 kB
Tags Source
SHA-256 checksum
How to use checksums
8732a009f707d627a0d07433141d894b153fe0b2dc5df5040b287ab680d8b836
BLAKE2b-256 checksum
How to use checksums
b6f9515a682aa7252eb70c2a1eeed67b563a30d3a325233b5d00f8b746fbee63
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.3

Release files / wallras-0.20.1-py3-none-any.whl

Download URL wallras-0.20.1-py3-none-any.whl
Size 14.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
7bef742037882c4d369ede7e3d8778d317172a709ea5bcb45f4da73d4e6571b3
BLAKE2b-256 checksum
How to use checksums
9ddc3d48103a326f171a50c7ba6ad2cb5851de1ee239a4f8b165464401acf059
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.3

Security for wallras 0.20.1

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.

No provenance found

None of the files in this release were uploaded with provenance metadata.

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.

Release history Release notifications | RSS feed

This release

0.20.1 This release

2 release files No provenance

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