pycycle-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@pycycle-mcpRun parametric sweep on turbofan cycle with BPR range 5-7."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
pycycle-mcp
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 ciStart the server over stdio:
pycycle-mcp --transport stdioInspect the non-blocking HTTP transport configuration example:
PYTHONPATH=src python3 examples/server/http_launch_config.pyExamples
The examples are deterministic and aligned with the current repository contracts.
Examples index:
examples/README.mdTool discovery:
examples/client/tool_discovery.pySession lifecycle:
examples/cpacs/session_lifecycle.pyExport snapshot:
examples/cpacs/export_snapshot.py
Docs
Docs source:
docs/index.rstPublished docs (placeholder): https://cmudrc.github.io/pycycle-mcp/
Build the docs locally with:
make docsPython 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 |
|
Writes |
|
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 missionSee cmudrc/aircraft-analysis for full pipeline documentation, versioning details, and installation instructions.
Related MCP servers
MCP | Repository |
TiGL (geometry) | |
SU2 (CFD aerodynamics) | |
Mission (trajectory/fuel) |
Contributing
Contribution guidelines live in CONTRIBUTING.md.
Available Tools
10 toolsclose_cycle_modelClose cycle modelADestructive
Close a pyCycle session and free resources.
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| error | No | |
| success | No |
TDQS
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.
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.
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.
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.
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.
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 totalsCRead-only
Compute total derivatives using OpenMDAO.
| Name | Required | Description | Default |
|---|---|---|---|
| of | Yes | ||
| wrt | Yes | ||
| session_id | Yes | ||
| return_format | No | by_pair |
Output Schema
| Name | Required | Description |
|---|---|---|
| error | No | |
| jacobian | No | |
| messages | No |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | Yes | ||
| options | No | ||
| cycle_type | Yes | ||
| cycle_module_path | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| error | No | |
| model_name | No | |
| session_id | No | |
| top_promoted_inputs | No | |
| top_promoted_outputs | No |
TDQS
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.
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.
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.
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.
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.
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 summaryBRead-only
Return a succinct summary of the current cycle model.
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| mode | No | |
| error | No | |
| options | No | |
| key_inputs | No | |
| model_name | No | |
| key_outputs | No |
TDQS
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.
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.
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.
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.
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.
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 outputsARead-only
Fetch values for one or more outputs after a run.
| Name | Required | Description | Default |
|---|---|---|---|
| names | Yes | ||
| session_id | Yes | ||
| allow_missing | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| error | No | |
| values | No | |
| missing | No |
TDQS
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.
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.
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.
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.
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.
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 variablesCRead-only
List variables in the cycle model.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | both | |
| session_id | Yes | ||
| name_filter | No | ||
| max_variables | No | ||
| promoted_only | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| error | No | |
| variables | No |
TDQS
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.
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.
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.
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.
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.
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.
pingPingBRead-only
Simple healthcheck for the pyCycle MCP server.
| Name | Required | Description | Default |
|---|---|---|---|
| args | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| server | No | Server identifier. |
| status | No | Simple health indicator. |
| message | No | Optional echo message provided by the caller, if any. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | Yes | ||
| use_driver | No | ||
| outputs_of_interest | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| error | No | |
| outputs | No | |
| success | No | |
| messages | No | |
| converged | No | |
| iterations | No | |
| residual_norm | No |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| values | Yes | ||
| session_id | Yes | ||
| allow_missing | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| error | No | |
| skipped | No | |
| updated | No |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| sweep | Yes | ||
| session_id | Yes | ||
| use_driver | No | ||
| skip_on_failure | No | ||
| outputs_of_interest | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| error | No | |
| results | No |
TDQS
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.
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.
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.
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.
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.
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
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.
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.
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.
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
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
Model Context Protocol server for the Apideck Unified API. Connect any MCP-compatible agent framework to 100+ accounting systems, HRIS platforms, file storage providers, and more through one integration. More information https://www.apideck.com/mcp-server
Model Context Protocol server for Studex tools, notifications, and profile integrations
A Model Context Protocol (MCP) server for Selise Blocks Cloud integration
A Model Context Protocol server for Wix AI tools
Related MCP Servers
- AlicenseBqualityFmaintenanceA Model Context Protocol (MCP) server that provides JSON-RPC functionality through OpenRPC.25243Apache 2.0
- FlicenseNot gradedqualityDmaintenanceA Python-based implementation of the Model Context Protocol that enables communication between a model context management server and client through a request-response architecture.
- FlicenseNot gradedqualityDmaintenanceA server implementation of the Model Context Protocol (MCP) that provides REST API endpoints for managing and interacting with MCP resources.
- AlicenseBqualityDmaintenanceA Model Context Protocol (MCP) server based on OpenRPC, providing JSON-RPC function invocation and method discovery services.21Apache 2.0
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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