Skip to main content
Glama
ProSuite

prosuite-mcp

Official
by ProSuite

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.

Related MCP server: QGIS MCP

Configuration

Environment variable

Default

Description

PROSUITE_HOST

localhost

ProSuite service host

PROSUITE_PORT

5151

ProSuite service port

PROSUITE_SSL_CERT_PATH

(none)

Path to PEM certificate for TLS

Usage

Windows users: start at docs/windows-setup.md.

  • CLI coding agents (Claude Code, Copilot CLI, opencode): see docs/cli-clients.md

  • Any other MCP client (Claude Desktop, other GUI apps, or anything else): see docs/gui-clients.md

  • No coding agent permitted? An experimental example drives the same tools from any OpenAI-compatible LLM, local or hosted: see docs/local-llm.md

Tools

Every tool is defined in src/prosuite_mcp/tools.py: its docstring is the authoritative description, the same one your MCP client shows the LLM.

Example

Once connected, you talk to the assistant in plain language:

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

With a spec loaded, the assistant calls describe_spec to see which specifications and workspaces it defines, then run_xml_verification to run one against your data, and returns a summary of errors per condition. The spec goes to the ProSuite service as-is, so per-condition filters and defaults are applied exactly as your domain experts configured them. search_spec browses the conditions in a spec by keyword.

list_datasets and describe_dataset read the geodatabase itself, so the assistant can pick conditions from the actual geometry type, feature count and field names rather than from a dataset's name. These read the path on the machine running this server, which need not be the one the ProSuite service resolves paths on.

list_conditions and describe_condition are enriched with the ProSuite QA Quick Reference: each test gains the readable description and the test family it belongs to, and searches match that wording rather than only the API docstring. The document is downloaded in the background when the server starts, and a lookup never waits for it, so calls made before it lands, or on a host that cannot reach it, return the same output as before without the enrichment.

Without a spec, the assistant uses list_conditions and describe_condition to find and configure conditions from scratch, then run_verification to run them ad-hoc. Datasets take a filter_expression here too, but only one per dataset per run, so a spec that filters the same feature class differently in two conditions cannot be reproduced this way.

Development

See docs/development.md.

Available Tools

9 tools
add_condition_to_specA

Preview adding a new QualityCondition to a spec, reusing an existing descriptor.

Builds the condition through the same prosuite factory as run_verification, resolves a matching (never synthesizes one), and returns the full updated spec XML with the condition appended and wired into target_specification_name. Preview only: never writes to a file. Call describe_spec first for valid specification/workspace/dataset names.

Args: target_specification_name: QualitySpecification to wire the condition into. name: Human-readable condition name; must not already exist in the spec. condition_request: {condition: method name from list_conditions, params: dict}. datasets: Feature classes/tables used by condition_request, each with 'name' and an optional 'filter_expression'. workspace_id: Logical workspace id to bind datasets to (e.g. "DATA_OSM"). allow_errors: Whether issues from this condition are tolerated. description: Optional description element. spec_xml: Spec XML text; defaults to reading the active spec (the one load_spec was last called with, otherwise PROSUITE_SPEC_PATH). category: Which category to file the condition under. Only needed when the spec nests QualityConditions under more than one.

Returns 'status': 'ok' with 'spec_xml' holding the updated spec, ready to review and persist yourself, or 'status': 'error'.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
categoryNo
datasetsYes
spec_xmlNo
descriptionNo
allow_errorsNo
workspace_idYes
condition_requestYes
target_specification_nameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description fully carries the transparency burden. It discloses critical behavior: it 'never synthesizes' a descriptor, 'never writes to a file', defaults spec_xml to the active spec or PROSUITE_SPEC_PATH, and returns structured status. It also warns that the name 'must not already exist' and that category is only needed for multi-category specs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately verbose for 9 parameters and a complex preview operation. It front-loads the core purpose in the first sentence, then organizes details into a clear Args block. No extraneous fluff; every sentence contributes value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity, no annotations, and the existence of an output schema, the description is complete. It explains return values, side-effect-free behavior, prerequisites, and parameter semantics. It even mentions how to persist the result ('ready to review and persist yourself'), fulfilling the contextual needs for safe invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, but the Args section compensates entirely by adding semantic meaning to every parameter. For example, condition_request is explained as '{condition: method name from list_conditions, params: dict}', datasets are described as 'Feature classes/tables', and spec_xml's default behavior is fully specified. This exceeds what the schema alone provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Preview adding a new QualityCondition to a spec, reusing an existing descriptor.' It clearly distinguishes itself from siblings by stating it is 'Preview only: never writes to a file' and referencing run_verification for context, making the tool's scope unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description advises to 'Call describe_spec first for valid specification/workspace/dataset names' and clearly states this is a preview that returns XML for the user to persist. However, it stops short of explicitly naming alternative tools (like preview_condition_run or run_verification) and explaining when to use them instead.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

describe_conditionA

Describe the parameters of a ProSuite quality condition.

Returns the full docstring and parameter list with types. Dataset parameters expect a dataset name string (must match a name in the datasets list you will pass to run_verification). Primitive parameters take their direct value (number, bool, string).

Parameters marked optional may be left out of run_verification's params: ProSuite applies its own default. Everything else must be supplied.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It discloses that the tool returns a docstring and parameter list with types, explains parameter types (dataset names must match, primitives take direct values), and notes that optional parameters get defaults. No mention of auth or rate limits, but appropriate for a describing tool. No contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the purpose and returns overview. It then adds relevant usage details about parameter interpretation for run_verification. While efficient, the extra details could be considered tangential, preventing a perfect 5.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has one input parameter and an output schema. The description covers what the tool returns (docstring, parameter list) and provides crucial context for using those parameters with run_verification. However, it omits an explicit definition of the 'name' parameter, leaving a minor gap in completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The sole input parameter 'name' (string required) is not explained in the description. Despite 0% schema description coverage, the description does not compensate for this parameter. It instead discusses parameters of the condition being described, which are not part of the input schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Describe the parameters of a ProSuite quality condition' and mentions 'Returns the full docstring and parameter list with types.' This explicitly differentiates from siblings like list_conditions (lists conditions) and describe_spec (describes a spec).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for usage: it returns parameter information needed for run_verification, with details on how to interpret dataset vs primitive parameters and optional defaults. However, no explicit when-not-to-use or comparison with alternative tools, so not a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

describe_specA

Describe the loaded QA spec file: available specifications, workspace definitions, and per-specification summary of conditions, workspace IDs, and dataset names.

Call this before run_xml_verification to learn:

  • Which specification_name values exist in the spec (pass one to run_xml_verification)

  • Which workspace_id values need to be replaced with real paths

  • Which datasets each specification expects (useful for sanity-checking the workspace)

Describes whichever spec is active: the one load_spec was last called with, otherwise PROSUITE_SPEC_PATH. Returns 'status': 'ok' or 'error'.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description must disclose behavior. It mentions that it describes the active spec and returns 'ok' or 'error', but does not explicitly state that it is a read-only operation or discuss potential errors beyond status. Adequate but could be more transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Concise description with purpose front-loaded. Four sentences efficiently convey purpose, usage context, and return status without extraneous detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given zero parameters and no output schema, the description sufficiently covers the tool's role within the sibling set, especially its relationship to run_xml_verification. Lacks error details but is otherwise complete for its complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist, so baseline 4. The description explains what the tool does without schema reliance, adding value by clarifying the scope of description (specifications, workspaces, datasets).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: describing the loaded QA spec file, including available specifications, workspace definitions, and per-specification summary. This distinguishes it from siblings like list_conditions (individual conditions) and describe_condition (specific condition).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly advises calling this before run_xml_verification to learn specification names, workspace IDs, and dataset names. It also clarifies which spec is described (active from load_spec or default path). Lacks explicit when-not-to-use or alternative tools, but the guidance is clear and actionable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_conditionsA

List available ProSuite quality conditions.

Returns condition names and their one-line description. Use search to filter by keyword (matched against name and description). Pass a result name to describe_condition to get full parameter details before building a run_verification call.

ParametersJSON Schema
NameRequiredDescriptionDefault
searchNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description effectively communicates the read-only nature of listing conditions and the return format (names and descriptions). It could be slightly more explicit about being non-destructive, but the behavior is clear. No annotations exist, so the description carries the full burden adequately.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three concise sentences with no wasted words. The purpose is front-loaded, and follow-up actions are efficiently described.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is complete given the tool's simplicity (1 optional parameter with default, no required fields, output schema exists). It provides enough context for an AI agent to correctly select and invoke the tool among siblings.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The only parameter 'search' is explained in the description: it filters by keyword matched against name and description. This adds significant meaning beyond the schema name 'Search' alone, compensating for 0% schema description coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists available ProSuite quality conditions, providing condition names and one-line descriptions. It distinguishes from siblings like describe_condition which provides full parameter details, and run_verification for execution.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly mentions using the search parameter to filter by keyword, and advises passing a result name to describe_condition for full details before building a run_verification call, guiding proper usage and tool chaining.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

load_specA

Load a .qa.xml spec file at runtime.

Replaces any previously loaded spec, and takes precedence over PROSUITE_SPEC_PATH, so every subsequent spec tool (search_spec, describe_spec, add_condition_to_spec, run_xml_verification) uses the new file. Use this when the spec path is only known at conversation time (e.g. a file on OneDrive or a network share) instead of pre-configuring PROSUITE_SPEC_PATH.

Args: path: Absolute path to the .qa.xml spec file on the local machine.

Returns 'status': 'ok' with 'conditions_loaded', or 'status': 'error'.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes

TDQS

A4.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It discloses key behaviors: replaces any previously loaded spec, takes precedence over PROSUITE_SPEC_PATH, and returns status with conditions_loaded or error. It does not explicitly mention file access permissions or error handling details, but covers the essential behavioral traits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and well-structured: first sentence states purpose, second paragraph explains side effects and precedence, third gives usage guidance, and then a clear bullet for the argument and return value. No redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (one param, no output schema, no annotations), the description is complete. It covers the action, side effects, usage context, parameter details, and return value. It also mentions which sibling tools will use the loaded spec, providing full context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0% description coverage for the single parameter 'path'. The description compensates fully by specifying that the path must be an absolute path to a .qa.xml file on the local machine, adding meaning beyond the schema's type and title.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool loads a .qa.xml spec file at runtime, using a specific verb and resource. It distinguishes from sibling tools (which operate on an already-loaded spec) by emphasizing that this tool replaces any previously loaded spec and sets the file for subsequent spec operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance on when to use this tool: when the spec path is only known at conversation time (e.g., a file on OneDrive) instead of pre-configuring PROSUITE_SPEC_PATH. It also explains that subsequent spec tools use the new file, implying when not to use (if the path is already configured).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

preview_condition_runA

Run a single proposed condition ad-hoc and show what it actually flags.

Tier-2 confirmation for spec authoring: add_condition_to_spec only confirms a condition builds and references an existing descriptor. This runs it for real against model_catalog_path and returns the same engine-confirmed summary as run_verification (engine_confirmed, total_errors, sample_features with the actual flagged issues), so a proposed condition can be judged by what it flags before it's merged into a spec. Scope envelope to a small extent to keep this a preview, not a full run.

Args: model_catalog_path: Workspace path on the server, e.g. 'C:/data/mydb.gdb' or a .sde connection file. condition_request: {condition: method name from list_conditions, params: dict}. datasets: Feature classes/tables used by condition_request, each with 'name' and an optional 'filter_expression'. workspace_id: Logical name for the data model (arbitrary, used in generated condition names). output_dir: Optional server-side directory for Issues.gdb and HTML report. Omitted, a local runs/ directory is used only when PROSUITE_HOST is local, since the service resolves the path. envelope: Optional spatial filter {x_min, y_min, x_max, y_max}.

ParametersJSON Schema
NameRequiredDescriptionDefault
datasetsYes
envelopeNo
output_dirNo
workspace_idYes
condition_requestYes
model_catalog_pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden. It discloses that this runs the condition for real, returns engine-confirmed summary like run_verification, and describes output_dir behavior based on local vs server. This adds significant behavioral context beyond the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with purpose and guidelines, then uses a bulleted 'Args' section for parameters. While slightly verbose, every sentence adds value; the structure aids readability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations, 6 parameters, and an output schema (not shown), the description comprehensively covers purpose, usage, parameters, and return value (referencing run_verification output). It leaves minimal gaps for the agent to infer.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It provides detailed explanations for all 6 parameters, including path examples, the structure of condition_request, envelope format, and output_dir behavior. This far exceeds minimal requirements.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool runs a proposed condition ad-hoc and shows what it flags. It distinguishes itself from add_condition_to_spec (which only confirms build/descriptor) and run_verification (which runs full verification), establishing a unique purpose as a preview tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says this is 'Tier-2 confirmation for spec authoring' to be used after add_condition_to_spec, and contrasts with run_verification. It advises to scope envelope to keep it a preview, providing clear when-to-use and limitations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

run_verificationA

Run a ProSuite quality verification.

Build an ad-hoc condition-list specification and run it against the given workspace. The ProSuite service (prosuite-qa-microservice) must be reachable at the host/port configured via PROSUITE_HOST / PROSUITE_PORT environment variables (default: localhost:5151).

Args: model_catalog_path: Workspace path on the server, e.g. 'C:/data/mydb.gdb' or a .sde connection file. model_name: Logical name for the data model (arbitrary, used in generated condition names). datasets: Feature classes or tables to make available for conditions. Each entry has a 'name' (feature class name) and an optional 'filter_expression' (SQL WHERE clause). conditions: Conditions to run. Each entry has: - condition: method name from list_conditions (e.g. 'qa_min_length_0') - params: dict mapping parameter names to values. Dataset parameters take a string matching a name in 'datasets'; primitive parameters take their direct value. output_dir: Optional server-side directory for Issues.gdb and HTML report; the service process must have write access. Omitted, a local runs/ directory is used only when PROSUITE_HOST is local, since the path is resolved on the service's machine. envelope: Optional spatial filter {x_min, y_min, x_max, y_max}. Omit for full-extent verification.

Returns a summary with status, total_errors, and per-condition breakdown. Check 'status': 'error' for connection or parameter failures.

ParametersJSON Schema
NameRequiredDescriptionDefault
datasetsYes
envelopeNo
conditionsYes
model_nameYes
output_dirNo
model_catalog_pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description fully covers behavioral traits: it explains the output format including status, total_errors, and per-condition breakdown, error handling via 'status': 'error', and special behavior for output_dir (only defaults to local runs/ when PROSUITE_HOST is local). Also discloses the envelope spatial filter.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with paragraphs and bullet points, using clear labels like 'Args:' and 'Returns:'. Every sentence provides necessary detail without redundancy. It is concise yet comprehensive for a complex tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (6 parameters, nested objects, output schema not shown), the description covers prerequisites, all parameters with special cases, return format, and error handling. It leaves no critical gaps for an AI agent to invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds substantial meaning beyond the input schema, which has 0% coverage. It explains each parameter's purpose, format, and examples: model_catalog_path as server workspace path, datasets with optional filter_expression, conditions with method names and params, output_dir with server-side write access caveat, and envelope as spatial filter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb 'Run' and resource 'ProSuite quality verification', clearly stating its purpose. It differentiates from siblings like list_conditions and preview_condition_run by focusing on executing an ad-hoc condition list against a workspace.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains the prerequisite environment variables (PROSUITE_HOST/PROSUITE_PORT) and the service reachability requirement. It does not explicitly state when to avoid this tool or suggest alternatives, but the context of building an ad-hoc condition list vs. running pre-defined specs is implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

run_xml_verificationA

Run a ProSuite quality verification directly from the loaded XML spec file.

Unlike run_verification, this tool sends the XML spec to the ProSuite service as-is, without decomposing it into individual conditions and datasets. This preserves per-condition dataset filters, default scalar values, and all other spec details exactly as configured.

Use search_spec (with empty query) to discover available specification_name values and workspace_id keys that need to be replaced.

Args: specification_name: Name of the QualitySpecification element inside the XML file to run (e.g. 'Copy of DATA_OSM_10_Demo'). data_source_replacements: Maps each workspace_id in the XML to the actual workspace path on the ProSuite server. Example: [{"workspace_id": "DATA_OSM", "workspace_path": "C:/data/osm.sde"}] output_dir: Optional server-side directory for Issues.gdb and HTML report. Omitted, a local runs/ directory is used only when PROSUITE_HOST is local, since the service resolves the path. envelope: Optional spatial filter {x_min, y_min, x_max, y_max}.

Returns a summary with status, total_errors, and per-condition breakdown. Runs whichever spec is active: the one load_spec was last called with, otherwise PROSUITE_SPEC_PATH.

ParametersJSON Schema
NameRequiredDescriptionDefault
envelopeNo
output_dirNo
specification_nameYes
data_source_replacementsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It discloses that the tool runs from the loaded XML spec file, preserves per-condition dataset filters and defaults, and details the behavior of output_dir and spec active selection (last loaded or PROSUITE_SPEC_PATH). No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Well-structured with an overview, differentiation, prerequisite guidance, and a clear 'Args' section. Efficient use of language without unnecessary words. Could be slightly more concise but overall effective.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers purpose, behavior, usage, parameter meanings, and output summary. Given that an output schema exists (context indicates true), the description appropriately mentions the return format without over-specifying. Sufficient for a tool with complex parameters and nested objects.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, but the description explains all four parameters in detail, including examples for data_source_replacements and envelope format. Fully compensates for the missing schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states 'Run a ProSuite quality verification directly from the loaded XML spec file.' Differentiates from sibling tool run_verification by explaining that this tool sends the XML as-is without decomposing, preserving details like filters and defaults.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly contrasts with run_verification, telling when to use this tool over the alternative. Provides a prerequisite hint: 'Use search_spec (with empty query) to discover available specification_name values and workspace_id keys.' Lacks explicit when-not-to-use or other sibling exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_specA

Search the loaded QA spec for conditions matching a natural-language query.

Returns up to max_results conditions whose name, description, or category contains the query string (case-insensitive, literal substring match, not semantic). Spec content may be in English, German, French, or Italian -- query in the same language as the spec to find matches.

Each result includes:

  • name: the full condition name (human-readable rule statement)

  • category: domain grouping from the spec

  • allow_errors: False means a hard failure, True means tolerated

  • condition_request: ready to pass directly into run_verification's conditions list (includes condition method name and pre-filled params)

  • required_datasets: dataset names and filter expressions to include in run_verification's datasets list

A result carrying 'unsupported': True has neither of those last two: the programmatic path cannot rebuild it (transformer preprocessing, or no factory method). It is listed so browsing sees the whole spec, and it still runs normally under run_xml_verification, which reads the spec as written.

Searches whichever spec is active: the one load_spec was last called with, otherwise PROSUITE_SPEC_PATH. Returns 'status': 'ok' or 'error'.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes
max_resultsNo

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description fully discloses key behaviors: case-insensitive literal matching, max_results cutoff, the meaning of allow_errors, the 'unsupported' flag and its implications for run_verification vs run_xml_verification, and the active spec resolution. This goes well beyond a simple summary.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is organized into clear sections: purpose, matching behavior, result fields, unsupported note, and active spec context. Each sentence adds information without redundancy; it is appropriately sized for a tool with no output schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers output structure (result fields, status), edge cases (unsupported), and environmental dependence (active spec), which is sufficient for an agent to invoke correctly. There is no output schema, so this level of detail is necessary and complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Although the schema only provides titles, the description explains query as a natural-language string matched against name, description, or category, and max_results as the cap on returned results. It also clarifies the language requirement, which is not evident from the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states 'Search the loaded QA spec for conditions matching a natural-language query.' It specifies the resource (QA spec), the action (search), and the output type (conditions). The subsequent details about literal substring matching and language support further distinguish it from sibling tools like list_conditions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains the search semantics (literal substring, not semantic) and notes the active spec selection behavior, giving users context for when to invoke it. It does not explicitly name alternatives, but the behavior description implies it is for finding specific conditions, as opposed to listing or describing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 1 tool updatev0.2.2
    • Changedadd_condition_to_spec1 field changed
      • addedInput schema / properties / category
        Added value: +{
        +  "default": "",
        +  "title": "Category",
        +  "type": "string"
        +}
  2. 2 tool updates
    • Changedadd_condition_to_spec4 fields changed
      • addedOutput schema / additionalProperties
        Added value: +true
      • removedOutput schema / properties
        Removed value: -{
        -  "result": {
        -    "title": "Result",
        -    "type": "string"
        -  }
        -}
      • removedOutput schema / required
        Removed value: -[
        -  "result"
        -]
      • changedOutput schema / title
        Previous value: -"add_condition_to_specOutput"New value: +"add_condition_to_specDictOutput"
    • Removedcondition_to_xml
  3. 1 tool updatev0.1.1
    • Addedadd_condition_to_spec
  4. 2 tool updates
    • Addedcondition_to_xml
    • Addedpreview_condition_run
  5. 7 tool updatesv0.1.0
    • First observeddescribe_condition
    • First observeddescribe_spec
    • First observedlist_conditions
    • First observedload_spec
    • First observedrun_verification
    • First observedrun_xml_verification
    • First observedsearch_spec

TDQS

A4.4/5.0
Disambiguation4/5

Most tools have clearly distinct purposes: listing/describing conditions versus describing/searching/loading specs versus running verifications. However, run_verification and run_xml_verification both execute verifications and could be confused if an agent doesn't carefully read the parameter differences, and preview_condition_run partially overlaps with run_verification.

Naming Consistency5/5

All tool names follow a consistent snake_case verb_noun pattern: list_conditions, describe_condition, describe_spec, search_spec, load_spec, add_condition_to_spec, run_verification, preview_condition_run, run_xml_verification. The only slight outlier is preview_condition_run, but it still fits the pattern well.

Tool Count5/5

With 9 tools, the server is well-scoped for its purpose. Each tool addresses a distinct stage in the QA workflow—discovery, spec management, ad-hoc running, and XML-based running—without unnecessary bulk or gaps that would require extra tools.

Completeness4/5

The toolset covers the core lifecycle: listing conditions, describing them, loading/describing/searching specs, previewing condition additions, and running verifications (both ad-hoc and XML). The main gaps are the lack of a persistent save/update operation for specs (add_condition_to_spec only previews) and no tool for retrieving past verification results or reports.

Maintenance

ActivityActive
ResponsivenessUnresponsive

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    B
    maintenance
    A Model Context Protocol server that connects Large Language Models to the GeoServer REST API, enabling AI assistants to query and manipulate geospatial data through natural language.
    9
    88
    MIT
  • A
    license
    B
    quality
    A
    maintenance
    An MCP server that enables AI assistants to directly control QGIS for tasks like layer management, feature editing, and map rendering. It provides a suite of 50 tools to execute processing algorithms and manage GIS projects through natural language commands.
    118
    267
    GPL 2.0
  • A
    license
    Not graded
    quality
    B
    maintenance
    A Model Context Protocol (MCP) server that exposes GeoServer REST API functionality for natural language interaction through AI assistants like Claude, VS Code Copilot, and other MCP-compatible clients.
    BSD 2-Clause "Simplified"

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ProSuite/prosuite-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server