Skip to main content

MCP server for Dira ProSuite quality verification

Project description

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.

Project details


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.0.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.0-py3-none-any.whl (17.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: prosuite_mcp-0.1.0.tar.gz
  • Upload date:
  • Size: 27.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.29 {"installer":{"name":"uv","version":"0.11.29","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.0.tar.gz
Algorithm Hash digest
SHA256 a51fc03e1b07cee36809e9114db2618391b7317f92770f79912ef64f4fc88559
MD5 997e264db701d1f135d802a42a804034
BLAKE2b-256 c7871371a9ebc6992feecae7cc78db7264cb66910c7cef4498a711fa09809edb

See more details on using hashes here.

File details

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

File metadata

  • Download URL: prosuite_mcp-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 17.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.29 {"installer":{"name":"uv","version":"0.11.29","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.0-py3-none-any.whl
Algorithm Hash digest
SHA256 469b6e44a77b2fa0a88b4249bc9ee31e1746e6504be45e8bf7334961636c9363
MD5 585a0faf3515d20d543d9b553c0106a4
BLAKE2b-256 6d81edbb698c3ed0be7efc713a2167b3752eae8607e8fa3c4e4f0555458ff7e7

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page