Skip to main content

prosuite-mcp

MCP server that exposes Dira ProSuite quality verification to AI assistants (Claude, etc.).

Prerequisites

A running ProSuite Quality Verification Server reachable from the host where this server runs.

Configuration

Environment variable Default Description
PROSUITE_HOST localhost ProSuite service host
PROSUITE_PORT 5151 ProSuite service port
PROSUITE_SSL_CERT_PATH Path to PEM certificate for TLS

Usage

Windows users: see docs/windows-setup.md for a step-by-step guide including uv and Claude Code installation.

Both options below assume you create a project directory first:

mkdir mytest
cd mytest
uv init --python 3.12
uv add prosuite-mcp

Claude Code CLI

Register the server from inside mytest, then start Claude:

claude mcp add prosuite \
  -e PROSUITE_HOST=localhost \
  -e PROSUITE_PORT=5151 \
  -- uv run prosuite-mcp

claude

The -- uv run prosuite-mcp tells Claude Code to start the MCP server via uv run in the current project, so prosuite-mcp is resolved from the local .venv. Run claude from the same mytest directory each time.

Copilot CLI

Register the server from inside mytest, then start Copilot:

copilot mcp add prosuite \
  -e PROSUITE_HOST=localhost \
  -e PROSUITE_PORT=5151 \
  -- uv run prosuite-mcp

Tools

load_spec <path> — Loads a .qa.xml spec file. Call this at the start of a session with the path to your spec (local drive, OneDrive, network share). Replaces any previously loaded spec.

describe_spec — Describes the loaded spec: available specification_name values, workspace_id keys that need path substitutions, and per-specification dataset lists. Call this before run_xml_verification.

search_spec <query> [max_results] — Searches the loaded .qa.xml spec for conditions matching a natural-language query (English, German, French, Italian). Returns up to max_results (default 20) matching conditions with pre-filled condition_request blocks ready to pass directly to run_verification, plus the required_datasets list. Requires a spec to be loaded first via load_spec.

run_xml_verification — Runs a named QualitySpecification directly from the loaded XML spec, with workspace path substitutions. Unlike run_verification, the XML is sent to ProSuite as-is, preserving per-condition dataset filters and all other spec details exactly as configured. Preferred whenever a .qa.xml spec exists.

list_conditions [search] — Lists available quality conditions. Pass a keyword to filter by name or description.

describe_condition <name> — Shows the full docstring and parameter list for a condition, including which parameters expect dataset names vs. primitive values.

run_verification — Runs an ad-hoc quality verification against a workspace. Key parameters:

Parameter Type Description
model_catalog_path string Workspace path on the server (C:/data/my.gdb, .sde file, …)
model_name string Logical name for the data model
datasets list Feature classes/tables: {name, filter_expression?}
conditions list Conditions to run: {condition, params}
output_dir string? Server-side directory for Issues.gdb and HTML report
envelope object? Spatial filter {x_min, y_min, x_max, y_max}

Returns a summary with status, total_errors, and a per-condition breakdown.

condition_to_xml — Previews the <QualityCondition> XML for a single condition, without touching any spec. Requires an existing test_descriptor alias (e.g. MinLength(1)); does not look one up for you. Mainly useful for inspecting parameter serialization in isolation — add_condition_to_spec is the tool for actually adding a condition to a spec.

add_condition_to_spec — Previews adding a new QualityCondition to a spec: resolves an existing <TestDescriptor> whose test class matches (never synthesizes one), and returns the full updated spec XML with the condition appended and wired into the named QualitySpecification. Pure preview — it never writes to a file, so review the result before persisting it. Reads the currently loaded/configured spec unless spec_xml is passed explicitly.

preview_condition_run — Runs a single proposed condition ad-hoc and returns the actual flagged features (same summary shape as run_verification), so a condition from add_condition_to_spec can be judged by what it flags before being merged into a spec, not just by whether it builds.

Example

Once connected, you talk to Claude in plain language:

Check road connectivity in C:/data/tlm.sde.

With a spec loaded, Claude calls search_spec to find the relevant pre-configured conditions from the .qa.xml file, then calls run_verification with the pre-filled parameters and returns a summary of errors per condition.

Without a spec, Claude uses list_conditions and describe_condition to find and configure conditions from scratch.

Development

uv sync --dev
uv run pytest
uv run ruff check src
uv run pyright src

License

MIT — see LICENSE.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

prosuite_mcp-0.1.1.tar.gz (27.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

prosuite_mcp-0.1.1-py3-none-any.whl (17.3 kB view details)

Uploaded Python 3

File details

Details for the file prosuite_mcp-0.1.1.tar.gz.

File metadata

  • Download URL: prosuite_mcp-0.1.1.tar.gz
  • Upload date:
  • Size: 27.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.0 {"installer":{"name":"uv","version":"0.12.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for prosuite_mcp-0.1.1.tar.gz
Algorithm Hash digest
SHA256 84a1adaf3f680dff8be720bbbc97b903720c64969111dc81ac182e9f66dd1dcb
MD5 e59bd4c89f7b58028847a0757d8771a8
BLAKE2b-256 85763288749710884f48b9d41fd9ccda1b01cd4bf13f73846f2df6c9f21001c0

See more details on using hashes here.

File details

Details for the file prosuite_mcp-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: prosuite_mcp-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 17.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.0 {"installer":{"name":"uv","version":"0.12.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for prosuite_mcp-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 b05e7decd00f5cf067ac7dea37f029074ae692c4079d926fb0952e99ad36f4e1
MD5 dca3a84beab10c26f3c8c2ccab914e3a
BLAKE2b-256 2b8a7b9c3dc2007ac3c4b0eacf163b0a7a83abb2ffc0474bb7309f799594db74

See more details on using hashes here.

Release history Release notifications | RSS feed

0.2.3

2 files

0.2.2

2 files

0.2.1

2 files

0.2.0

2 files

This release

0.1.1 This release

2 files

0.1.0

2 files

0.0.6

2 files

0.0.5

2 files

0.0.4

2 files

0.0.3

2 files

0.0.2

2 files

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