server
Server Details
An MCP server that let you interact with Cycloid.io Internal Development Portal and Platform
- Status
- Healthy
- Uptime
- 20.1% over 82 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- cycloidio/cycloid-mcp-server
- GitHub Stars
- 0
- Server Listing
- cycloid-mcp-server
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 13 tools
Most tools target distinct resources and actions, so an agent can usually select correctly. The main overlap is CYCLOID_EVENT_LIST versus CYCLOID_PROJECT_EVENTS, but the descriptions clearly distinguish org-wide event listing from project-scoped event listing.
The set follows a mostly predictable CYCLOID_NOUN_VERB uppercase convention. Minor deviations like CYCLOID_BLUEPRINT_STACK_CREATE and CYCLOID_PROJECT_LIST_ENV are readable but less clean than the rest.
With 13 tools, the server is well-scoped for a Cycloid platform surface. The tools cover distinct resources and operations without obvious padding.
The surface is largely read-oriented with list/get operations plus stack creation and StackForms validation. Notable lifecycle gaps remain, such as update/delete operations and getters for several listed resources like pipelines, blueprints, and members.
Available Tools
13 toolsCYCLOID_BLUEPRINT_LISTBRead-onlyInspect
List all available blueprints with their details. The LLM can filter the results based on user requirements.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
readOnlyHint=true already tells the agent this is a safe read, lowering the bar. The description implicitly confirms there is no server-side filtering (returns everything, then filter), which is modestly useful behavioral context, but it says nothing about volume, scoping, or what "details" comprises.
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?
Two short sentences, front-loaded with what the tool returns. The second sentence is slightly awkward in its third-person phrasing but still carries unique information, so it 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?
With an output schema present, the description needn't enumerate returned fields, and with no input parameters there is little surface area to cover. The safety profile comes from annotations. Only the relationship to stack creation and the (un)bounded result size go unmentioned.
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 tool takes zero parameters, so the schema leaves nothing to explain. The description actually adds a useful clarification: filtering is done by the caller on the returned set, not via an input parameter, which preempts a plausible misread of the empty schema.
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?
"List all available blueprints with their details" gives a specific verb (list) and resource (blueprints), and there is no other blueprint-listing sibling to confuse it with. It doesn't need to distinguish itself from CYCLOID_BLUEPRINT_STACK_CREATE explicitly, but it also offers no hint that blueprints relate to stack creation.
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 only usage remark is "The LLM can filter the results based on user requirements," which describes post-hoc filtering rather than when to call this tool. Nothing says when to prefer it over siblings like CYCLOID_CATALOG_REPO_LIST or how it pairs with CYCLOID_BLUEPRINT_STACK_CREATE.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
CYCLOID_BLUEPRINT_STACK_CREATEAInspect
Create a new Cycloid stack from a blueprint. CRITICAL: When elicitation context (ctx) is provided, the tool will ALWAYS use interactive elicitation to ask for parameters one by one, REGARDLESS of any parameters provided. The LLM should ONLY provide the 'ref' parameter and let elicitation handle the rest. DO NOT provide name, use_case, or service_catalog_source_canonical when elicitation is available.
| Name | Required | Description | Default |
|---|---|---|---|
| ref | Yes | The blueprint reference (e.g., "cycloid-io:terraform-sample") |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden and does disclose the key non-obvious behavior: interactive elicitation always overrides provided parameters when ctx is present. It omits any mention of permissions, side effects, or failure modes, which keeps it short of a 5.
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 elicitation warning is front-loaded and capitalized, which is good, but a third of the text is spent forbidding three parameters that are not in the schema and are rejected by additionalProperties: false — wasted and potentially confusing attention.
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?
Output schema exists, so return values need no explanation, and the single input is fully described. But the description's reference to non-existent parameters is inaccurate relative to the actual schema, leaving the agent with contradictory guidance about what it may pass.
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 coverage is 100% and there is only one parameter, so the schema already defines 'ref' fully. The description reinforces this by telling the agent to supply only 'ref', which is consistent value-add for a single-param tool.
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?
States a specific verb and resource — 'Create a new Cycloid stack from a blueprint' — which is unambiguous. It does not differentiate from siblings explicitly, though the sibling list is almost entirely read/list tools, so confusion risk is low.
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?
Gives explicit operational guidance: when elicitation context is present, only supply 'ref' and let elicitation collect the rest. However, the exclusions reference parameters (name, use_case, service_catalog_source_canonical) that do not exist in this schema, which muddies rather than clarifies the instruction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
CYCLOID_CATALOG_REPO_LISTARead-onlyInspect
List all available service catalog repositories with their details. The LLM can filter the results based on user requirements.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already establishes the safety profile, so the description is not the sole source of behavioral information. It adds that results are unfiltered and must be client-side filtered, but says nothing about result size, pagination, or ordering; the output schema covers the return shape.
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?
Two short sentences, front-loaded with the core action. The second sentence is slightly vague ('based on user requirements') and comes close to filler, but it does convey the no-filter design.
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 zero-parameter read-only list tool with an output schema and readOnlyHint, the description covers what is returned ('with their details') and how to handle results, which is enough to call it correctly. Only sibling differentiation is missing.
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?
With zero parameters there is nothing to disambiguate, and the schema coverage is 100%, so the baseline of 4 applies. The mention of client-side filtering is consistent with the absence of filter parameters rather than adding new semantics.
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 specific verb and resource — 'List all available service catalog repositories' — which is clearly distinct from siblings like CYCLOID_BLUEPRINT_LIST or CYCLOID_COMPONENT_LIST. It does not explicitly name or contrast those siblings, but the resource noun does the disambiguation work.
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 LLM can filter the results based on user requirements' hints that the tool returns an unfiltered set and the caller must narrow it, which is a useful usage cue for a zero-parameter tool. However, it never states when to prefer this over sibling list tools such as BLUEPRINT_LIST or COMPONENT_LIST, so usage is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
CYCLOID_COMPONENT_GETCRead-onlyInspect
Get the state of one or more components in a project environment.
| Name | Required | Description | Default |
|---|---|---|---|
| env | Yes | The environment canonical. | |
| project | Yes | The project canonical. | |
| canonicals | Yes | List of component canonicals to fetch. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
readOnlyHint=true already tells the agent this is a safe read. Beyond that, the description adds nothing: it doesn't say what 'state' comprises, how missing or invalid canonicals are handled, or whether the array is batch-processed in one call or fails wholesale. For a multi-resource fetch, that is a real 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?
A single front-loaded sentence with no filler or repetition. It is efficient, though its brevity edges into under-specification rather than pure economy.
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?
An output schema exists, so return values need not be explained, and all three parameters are schema-documented. What remains missing is behavioral context for a batch-fetch tool — canonical format expectations and partial-failure behavior — leaving it minimally adequate.
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 100%, so 'project', 'env', and 'canonicals' are already documented in the schema. The description only echoes the plural-array capability ('one or more components'), adding no syntax, canonical-format, or ordering semantics beyond the schema. Baseline 3 applies.
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?
States a specific verb ('Get') and resource ('state of one or more components in a project environment'), which distinguishes it in kind from the enumeration sibling CYCLOID_COMPONENT_LIST. However, it never names that sibling or explains what 'state' means versus the list output, so differentiation is left to inference.
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 when-to-use conditions, prerequisites, or alternatives are stated. The agent must infer from the sibling names (COMPONENT_LIST vs COMPONENT_GET) which one to call, and nothing in the description resolves that choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
CYCLOID_COMPONENT_LISTCRead-onlyInspect
List components in a project environment.
| Name | Required | Description | Default |
|---|---|---|---|
| env | Yes | The environment canonical. | |
| project | Yes | The project canonical. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint=true annotation already declares the safety profile, so the description's only added behavioral content is that listing is scoped per project+environment. It says nothing about pagination, ordering, volume of results, or whether components are environment-specific copies versus project-wide.
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?
A single seven-word sentence with zero waste and the resource front-loaded. It is efficient, though the brevity edges toward under-specification rather than tightness.
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 two-parameter read-only list tool with full schema coverage and an output schema, the structured fields carry most of the load, so the description is barely sufficient. It still leaves an agent without any routing signal among the many sibling listing tools.
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 coverage is 100% and both parameters carry descriptions ("project canonical", "environment canonical"). The description only restates that both are involved; it adds no meaning about canonical identifier format or how env relates to project. Baseline 3 applies.
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?
States a specific verb and resource ("List components") plus its scope ("in a project environment"). It implicitly separates itself from CYCLOID_COMPONENT_GET (single vs list), but never names a sibling or clarifies the boundary with CYCLOID_BLUEPRINT_LIST / CYCLOID_CATALOG_REPO_LIST, which are adjacent listing tools.
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 when-to-use or when-not-to-use guidance and no mention of alternatives such as CYCLOID_COMPONENT_GET for a single component. The only implied usage cue is the phrase "in a project environment," which an agent must infer from the two required parameters.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
CYCLOID_EVENT_LISTARead-onlyInspect
List organization events with optional filters. To filter by WHAT HAPPENED, use action (e.g. create, update, delete, configure, pause, unpause) and/or entity (e.g. component, ci_build, ci_job, pipeline, credential) — these are matched case-insensitively against each event's actual action/entity tag VALUE (note: the entity is ci_build, not build). If a filter matches nothing while events exist, the response lists the available_actions/available_entities to retry with. type is ONLY the high-level category: Cycloid, AWS, Monitoring, Custom (do NOT pass an action/entity name as type). severity is one of: info, warn, err, crit. begin/end are Unix timestamps in SECONDS (strings); omit any filter to include all of its values. Returns full event payload including tags. Actor identity is in tags as {key: 'user', value: ''}.
| Name | Required | Description | Default |
|---|---|---|---|
| end | No | Unix timestamp (string) end date. | |
| type | No | Event categories to include (Cycloid, AWS, Monitoring, Custom). | |
| begin | No | Unix timestamp (string) start date. | |
| action | No | Filter by the event's `action` tag (e.g. create, configure, pause). | |
| entity | No | Filter by the event's `entity` tag (e.g. component, ci_build, pipeline). | |
| severity | No | Event severities to include (info, warn, err, crit). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond readOnlyHint, the description discloses important behavior: filters are case-insensitive against tag values, entity names use ci_build rather than build, unmatched filters return available_actions/available_entities for retry, and full event payloads including tags are returned. It also identifies actor identity via the user tag. This is substantial behavioral context beyond the 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 purpose is front-loaded and every sentence carries useful information, including edge-case behavior and parameter constraints. The description is a dense paragraph rather than structured bullets, which slightly reduces scannability for a six-parameter tool.
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 definition is complete for an optional-filter list tool: it covers scope, filter semantics, fallback behavior, timestamp format, return payload, and actor identification. An output schema exists, and the annotations cover the read-only safety profile, so no critical context appears missing.
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?
Although schema coverage is already 100%, the description adds meaning that the schema does not: action/entity match actual tag values case-insensitively, type must not receive action/entity names, begin/end are Unix timestamps in seconds as strings, and omitting a filter includes all its values. These clarifications materially improve correct parameter use.
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 specific verb and resource: 'List organization events with optional filters.' The organization scope implies a distinction from project-level siblings, but the description does not explicitly call out CYCLOID_PROJECT_EVENTS or any other alternative. Purpose is clear, but sibling differentiation is left implicit.
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 clear context for using filters, including how action/entity matching works, that type is a high-level category, and that omitted filters include all values. It does not explicitly state when to use this tool instead of CYCLOID_PROJECT_EVENTS, so alternatives are not covered.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
CYCLOID_MEMBER_LISTARead-onlyInspect
List all members of the organization. Use this to look up a member's numeric id from their username. The id field is required to build member URLs: /organizations//members/.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
readOnlyHint=true already declares this is a safe read, so the description only needs to add context. It adds the id-vs-username distinction and the URL construction pattern, which is genuinely useful, but says nothing about pagination, result size, or ordering for an org-wide listing.
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?
Three short sentences, front-loaded with the purpose and followed by the concrete downstream use. Every sentence adds information; there is no restatement of the tool name or filler.
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 an output schema present and no inputs, the description covers purpose and downstream use well enough to call the tool correctly. The only gap is silence on pagination or result limits for potentially large organization member lists.
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?
Zero parameters, so the baseline is 4; the schema has nothing to document and the description correctly makes no parameter claims. It does usefully clarify the returned field semantics (numeric `id` keyed off `username`), which is meaning the schema alone would not convey as clearly.
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?
States a specific verb and resource ('List all members of the organization') and immediately frames the practical outcome: resolving a member's numeric `id` from their `username`. It is unambiguously distinguishable from sibling list tools such as CYCLOID_PROJECT_LIST or CYCLOID_COMPONENT_LIST because the resource is named explicitly.
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?
Gives a clear use case (id lookup for building member URLs) rather than a bare capability statement, so an agent knows why to call it. It does not name alternatives or state when not to use it, but the resource scope makes alternatives fairly self-evident.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
CYCLOID_PIPELINE_LISTBRead-onlyInspect
List all pipelines from Cycloid.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
readOnlyHint=true already tells the agent this is a safe read, so the description's remaining burden is light. The word 'all' usefully signals no filtering, but pagination behavior, result ordering, and account/org scoping are undisclosed.
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?
A single front-loaded sentence with no wasted preamble. 'from Cycloid' is mildly redundant given every sibling is a Cycloid tool, but the phrasing is otherwise tight.
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?
An output schema exists, so return values need not be explained. For a zero-parameter list tool that is largely sufficient, but the absence of any scoping or pagination note leaves gaps an agent would want when choosing among a dozen similar list tools.
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 tool takes zero parameters, so there is nothing for the description to disambiguate; baseline 4 applies. The schema is complete and additionalProperties is false.
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?
States a specific verb and resource ('List all pipelines'), so the agent knows exactly what entity it retrieves. It does not distinguish itself from the many sibling list tools (BLUEPRINT_LIST, COMPONENT_LIST, PROJECT_LIST, etc.) beyond the noun 'pipelines', leaving scope differences implicit.
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?
There is no guidance on when to use this versus the other CYCLOID list tools, no mention of prerequisites, and no indication of whether the result is global or scoped. The agent must infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
CYCLOID_PROJECT_EVENTSARead-onlyInspect
List events scoped to a specific project's components. Walks project → envs → components, then filters org-wide events by project tag. Returns events, count, and a deduplicated actors list extracted from tags[key=user]. Actor usernames can be cross-referenced with CYCLOID_MEMBER_LIST to get numeric ids for building member URLs. Hard cap: aborts with a structured error if total components exceed the configured maximum (default 50). Use begin/end/severity/type/action/entity to narrow results. Filter by WHAT HAPPENED with action (e.g. create, update, delete, configure, pause, unpause) and/or entity (e.g. component, ci_build, ci_job, pipeline) — matched case-insensitively against each event's actual tag VALUE (the entity is ci_build, not build). If a filter matches nothing while events exist, the response lists available_actions/available_entities to retry with. type is ONLY the high-level category: Cycloid, AWS, Monitoring, Custom (do NOT pass an action/entity name as type). severity is one of: info, warn, err, crit.
| Name | Required | Description | Default |
|---|---|---|---|
| end | No | Unix timestamp (string) end date. | |
| type | No | Event categories to include (Cycloid, AWS, Monitoring, Custom). | |
| begin | No | Unix timestamp (string) start date. | |
| action | No | Filter by the event's `action` tag (e.g. create, configure, pause). | |
| entity | No | Filter by the event's `entity` tag (e.g. component, ci_build, pipeline). | |
| project | Yes | The project canonical (required). | |
| severity | No | Event severities to include (info, warn, err, crit). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Rich disclosure beyond annotations: hard cap abort with structured error at the configured maximum, a fallback that lists available_actions/available_entities when a filter matches nothing, and a deduplicated actors list derived from tags[key=user]. These are non-obvious behaviors an agent must anticipate.
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?
Front-loaded with purpose, then layered operational notes. Dense but nearly every sentence carries actionable content; the parenthetical examples for action/entity are slightly verbose but justified by the filtering gotchas.
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?
An output schema exists, yet the description still conveys the key return shape (events, count, actors) and the error/fallback paths. For a read-only, 7-param tool with high schema coverage, nothing an agent needs to call it correctly is missing.
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 coverage is 100%, so baseline is 3, but the description adds genuinely non-obvious semantics: `type` is ONLY the high-level category and must not receive action/entity names, and `entity` matches the tag VALUE case-insensitively (ci_build, not build). This prevents real misuse errors.
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?
States a specific verb (list) and resource (events) with explicit scope: scoped to a project's components, and explains the mechanism (walk project → envs → components, then filter org-wide events by project tag). This clearly distinguishes it from CYCLOID_EVENT_LIST's org-wide listing.
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?
Gives strong when-to-use context: use project scoping, cross-reference actors with CYCLOID_MEMBER_LIST for ids, narrow with begin/end/severity/type/action/entity. It does not explicitly name CYCLOID_EVENT_LIST as the alternative for org-wide queries, leaving that inference to the reader.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
CYCLOID_PROJECT_GETBRead-onlyInspect
Get one or more projects by canonical.
| Name | Required | Description | Default |
|---|---|---|---|
| canonicals | Yes | List of project canonicals to fetch. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
readOnlyHint=true already tells the agent this is a safe read, and an output schema exists, so the description's burden is light. It adds only the batch hint ("one or more"); it says nothing about behavior for unknown canonicals (partial results vs. error) or any cap on list size.
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?
One short, front-loaded sentence with zero filler. It is arguably over-compressed for a tool with an alternative-sibling choice to make, but nothing in it is wasted.
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 one fully documented parameter, an output schema, and a read-only annotation, the structured data carries most of the load. Still, an agent would benefit from knowing how this differs from the two PROJECT_LIST siblings and what happens when a canonical is not found.
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 coverage is 100% and the single parameter is self-documenting ("List of project canonicals to fetch"), so baseline 3 applies. The description's "one or more" reinforces that arrays of any length are accepted but adds no format or identifier-syntax detail beyond the schema.
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?
"Get one or more projects by canonical" states a specific verb (Get), resource (projects) and lookup key (canonical), and the plural framing signals batch retrieval rather than a single-record fetch. It does not explicitly contrast itself with siblings like CYCLOID_PROJECT_LIST or CYCLOID_PROJECT_LIST_ENV, so the agent must infer the distinction.
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?
There is no statement of when to choose this over CYCLOID_PROJECT_LIST (list all) or CYCLOID_PROJECT_LIST_ENV (env-scoped). The agent must guess that this is the lookup-by-identifier path based solely on the word "canonical".
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
CYCLOID_PROJECT_LISTARead-onlyInspect
List all projects in the organization.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so safety is covered. The description adds that it returns ALL projects org-wide (no filtering/pagination mentioned), which is useful scope context beyond the annotations, but it says nothing about result size or filtering behavior.
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?
A single, front-loaded sentence with zero waste. Appropriately sized for a no-parameter list operation.
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 an output schema present, the description needn't explain return values, and annotations cover the read-only profile. The only gap is the absence of any hint about volume or pagination for an org-wide list.
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 tool takes zero parameters, so the baseline is 4. There is nothing for the description to compensate for.
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?
States a specific verb ('List') and resource ('projects') scoped to 'the organization', which distinguishes it from the single-object CYCLOID_PROJECT_GET. It does not explicitly distinguish itself from CYCLOID_PROJECT_LIST_ENV, 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 guidance on when to use this versus the sibling list tools (PROJECT_LIST_ENV, PROJECT_GET, PROJECT_EVENTS). Usage is only implied by the verb 'List'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
CYCLOID_PROJECT_LIST_ENVBRead-onlyInspect
List environments in a project.
| Name | Required | Description | Default |
|---|---|---|---|
| project | Yes | The project canonical. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
readOnlyHint=true already tells the agent this is a safe read, and an output schema exists, so the description does not need to explain return values. The description does add the project-scoping constraint, but says nothing about pagination, environment definitions, or permissions beyond that.
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?
A single front-loaded sentence with no wasted words. It is efficient, though the minimalism borders on under-specification given the tool's place in a large list-family.
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 annotations declaring read-only and an output schema present, the basics are covered, but the description is silent on result ordering/limits and on how 'environment' relates to the sibling project and component resources. Adequate but with clear gaps for a list tool in a dense namespace.
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 100% for the single 'project' parameter, so the schema already carries the parameter semantics. The description only repeats the scoping concept ('in a project') without adding format or canonical-name guidance beyond the schema.
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?
States a specific verb and resource ('List environments') and scopes it to a project, so the agent knows exactly what is returned. It does not differentiate itself from the many sibling list tools (CYCLOID_PROJECT_LIST, CYCLOID_COMPONENT_LIST, etc.), leaving the agent to infer that 'environments' is a distinct resource type.
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 when-to-use guidance, no exclusions, and no pointer to alternatives. Despite a crowded list-tool family, the agent gets no help choosing between this and CYCLOID_PROJECT_LIST or CYCLOID_PROJECT_GET.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
CYCLOID_STACKFORMS_VALIDATEBInspect
Validate a StackForms (.forms.yml) file using the Cycloid CLI. This tool can validate StackForms configuration and provide detailed feedback for fixing issues.
| Name | Required | Description | Default |
|---|---|---|---|
| forms_content | Yes | The content of the .forms.yml file to validate |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It does not state that validation is non-mutating, whether the CLI must be reachable or authenticated, whether it only validates or can modify the file, or what failure looks like. Only the mention of using the Cycloid CLI adds any 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?
Two short sentences, front-loaded with the verb and target. The second sentence partially restates the first ("validate StackForms configuration") but adds the feedback-for-fixing angle, so little is wasted.
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?
An output schema exists, so return values need not be explained, and the single parameter is fully documented. However, for a CLI-backed validation tool with zero annotations, the agent is left unsure about side effects, environment/auth requirements, and whether fixes are applied automatically.
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?
Single required parameter with 100% schema description coverage, so the schema already explains forms_content. The description adds only the .forms.yml format hint, which is marginal but consistent; baseline 4 applies for a one-parameter tool.
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?
States a specific verb (validate) and resource (a StackForms .forms.yml file) and names the underlying mechanism (Cycloid CLI). It is unmistakably distinct from the sibling list/get tools, though it never explicitly contrasts itself with them.
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?
"Provide detailed feedback for fixing issues" implies the intended use case (check a forms file before applying it), but there is no explicit when-to-use, when-not-to-use, or prerequisite guidance. Usage is inferable rather than stated.
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.
13 tool updates
- Changed
CYCLOID_BLUEPRINT_LIST3 fields changed- added
Input schema / additionalPropertiesAdded value: +false - removed
Input schema / properties / formatRemoved value: -{ - "default": "table", - "type": "string" -} - changed
Output schema / (root)Previous value: -nullNew value: +{ + "additionalProperties": true, + "type": "object" +}
- Changed
CYCLOID_BLUEPRINT_STACK_CREATE3 fields changed- added
Input schema / additionalPropertiesAdded value: +false - added
Input schema / properties / ref / descriptionAdded value: +"The blueprint reference (e.g., \"cycloid-io:terraform-sample\")" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "result": { + "type": "string" + } + }, + "required": [ + "result" + ], + "type": "object", + "x-fastmcp-wrap-result": true +}
- Changed
CYCLOID_CATALOG_REPO_LIST3 fields changed- added
Input schema / additionalPropertiesAdded value: +false - removed
Input schema / properties / formatRemoved value: -{ - "default": "table", - "type": "string" -} - changed
Output schema / (root)Previous value: -nullNew value: +{ + "additionalProperties": true, + "type": "object" +}
- Added
CYCLOID_COMPONENT_GET - Added
CYCLOID_COMPONENT_LIST - Changed
CYCLOID_EVENT_LIST11 fields changed- added
Input schema / additionalPropertiesAdded value: +false - added
Input schema / properties / actionAdded value: +{ + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Filter by the event's `action` tag (e.g. create, configure, pause)." +} - added
Input schema / properties / begin / descriptionAdded value: +"Unix timestamp (string) start date." - added
Input schema / properties / end / descriptionAdded value: +"Unix timestamp (string) end date." - added
Input schema / properties / entityAdded value: +{ + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Filter by the event's `entity` tag (e.g. component, ci_build, pipeline)." +} - removed
Input schema / properties / formatRemoved value: -{ - "default": "json", - "type": "string" -} - changed
Input schema / properties / severity / anyOfPrevious value: -[ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "null" - } -]New value: +[ + { + "items": { + "enum": [ + "info", + "warn", + "err", + "crit" + ], + "type": "string" + }, + "type": "array" + }, + { + "type": "null" + } +] - added
Input schema / properties / severity / descriptionAdded value: +"Event severities to include (info, warn, err, crit)." - changed
Input schema / properties / type / anyOfPrevious value: -[ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "null" - } -]New value: +[ + { + "items": { + "enum": [ + "Cycloid", + "AWS", + "Monitoring", + "Custom" + ], + "type": "string" + }, + "type": "array" + }, + { + "type": "null" + } +] - added
Input schema / properties / type / descriptionAdded value: +"Event categories to include (Cycloid, AWS, Monitoring, Custom)." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "additionalProperties": true, + "type": "object" +}
- Added
CYCLOID_MEMBER_LIST - Changed
CYCLOID_PIPELINE_LIST3 fields changed- added
Input schema / additionalPropertiesAdded value: +false - removed
Input schema / properties / formatRemoved value: -{ - "default": "summary", - "type": "string" -} - changed
Output schema / (root)Previous value: -nullNew value: +{ + "additionalProperties": true, + "type": "object" +}
- Added
CYCLOID_PROJECT_EVENTS - Added
CYCLOID_PROJECT_GET - Added
CYCLOID_PROJECT_LIST - Added
CYCLOID_PROJECT_LIST_ENV - Changed
CYCLOID_STACKFORMS_VALIDATE3 fields changed- added
Input schema / additionalPropertiesAdded value: +false - added
Input schema / properties / forms_content / descriptionAdded value: +"The content of the .forms.yml file to validate" - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "result": { + "type": "string" + } + }, + "required": [ + "result" + ], + "type": "object", + "x-fastmcp-wrap-result": true +}
6 tool updates
- First observed
CYCLOID_BLUEPRINT_LIST - First observed
CYCLOID_BLUEPRINT_STACK_CREATE - First observed
CYCLOID_CATALOG_REPO_LIST - First observed
CYCLOID_EVENT_LIST - First observed
CYCLOID_PIPELINE_LIST - First observed
CYCLOID_STACKFORMS_VALIDATE
Related MCP Connectors
The official MCP Server from Mia-Platform to interact with Mia-Platform Console
The official MCP Server for the Mux API
Related MCP Servers
- AlicenseAqualityDmaintenanceA MCP server do create and deploy backend applications using https://heim.dev639 npm3MIT
- AlicenseAqualityCmaintenanceAn MCP server for interacting with Contentstack's Content Management API157 npm2TypeScriptMIT
- AlicenseNot gradedqualityDmaintenanceAn MCP server for managing your repositories on Forgejo/Gitea server.70Mozilla Public 2.0

fluidattacks-mcpofficial
FlicenseNot gradedqualityDmaintenanceMCP server that provides tools for interacting with the Fluidattacks API-
Glama MCP Gateway
Add one secure layer between your agents and this server.