Skip to main content
Glama

pycycle-mcp

CI Docs Examples

pycycle-mcp is a lightweight Model Context Protocol server for pyCycle/OpenMDAO engine-cycle workflows. The repository includes deterministic examples/tests so local development and CI can validate tooling contracts without requiring a full runtime installation of pyCycle/OpenMDAO assets.

Overview

The project currently provides:

  • A FastMCP-powered server with stdio and HTTP-compatible transports.

  • Tooling for cycle lifecycle, variable inspection/updates, execution, sweeps, and total-derivative evaluation.

  • Pydantic-backed validation with structured MCP-style error payloads.

  • Deterministic examples for repository scaffolding checks and smoke tests.

Related MCP server: MCP Python Server

Quickstart

Requires Python 3.12+.

python3 -m venv .venv
source .venv/bin/activate
make dev
make test
make ci

Start the server over stdio:

pycycle-mcp --transport stdio

Inspect the non-blocking HTTP transport configuration example:

PYTHONPATH=src python3 examples/server/http_launch_config.py

Examples

The examples are deterministic and aligned with the current repository contracts.

Docs

Build the docs locally with:

make docs

Python API Rename

The package import root is now:

  • pycycle_mcp (new)

Legacy pre-rename import paths and CLI aliases are intentionally removed.

Shared-CPACS Integration

This MCP includes a CPACS adapter (src/pycycle_mcp/cpacs_adapter.py) that bridges pyCycle to the shared-CPACS aircraft analysis pipeline.

What it does

The adapter reads engine parameters and aerodynamic drag from CPACS, runs a real OpenMDAO/pyCycle turbofan cycle analysis, and writes performance results — net thrust, TSFC, OPR, BPR, fuel flow — into //mcpResults.

Direction

XPath

Reads

.//vehicles/engines, .//analysisResults/aero/coefficients/CD

Writes

.//vehicles/engines/engine/analysis/mcpResults (Fn_DES, Fn, TSFC, OPR, BPR, fuel flow)

Design-thrust override (engine sizing)

run_adapter(..., design_thrust_lbf=<float>) is an additive option that drives the cycle to an explicit design net thrust Fn_DES instead of deriving it from CPACS aero drag. This is the entry point used by the agent's engine-resizing and cruise-match skills to iterate on engine size (the achieved Fn_DES_lbf is echoed back in the results). The classic drag-derived path is unchanged when the argument is omitted.

Running as part of the pipeline

python pipeline/shared_cpacs_orchestrator.py D150_v30.xml --mcps tigl su2 pycycle mission

See cmudrc/aircraft-analysis for full pipeline documentation, versioning details, and installation instructions.

MCP

Repository

TiGL (geometry)

cmudrc/tigl-mcp

SU2 (CFD aerodynamics)

cmudrc/su2-mcp

Mission (trajectory/fuel)

cmudrc/mission-mcp

Contributing

Contribution guidelines live in CONTRIBUTING.md.

Available Tools

10 tools
close_cycle_modelClose cycle modelA
Destructive

Close a pyCycle session and free resources.

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNo
successNo

TDQS

A3.6/5.0
Behavior3/5

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

The annotation destructiveHint=true already signals the destructive nature. The description adds that it closes and frees resources, but does not disclose that the session becomes invalid, whether operations can continue after closing, or how errors are handled. No contradiction with annotations.

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 a single, front-loaded sentence containing the verb, resource, and effect. There is no unnecessary verbiage; every word earns its place.

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

Completeness3/5

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

The tool is simple with one parameter, an output schema exists, and the destructive annotation is provided. The description covers the core purpose but omits important lifecycle context such as requiring a session created by create_cycle_model, one-time close semantics, and resource cleanup implications.

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 input schema has one required parameter session_id with no description and 0% schema coverage. The description's phrase 'a pyCycle session' vaguely implies session_id identifies which session to close, but it does not explain where to get the ID, that the session must be active, or any constraints.

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 a specific action ('Close') on a specific resource ('a pyCycle session') and the effect ('free resources'). This distinguishes it from sibling tools like create_cycle_model, run_cycle, or get_cycle_summary.

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

Usage Guidelines3/5

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

The phrase 'free resources' implies the tool should be used when a session is no longer needed, but the description does not explicitly say when to call it, mention that it should follow session creation, or provide any exclusions or alternatives.

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

compute_totalsCompute totalsC
Read-only

Compute total derivatives using OpenMDAO.

ParametersJSON Schema
NameRequiredDescriptionDefault
ofYes
wrtYes
session_idYes
return_formatNoby_pair

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNo
jacobianNo
messagesNo

TDQS

C2.9/5.0
Behavior3/5

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

Annotations declare readOnlyHint=true, so the safety profile is already known. The description adds context that this involves OpenMDAO, implying computational work, but it does not disclose return format, performance characteristics, or potential side effects beyond the annotation. No contradiction with annotations.

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 a single, efficient sentence with no filler. Every word contributes to stating the tool's purpose.

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

Completeness2/5

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

While an output schema exists (reducing the need to explain return values), the description omits essential context for correct invocation: what 'of' and 'wrt' mean, how session_id works, and when to choose this over sibling tools. The tool appears complex (4 params, array inputs) yet the description is minimal.

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

Parameters1/5

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

Schema description coverage is 0%, meaning the description adds no meaning to the parameters 'of', 'wrt', 'session_id', or 'return_format'. It fails to compensate for the schema's lack of parameter explanations, leaving the agent to guess what these arrays and enums represent.

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

Purpose4/5

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

The description states a clear verb ('compute') and resource ('total derivatives') with a specific framework ('OpenMDAO'). It distinguishes from siblings like run_cycle by focusing on derivative computation, though it doesn't explicitly name alternatives.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives such as run_cycle or sweep_inputs. It does not mention conditions, prerequisites, or exclusions, leaving the agent to infer usage from the tool name alone.

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

create_cycle_modelCreate cycle modelB

Instantiate a pyCycle/OpenMDAO Problem for a specified engine cycle.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeYes
optionsNo
cycle_typeYes
cycle_module_pathNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNo
model_nameNo
session_idNo
top_promoted_inputsNo
top_promoted_outputsNo

TDQS

B3.1/5.0
Behavior2/5

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

Annotations provide no behavioral hints (e.g., readOnly, destructive). The description says 'instantiate' but does not disclose side effects such as whether it creates a new in-memory object, closes previous models, or requires any prerequisites. This leaves the agent without useful behavioral context.

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 a single, front-loaded sentence with no wasted words. It gets straight to the point and is appropriately sized for a one-liner, though the brevity sacrifices information richness.

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

Completeness2/5

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

The tool has four parameters including two required ones, but the description does not explain how to use them. It also does not mention the output, the relationship to sibling tools, or any operational considerations. Given the moderate complexity and lack of annotation support, the description is not complete enough for reliable agent invocation.

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

Parameters1/5

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

The input schema has 0% description coverage and no enums. The description only says 'specified engine cycle,' which vaguely hints at cycle_type but completely omits the meaning and usage of mode, options, and cycle_module_path. No parameter relationships or examples are provided.

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 a specific action ('Instantiate a pyCycle/OpenMDAO Problem') and a specific resource ('for a specified engine cycle'). This distinguishes it from sibling tools like close_cycle_model, get_cycle_summary, and list_variables, which perform other lifecycle or query operations.

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

Usage Guidelines3/5

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

No explicit guidance on when to use this tool versus alternatives. The name and sibling context imply it is the entry point for creating a cycle model before running other operations, but this is not stated, and no exclusions or alternatives are mentioned.

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

get_cycle_summaryGet cycle summaryB
Read-only

Return a succinct summary of the current cycle model.

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
modeNo
errorNo
optionsNo
key_inputsNo
model_nameNo
key_outputsNo

TDQS

B3.2/5.0
Behavior3/5

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

The readOnlyHint annotation already signals a safe read operation, and the description adds the behavior that the output is 'succinct' and scoped to the 'current' cycle model. This adds some context beyond the annotation, but no detail on error behavior or response format.

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 a single, front-loaded sentence with no filler. Every word earns its place, stating the action, output type, and scope efficiently.

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

Completeness3/5

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

Given the tool's low complexity (one parameter) and presence of an output schema, the description is minimally viable for a simple read operation. However, it omits what 'cycle summary' actually contains and any usage context, leaving some ambiguity.

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

Parameters1/5

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

The schema defines session_id as a required string, but schema description coverage is 0%, and the description does not mention the parameter at all. The description fails to compensate 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?

The description uses the specific verb 'Return' and resource 'cycle summary', clearly distinguishing it from sibling tools like get_outputs and list_variables. The phrase 'current cycle model' adds scope and aligns with the title.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives such as get_outputs or run_cycle. It does not mention prerequisites, exclusions, or context where another tool would be preferred.

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

get_outputsGet outputsA
Read-only

Fetch values for one or more outputs after a run.

ParametersJSON Schema
NameRequiredDescriptionDefault
namesYes
session_idYes
allow_missingNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNo
valuesNo
missingNo

TDQS

A3.8/5.0
Behavior3/5

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

With readOnlyHint annotation already indicating a safe read operation, the description adds the useful context that outputs become available only after a run. It does not disclose behavior around missing outputs or the allow_missing parameter, so transparency is moderate.

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 a single, front-loaded sentence with no redundant information. Every word serves a purpose, making it optimally concise.

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

Completeness3/5

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

The tool is simple and an output schema exists, reducing the need to describe return values. However, the description omits details about allow_missing and assumes understanding of session_id, making it adequate but not fully complete.

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?

Schema description coverage is 0%, so the description must compensate for explaining parameters. It only implies that 'names' refers to output names and does not explain session_id or allow_missing, leaving significant gaps for the agent.

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 action (fetch), resource (outputs), and timing (after a run). This differentiates it from siblings like set_inputs and get_cycle_summary, making its purpose 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 phrase 'after a run' provides clear temporal context for when to use the tool. However, it does not explicitly mention alternatives or when not to use it, so it falls short of a 5.

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

list_variablesList variablesC
Read-only

List variables in the cycle model.

ParametersJSON Schema
NameRequiredDescriptionDefault
kindNoboth
session_idYes
name_filterNo
max_variablesNo
promoted_onlyNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNo
variablesNo

TDQS

C2.6/5.0
Behavior2/5

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

The readOnlyHint: true annotation already covers the read-only nature, but the description provides no additional behavioral context such as what variables are included, whether it respects filters, or how results are paginated. The description merely restates the action without extra transparency.

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 extremely concise and front-loaded, with no filler words. It is appropriately short for a simple listing action, though it could add minimal detail without becoming verbose.

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

Completeness2/5

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

With 5 parameters, an output schema, and related sibling tools, the description is insufficiently complete. It does not mention filtering scope, defaults, or use cases, leaving significant gaps. The output schema exists but the description does not help the agent understand how to invoke the tool effectively.

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

Parameters1/5

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

The description adds no meaning for any of the 5 parameters. Schema description coverage is 0%, and the description does not mention kind, name_filter, max_variables, or promoted_only, leaving all parameters undocumented.

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

Purpose4/5

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

The description clearly states the action ('List') and the resource ('variables in the cycle model'), which is specific and distinguishes it from siblings like get_outputs or set_inputs. However, it does not explicitly differentiate its scope (e.g., inputs vs outputs vs both), so it falls short of a 5.

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

Usage Guidelines2/5

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

The description gives no indication of when to use this tool versus alternatives such as get_outputs or get_cycle_summary. It lacks any usage context, prerequisites, or exclusions, leaving the agent to guess.

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

pingPingB
Read-only

Simple healthcheck for the pyCycle MCP server.

ParametersJSON Schema
NameRequiredDescriptionDefault
argsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
serverNoServer identifier.
statusNoSimple health indicator.
messageNoOptional echo message provided by the caller, if any.

TDQS

B3.2/5.0
Behavior3/5

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

The readOnlyHint annotation already signals a safe read operation. The description adds minimal context ('simple healthcheck') but does not elaborate on response behavior or any side effects. It is consistent with the annotation and adds slight value.

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 a single, front-loaded sentence that is appropriately sized for a trivial healthcheck tool. It contains no fluff or redundancy.

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

Completeness3/5

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

For a simple read-only ping with an output schema and read-only annotation, the description is adequate but not complete. It omits any mention of the optional echo message parameter and lacks usage context. However, the core function is clear, and the output schema likely covers return details.

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

Parameters1/5

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

The description does not mention the optional 'args' parameter or the nested 'message' field. With schema_description_coverage at 0% per context, the description fails to compensate for the lack of parameter documentation, leaving the agent without any parameter guidance.

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 is a 'healthcheck' for the 'pyCycle MCP server', using a specific verb and resource. It distinguishes itself from sibling tools, which are all cycle-related operations.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. The description does not mention any exclusions, alternatives, or typical usage scenarios.

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

run_cycleRun cycleC

Run the cycle model and return selected outputs.

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idYes
use_driverNo
outputs_of_interestNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNo
outputsNo
successNo
messagesNo
convergedNo
iterationsNo
residual_normNo

TDQS

C2.5/5.0
Behavior2/5

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

Annotations contain only a title, so the description carries full burden for behavioral disclosure. It does not mention side effects, runtime cost, non-idempotency, or state changes. For a model execution tool, this is a significant gap.

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

Conciseness2/5

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

The single sentence is front-loaded but under-specified rather than appropriately sized. It omits critical usage and behavior details, so it does not earn its place as sufficient content.

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

Completeness2/5

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

With 3 parameters, an output schema, and many sibling tools, the description lacks necessary context such as preconditions, error conditions, or how outputs are returned. It is too sparse for an agent to select it confidently.

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?

Schema description coverage is 0%, and the description only hints at 'selected outputs' (likely outputs_of_interest) without explaining session_id or use_driver. Most parameters are left undocumented.

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

Purpose4/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 ('cycle model') and notes that it returns outputs, which states the core action. However, it does not explicitly distinguish from sibling tools like get_outputs or sweep_inputs, leaving some ambiguity.

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

Usage Guidelines2/5

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

No guidance is provided about when to use this tool vs alternatives, prerequisites (e.g., an existing session from create_cycle_model), or steps like setting inputs first. The description offers no contextual use cases.

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

set_inputsSet inputsB

Set one or more input variables in the cycle model.

ParametersJSON Schema
NameRequiredDescriptionDefault
valuesYes
session_idYes
allow_missingNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNo
skippedNo
updatedNo

TDQS

B3.1/5.0
Behavior2/5

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

Annotations only provide a title, so the description carries the full burden of behavioral disclosure. It mentions only the basic action of setting variables, but does not explain whether values are replaced or merged, whether changes persist across cycles, or what happens with missing inputs. The allow_missing parameter suggests configurable behavior, but the description does not address it.

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 a single, front-loaded sentence that states the core action clearly and efficiently. No unnecessary words or redundancy, making it an appropriately concise description.

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

Completeness2/5

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

Given that this is a mutation tool with no annotations, a nested values object, and no parameter documentation, the description is too sparse. It lacks critical information about session context, merge vs. replace behavior, the meaning of allow_missing, and error conditions. The presence of an output schema does not compensate for these missing operational details.

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

Parameters1/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 by explaining the parameters. It only mentions 'input variables,' which weakly maps to 'values,' but session_id and allow_missing are entirely undocumented. The structure of the values object is also unspecified, leaving the agent without enough information to construct valid input.

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 action: 'Set one or more input variables in the cycle model.' It uses a specific verb and resource, distinguishing it from read-only tools like list_variables and get_outputs, and from sweep_inputs which implies a different use case.

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

Usage Guidelines3/5

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

No explicit guidance is provided on when to use this tool versus alternatives. The verb 'set' implies a mutation use case, but it does not clarify when to choose set_inputs over sweep_inputs or whether it should be called before run_cycle. The purpose is clear but the context of use is left implicit.

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

sweep_inputsSweep inputsC

Perform a parametric sweep over input variables.

ParametersJSON Schema
NameRequiredDescriptionDefault
sweepYes
session_idYes
use_driverNo
skip_on_failureNo
outputs_of_interestNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNo
resultsNo

TDQS

C2.9/5.0
Behavior2/5

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

The description does not disclose side effects, whether it modifies state, or any requirements; with no annotations, the burden falls on the description, which is insufficient.

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 a single, front-loaded sentence with no extraneous content.

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

Completeness2/5

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

The tool has five parameters and likely performs a complex operation, but the description only provides a bare statement of purpose, omitting usage context and parameter behavior; the presence of an output schema doesn't compensate for the missing operational details.

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

Parameters1/5

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

The schema has zero description coverage for the five parameters, and the description does not explain any of them (e.g., session_id, sweep, use_driver, skip_on_failure), leaving the agent without necessary context.

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 action ('Perform a parametric sweep') and the resource ('input variables'), distinguishing it from sibling tools like set_inputs or run_cycle.

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

Usage Guidelines2/5

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

No guidance is provided about when to use this tool versus alternatives such as run_cycle or set_inputs; it simply states the action.

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

TDQS

A3.5/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose: lifecycle management (create/close), configuration (set_inputs), execution (run_cycle, sweep_inputs), analysis (compute_totals, get_outputs), and introspection (get_cycle_summary, list_variables). No two tools overlap ambiguously.

Naming Consistency5/5

All tool names follow a consistent verb_noun snake_case pattern (e.g., create_cycle_model, run_cycle, compute_totals). The naming is predictable and uniform across the entire set.

Tool Count5/5

With 10 tools, the set is well-scoped for a cycle modeling server. Each tool covers a necessary operation without redundancy, fitting comfortably within the ideal 3-15 tool range.

Completeness5/5

The tool surface provides comprehensive lifecycle coverage: create, configure, run, analyze (including sweeps and derivatives), retrieve results, and close. No obvious dead ends or missing core operations for the domain.

Maintenance

ActivityMaintained
ResponsivenessSyncing

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

  • F
    license
    Not graded
    quality
    D
    maintenance
    A Python-based implementation of the Model Context Protocol that enables communication between a model context management server and client through a request-response architecture.
  • F
    license
    Not graded
    quality
    D
    maintenance
    A server implementation of the Model Context Protocol (MCP) that provides REST API endpoints for managing and interacting with MCP resources.
  • A
    license
    B
    quality
    D
    maintenance
    A Model Context Protocol (MCP) server based on OpenRPC, providing JSON-RPC function invocation and method discovery services.
    2
    1
    Apache 2.0

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/cmudrc/pycycle-mcp'

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