MCP Dual-Cycle Reasoner
The MCP Dual-Cycle Reasoner server enhances AI agent autonomy and self-awareness through metacognitive monitoring and case-based reasoning.
• Metacognitive Monitoring: Initialize, update, and stop monitoring of agent cognitive processes, tracking actions, context, and goals with real-time insights and session summaries • Intelligent Loop Detection: Identify repetitive patterns or stagnation using statistical, pattern-based, or hybrid methods with configurable thresholds and progress indicators • Experience Management: Store and retrieve problem-solution cases with detailed metadata, utilizing semantic matching for efficient case-based reasoning • System Management: Access current monitoring status and statistics, configure detection parameters, and reset the engine state for fresh sessions
Integrated with GitHub Actions for CI/CD pipeline automation, as shown by the workflow badge in the README.
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., "@MCP Dual-Cycle Reasonermonitor my reasoning on solving this math puzzle"
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.
A Model Context Protocol (MCP) server implementing the Dual-Cycle Metacognitive Reasoning Framework for autonomous agents. This tool empowers agents with greater self-awareness and reliability through intelligent loop detection and experience acquisition.
Description
The MCP Dual-Cycle Reasoner is a sophisticated tool designed to enhance the autonomy and reliability of AI agents. By implementing a dual-cycle metacognitive framework, it provides agents with the ability to monitor their own cognitive processes, detect when they are stuck in repetitive loops, and learn from past experiences to make better decisions.
The framework consists of two main components:
Sentinel: Monitors the agent's actions and detects anomalies, such as action repetition, state invariance, and progress stagnation.
Adjudicator: Manages a case base of past experiences, allowing the agent to store and retrieve solutions to previously encountered problems.
This server is built with TypeScript and leverages high-performance libraries for statistical analysis, natural language processing, and semantic similarity, enabling advanced features like entropy-based anomaly detection, NLI-based text analysis, and intelligent case management.
Related MCP server: verifiable-thinking-mcp
Key Features
📊 Advanced Statistical Analysis: Entropy-based anomaly detection and time series analysis.
🧠 Enhanced Case-Based Reasoning: Semantic similarity matching with NLI-based text analysis.
🎯 Multi-Strategy Detection: Statistical, pattern-based, and hybrid loop detection.
📈 Time Series Analysis: Trend detection and cyclical pattern recognition.
🔧 Configurable Detection: Domain-specific thresholds and progress indicators.
🎨 Intelligent Case Management: Quality scoring, deduplication, and usage-based optimization.
🚀 High-Performance Libraries: Built with
simple-statistics,natural,compromise, and HuggingFace Transformers.
Tech Stack
Language: TypeScript
Framework: Node.js
Server: FastMCP for SSE transport
NLP and Machine Learning:
@huggingface/transformers: For NLI-based semantic analysisnatural: For sentiment analysis and tokenizationcompromise: For natural language processing
Statistics:
simple-statistics: For statistical calculationsml-matrix: For matrix operations
Development Tools:
jest: For testingeslint: For lintingprettier: For code formattingzod: For schema validation
Installation
To get the project running locally, follow these steps:
Clone the repository:
git clone https://github.com/cyqlelabs/mcp-dual-cycle-reasoner.git cd mcp-dual-cycle-reasonerInstall dependencies:
npm installBuild the project:
npm run build
Usage
Running the Server
You can run the server in two modes:
HTTP Stream (Default):
npm startThe server will start on port 8080.
Stdio:
npm start -- --stdio
Using with Claude Desktop
Add the following to your Claude Desktop MCP configuration:
{
"mcpServers": {
"dual-cycle-reasoner": {
"command": "npx",
"args": ["@cyqlelabs/mcp-dual-cycle-reasoner"]
}
}
}For stdio transport, add the --stdio flag to the args array.
Available Tools
Core Monitoring Tools
start_monitoring
Initialize metacognitive monitoring of an agent's cognitive process.
Input Schema:
{
goal: string; // Current goal being pursued
initial_beliefs?: string[]; // Initial beliefs about the task
}process_trace_update
Main monitoring function—processes cognitive trace updates from the agent.
Input Schema:
{
last_action: string; // Latest action name
current_context?: string; // Current environment context
goal: string; // Current goal being pursued
window_size?: number; // Monitoring window size (default: 10)
}Return Payload:
Returns a JSON object indicating if intervention is required and details about any detected loop.
{
"intervention_required": true,
"loop_detected": {
"detected": true,
"type": "action_repetition",
"confidence": 0.85,
"details": "Loop detected via parameter_repetition: 57% anomaly score...",
"actions_involved": ["click_submit_button"]
}
}stop_monitoring
Stop metacognitive monitoring and get a session summary.
Input Schema: {}
Loop Detection Tools
detect_loop
Detect if the agent is stuck in a loop using various strategies.
Input Schema:
{
current_context?: string; // Current environment context
goal: string; // Current goal being pursued
detection_method?: "statistical" | "pattern" | "hybrid"; // Detection method (default: "hybrid")
}Return Payload:
Returns a LoopDetectionResult object as a JSON string.
{
"detected": true,
"type": "action_repetition",
"confidence": 0.85,
"details": {
"dominant_method": "parameter_repetition",
"anomaly_score": 0.57,
"actions_involved_count": 1,
"recent_actions_count": 10,
"metrics": {
"semantic_repetition": 0.6,
"parameter_repetition": 0.8
}
},
"actions_involved": ["click_submit_button"]
}configure_detection
Configure loop detection parameters and domain-specific progress indicators.
Input Schema:
{
progress_indicators?: string[]; // default: []
min_actions_for_detection?: number; // default: 5
alternating_threshold?: number; // default: 0.5
repetition_threshold?: number; // default: 0.4
progress_threshold_adjustment?: number; // default: 0.2
semantic_intents?: string[]; // default: []
}Enhanced Experience Management
store_experience
Store a case for future case-based reasoning with enhanced metadata and quality scoring.
Input Schema:
{
problem_description: string;
solution: string;
outcome: boolean;
context?: string;
difficulty_level?: "low" | "medium" | "high";
}retrieve_similar_cases
Retrieve similar cases using advanced semantic matching and filtering.
Input Schema:
{
problem_description: string;
max_results?: number; // default: 5
context_filter?: string;
difficulty_filter?: "low" | "medium" | "high";
outcome_filter?: boolean;
min_similarity?: number; // default: 0.6
}Return Payload:
Returns an array of Case objects as a JSON string.
[
{
"id": "case-123",
"problem_description": "Form submission button not responding to clicks",
"solution": "Ensure all required fields are filled correctly.",
"outcome": true,
"context": "registration_form",
"difficulty_level": "medium",
"similarity_metrics": {
"combined_similarity": 0.92
}
}
]System Tools
get_monitoring_status
Get the current monitoring status and statistics.
Input Schema: {}
Return Payload:
Returns a JSON string with the current monitoring status, including is_monitoring, current_goal, trace_length, and intervention_count.
{
"is_monitoring": true,
"current_goal": "Complete user registration process on website",
"trace_length": 15,
"intervention_count": 2,
"recent_actions": [
{ "type": "click_submit_button", "timestamp": 1678886400000 },
{ "type": "click_submit_button", "timestamp": 1678886401000 }
]
}reset_engine
Reset the dual-cycle engine state.
Input Schema: {}
Example Usage Scenario
Here's a complete example showing how to use the dual-cycle reasoner to monitor an autonomous agent and build up experience over time:
1. Initial Setup and Configuration
// Configure detection parameters for your domain
await configure_detection({
progress_indicators: ['page_loaded', 'form_submitted', 'data_extracted'],
min_actions_for_detection: 3,
alternating_threshold: 0.6,
repetition_threshold: 0.3,
semantic_intents: [
'navigating to page',
'clicking element',
'filling form field',
'submitting form',
'validating input',
'handling popup',
'extracting data',
'waiting for response',
],
});
// Start monitoring the agent's goal
await start_monitoring({
goal: 'Complete user registration process on website',
});2. Monitoring Agent Actions
// Monitor each action the agent takes
await process_trace_update({
last_action: 'click_signup_button',
current_context: 'homepage',
goal: 'Complete user registration process on website',
});
// ... agent continues actions ...
// Agent gets stuck clicking submit repeatedly
await process_trace_update({
last_action: 'click_submit_button',
current_context: 'registration_form',
goal: 'Complete user registration process on website',
});
// Returns: {
// "intervention_required": true,
// "loop_detected": {
// "detected": true,
// "type": "action_repetition",
// "confidence": 0.85,
// "details": {
// "dominant_method": "parameter_repetition",
// "anomaly_score": 0.57,
// "actions_involved_count": 1,
// "recent_actions_count": 10,
// "metrics": {
// "semantic_repetition": 0.6,
// "parameter_repetition": 0.8
// }
// },
// "actions_involved": ["click_submit_button"]
// }
// }3. Storing and Retrieving Experiences
// Store a successful experience
await store_experience({
problem_description: 'Email validation error blocking form submission',
solution: 'Check email format and retry with valid email address',
outcome: true,
context: 'registration_form',
difficulty_level: 'medium',
});
// When a loop is detected, retrieve similar cases for recovery
const similarCases = await retrieve_similar_cases({
problem_description: 'Form submission button not responding to clicks',
max_results: 3,
context_filter: 'registration_form',
outcome_filter: true,
});Understanding Loop Detection
When the process_trace_update tool detects a potential loop, it returns a detailed loop_detected object. Understanding the components of this object can help you diagnose and debug agent behavior.
Here's a quick guide to the key metrics in the details object:
dominant_method: The primary method that triggered the loop detection (e.g.,semantic_repetition,state_invariance).anomaly_score: An overall score (0-1) representing the confidence that the agent's recent actions are part of a loop. It's a weighted average of multiple detection methods.actions_involved_count: The number of recent actions identified as being part of the detected loop.recent_actions_count: The total number of recent actions analyzed.metrics: An object containing the raw scores from the different detection methods, such as:semantic_repetition: The percentage of recent actions that are semantically similar to each other.parameter_repetition: The percentage of similarity between the parameters of semantically similar actions.exact_repetition: The percentage of recent actions that are exact, character-for-character duplicates.cyclical_pattern: The score (0-1) indicating the presence of repeating sequences of actions.oscillation_pattern: The score (0-1) indicating the presence of oscillating (back-and-forth) actions.alternating_pattern: The score (0-1) indicating the presence of alternating action patterns.
Contributing
Contributions are welcome! Please read the contributing guidelines and ensure all tests pass before submitting a pull request.
License
This project is licensed under the MIT License. See the LICENSE file for details.
Available Tools
9 toolsconfigure_detectionB
Configure loop detection parameters and domain-specific progress indicators
| Name | Required | Description | Default |
|---|---|---|---|
| alternating_threshold | No | Threshold for detecting alternating action patterns (0.0-1.0) | |
| min_actions_for_detection | No | Minimum number of actions required before loop detection | |
| progress_indicators | No | Action patterns that indicate positive task progress (e.g., ["success", "complete", "found"]) | |
| progress_threshold_adjustment | No | How much to increase thresholds when progress indicators are present | |
| repetition_threshold | No | Threshold for detecting repetitive action patterns (0.0-1.0) | |
| semantic_intents | No | Domain-specific action intents for semantic analysis (e.g., ["navigating", "clicking", "typing"]) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate this is a non-readonly, non-destructive, non-idempotent configuration tool. The description adds that it configures 'parameters and indicators', which aligns with the annotations but doesn't provide additional behavioral context like whether changes persist, require specific permissions, or affect system performance. No contradiction with annotations exists.
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 that front-loads the core purpose without unnecessary elaboration. Every word earns its place, making it easy for an agent to quickly understand the tool's function.
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 complexity (6 parameters for configuration) and lack of output schema, the description is minimally adequate. It identifies the configuration scope but doesn't explain what happens after configuration (e.g., whether changes take effect immediately, return values, or error conditions). With annotations covering basic behavioral hints, it meets baseline completeness.
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%, with all 6 parameters well-documented in the schema itself. The description mentions 'loop detection parameters' and 'domain-specific progress indicators', which loosely maps to parameters like alternating_threshold, repetition_threshold, and progress_indicators, but adds no specific syntax or format details beyond what the schema provides. Baseline 3 is appropriate given high schema coverage.
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 configures 'loop detection parameters and domain-specific progress indicators', which is a specific verb+resource combination. It distinguishes itself from siblings like detect_loop (which likely performs detection rather than configuration) and reset_engine (which likely resets rather than configures). However, it doesn't explicitly contrast with all siblings like get_monitoring_status or store_experience.
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. It doesn't mention prerequisites, appropriate contexts, or when other tools like detect_loop or reset_engine might be more suitable. The agent must infer usage from the tool name and description alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
detect_loopARead-onlyIdempotent
Detect if the agent is stuck in a loop using various strategies
| Name | Required | Description | Default |
|---|---|---|---|
| current_context | No | Current environment context or state, in low dash format. Example: sending_email | |
| detection_method | No | Loop detection method to use: statistical, pattern or hybrid. | hybrid |
| goal | Yes | Current goal being pursued |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide readOnlyHint=true, destructiveHint=false, idempotentHint=true, and openWorldHint=false, indicating a safe, repeatable read operation. The description adds value by specifying 'using various strategies,' which hints at the detection_method parameter's options. However, it doesn't elaborate on what 'stuck in a loop' means operationally or potential side effects like performance impact. No contradiction with annotations exists.
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: 'Detect if the agent is stuck in a loop using various strategies.' It's front-loaded with the core purpose and avoids unnecessary words. Every part of the sentence contributes directly to understanding the tool's function.
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 moderate complexity (3 parameters, no output schema) and rich annotations (readOnlyHint, idempotentHint, etc.), the description is adequate but has gaps. It doesn't explain the return values or what 'detect' yields (e.g., a boolean, a report), which is critical since there's no output schema. The description covers the basic purpose but lacks details on results or integration with siblings.
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%, with clear descriptions for all parameters: current_context, detection_method, and goal. The description mentions 'various strategies,' which loosely relates to the detection_method parameter but doesn't add specific meaning beyond the schema. With high schema coverage, the baseline score of 3 is appropriate as the description provides minimal extra parameter insight.
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's purpose: 'Detect if the agent is stuck in a loop using various strategies.' It specifies the verb ('detect') and resource ('loop'), but doesn't explicitly differentiate from sibling tools like 'configure_detection' or 'get_monitoring_status' which might be related to loop detection configuration or status monitoring. The purpose is clear but lacks sibling differentiation.
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. It doesn't mention prerequisites, ideal scenarios, or exclusions. With siblings like 'configure_detection' and 'start_monitoring', there's no indication of how this detection tool fits into a workflow or when it should be preferred over other tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_monitoring_statusARead-onlyIdempotent
Get current monitoring status and statistics
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true, destructiveHint=false, idempotentHint=true, and openWorldHint=false, covering safety and idempotency. The description adds minimal behavioral context beyond this, mentioning 'current' status which implies real-time data but doesn't specify refresh rates, data freshness, or performance characteristics. No contradiction with annotations exists.
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 that states exactly what the tool does without any wasted words. It's front-loaded with the core purpose and avoids unnecessary elaboration. Every word earns its place in conveying the essential information.
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 operation with comprehensive annotations, the description is minimally adequate. However, without an output schema, it doesn't explain what 'status and statistics' includes (e.g., metrics, health indicators, timestamps). Given the sibling tools suggest a monitoring system context, more detail about the return format would be helpful for agent understanding.
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 0 parameters and 100% schema description coverage, the baseline is 4 as there are no parameters to document. The description appropriately doesn't mention parameters, focusing instead on what the tool retrieves. No additional parameter semantics are needed or 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 the verb ('Get') and resource ('current monitoring status and statistics'), making the purpose immediately understandable. It doesn't explicitly distinguish from siblings like 'start_monitoring' or 'stop_monitoring', but the 'Get' action differentiates it from mutation tools. The description avoids tautology by specifying what is being retrieved.
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 implies usage for checking current status, but provides no explicit guidance on when to use this versus alternatives like 'start_monitoring' or 'stop_monitoring'. There's no mention of prerequisites, timing considerations, or comparison to sibling tools. The context is clear but lacks specific when/when-not instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
process_trace_updateC
Process a cognitive trace update from the agent (main monitoring function)
| Name | Required | Description | Default |
|---|---|---|---|
| current_context | No | Current environment context or state, in low dash format. Example: adding_product_item | |
| goal | Yes | Current goal being pursued | |
| last_action | Yes | Latest action name to be added to the accumulated action history | |
| window_size | No | Size of the monitoring window |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide basic hints (non-readOnly, non-openWorld, non-idempotent, non-destructive), but the description adds minimal behavioral context beyond this. It mentions this is for 'main monitoring function' which suggests it might be part of a monitoring system, but doesn't explain what 'processing' entails, whether it triggers side effects, or how it interacts with the monitoring state. No contradiction with annotations exists, but the description doesn't significantly enhance understanding of the tool's 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?
The description is a single, concise sentence that gets straight to the point without unnecessary words. It's front-loaded with the core action ('Process a cognitive trace update') and adds clarifying context ('from the agent (main monitoring function)'). While efficient, it could be slightly more informative without losing conciseness.
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 has no output schema and annotations cover basic hints, the description provides minimal but adequate context for a processing function. It identifies the tool as part of monitoring, but doesn't explain what 'cognitive trace' is, what the update does, or what the expected outcomes are. For a tool with 4 parameters and no output schema, more detail on behavior and results would improve completeness, but it's not entirely inadequate.
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%, with clear descriptions for all 4 parameters (current_context, goal, last_action, window_size). The description adds no parameter-specific information beyond what the schema provides, such as explaining relationships between parameters or usage examples. With high schema coverage, the baseline score of 3 is appropriate as the description doesn't compensate but doesn't need to given the schema's completeness.
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 the tool 'Process a cognitive trace update from the agent' which provides a general purpose (processing updates) but lacks specificity about what 'cognitive trace' means or what resources are involved. It mentions 'main monitoring function' which adds some context but doesn't clearly distinguish this from sibling monitoring tools like 'start_monitoring', 'stop_monitoring', or 'get_monitoring_status'. The purpose is understandable but vague compared to what could be achieved.
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. With siblings like 'detect_loop', 'retrieve_similar_cases', and 'store_experience' that might handle related cognitive or monitoring functions, there's no indication of when this specific update processing is appropriate versus other tools. The phrase 'main monitoring function' implies a central role but doesn't specify context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reset_engineADestructiveIdempotent
Reset the dual-cycle engine state
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide significant behavioral information (destructiveHint: true, idempotentHint: true, readOnlyHint: false). The description adds value by specifying 'dual-cycle engine state' as the target, which gives context about what gets reset. However, it doesn't elaborate on consequences like data loss or system downtime that would be helpful given the destructive nature.
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 zero wasted words. It's appropriately sized for a parameterless tool and immediately communicates the core action without unnecessary elaboration.
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 destructive tool with no output schema, the description provides basic purpose but lacks important context about what 'reset' entails operationally. Annotations cover safety aspects, but the description could better explain the reset's scope, timing, or system impact given the tool's complexity.
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 0 parameters and 100% schema description coverage, the baseline is 4. The description appropriately doesn't discuss parameters since none exist, and it focuses on the tool's purpose instead.
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 ('Reset') and the target ('dual-cycle engine state'), providing a specific verb+resource combination. However, it doesn't differentiate this tool from sibling tools like 'stop_monitoring' or 'configure_detection' that might also affect engine state, so it doesn't reach the highest score.
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 like 'stop_monitoring' or 'configure_detection'. It doesn't mention prerequisites, timing considerations, or when-not-to-use scenarios, leaving the agent with minimal contextual direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
retrieve_similar_casesBRead-onlyIdempotent
Retrieve similar cases from the case base
| Name | Required | Description | Default |
|---|---|---|---|
| max_results | No | Maximum number of cases to return | |
| problem_description | Yes | Simple description of the problem |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true, destructiveHint=false, idempotentHint=true, and openWorldHint=false, covering safety and idempotency. The description adds no behavioral context beyond what annotations declare, such as retrieval methods or limitations, but doesn't contradict them.
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 zero waste. It's appropriately sized and front-loaded, directly stating the tool's purpose without unnecessary elaboration.
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 annotations cover safety and idempotency, and schema fully describes parameters, the description is minimally adequate. However, without an output schema, it doesn't explain return values or retrieval behavior, leaving gaps in completeness for a retrieval tool.
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%, with clear parameter descriptions in the schema. The description adds no additional meaning about parameters beyond implying retrieval based on problem description, so it meets the baseline for high schema coverage.
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 ('retrieve') and resource ('similar cases from the case base'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'store_experience' or 'process_trace_update' that might also interact with cases, missing full sibling 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?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, context for retrieval, or exclusions, leaving the agent to 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.
start_monitoringB
Start metacognitive monitoring of an agent's cognitive process
| Name | Required | Description | Default |
|---|---|---|---|
| goal | Yes | Current goal being pursued | |
| initial_beliefs | No | Initial beliefs about the task and environment |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover basic hints (e.g., not read-only, not destructive), but the description adds some context by implying this initiates a monitoring process, which suggests ongoing behavior. However, it doesn't detail what 'metacognitive monitoring' entails operationally, such as how it interacts with other tools or what side effects occur, leaving gaps in behavioral understanding.
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, direct sentence that efficiently conveys the core action without any wasted words. It's front-loaded and appropriately sized for the tool's complexity, making it easy to parse quickly.
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 lack of an output schema and the abstract nature of 'metacognitive monitoring', the description is minimally adequate but incomplete. It doesn't explain what happens after starting monitoring, what outputs or states to expect, or how it integrates with sibling tools, leaving significant contextual gaps for the agent.
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 100% schema description coverage, the input schema fully documents both parameters ('goal' and 'initial_beliefs'). The description adds no additional meaning or context about these parameters, such as how they influence monitoring or typical values, so it meets the baseline but doesn't enhance parameter understanding.
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 ('Start metacognitive monitoring') and the target ('an agent's cognitive process'), providing a specific verb+resource combination. However, it doesn't explicitly differentiate this from sibling tools like 'stop_monitoring' or 'get_monitoring_status' beyond the obvious start/stop distinction, which keeps it from a perfect score.
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 like 'stop_monitoring' or 'configure_detection'. It lacks context about prerequisites, typical scenarios, or exclusions, leaving the agent with minimal usage direction beyond the tool's name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stop_monitoringAIdempotent
Stop metacognitive monitoring and get session summary
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover key traits: readOnlyHint=false (implies mutation), destructiveHint=false (non-destructive), idempotentHint=true (safe to retry). The description adds value by specifying that stopping monitoring yields a 'session summary', which isn't captured in annotations. It doesn't disclose rate limits or auth needs, but with annotations providing safety profile, this is acceptable. 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 that front-loads the core action ('stop metacognitive monitoring') and adds the outcome ('get session summary'). Every word contributes meaning without redundancy, making it highly concise and well-structured for quick understanding.
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 has 0 parameters, annotations cover safety (non-destructive, idempotent), and no output schema, the description is reasonably complete. It explains the action and result, though it could benefit from clarifying the format of the 'session summary' or any side effects. For a simple stop operation, it provides adequate context without overcomplicating.
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 parameters with 100% coverage, so no parameter documentation is needed. The description doesn't mention parameters, which is appropriate. Baseline is 4 for zero parameters, as it avoids unnecessary details and focuses on the tool's action.
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's purpose with specific verbs ('stop monitoring' and 'get session summary') and identifies the resource ('metacognitive monitoring'). It distinguishes from siblings like 'start_monitoring' and 'get_monitoring_status' by indicating termination rather than initiation or status checking. However, it doesn't explicitly contrast with all siblings, such as 'reset_engine' or 'configure_detection', which might have overlapping contexts.
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 implies usage when stopping monitoring is needed, suggesting context after monitoring has started (e.g., using 'start_monitoring'). It doesn't provide explicit when-not-to-use guidance or name alternatives like 'reset_engine' for similar cleanup actions. The guidance is basic and relies on inference from the tool name and sibling context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
store_experienceB
Store a case for future case-based reasoning
| Name | Required | Description | Default |
|---|---|---|---|
| outcome | Yes | Whether the solution was successful | |
| problem_description | Yes | Simple description of the problem | |
| solution | Yes | What action resolved the issue |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover key behavioral traits: readOnlyHint=false (mutation), destructiveHint=false (non-destructive), idempotentHint=false (non-idempotent), and openWorldHint=false (closed-world). The description adds minimal context by implying persistence for 'future case-based reasoning,' but doesn't detail side effects like storage limits, auth needs, or error handling. No contradiction with annotations exists.
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: 'Store a case for future case-based reasoning.' It's front-loaded with the core action and purpose, with no wasted words. Every element earns its place by clearly stating the tool's function.
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 moderate complexity (mutation with three parameters), annotations provide safety and idempotency info, but no output schema exists. The description is minimal, covering only the basic purpose without details on return values or error cases. It's adequate as a starting point but lacks depth for full contextual understanding.
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%, with clear descriptions for all three parameters: outcome, problem_description, and solution. The description doesn't add meaning beyond the schema, such as formatting examples or constraints. With high schema coverage, the baseline score of 3 is appropriate, as the description doesn't compensate but doesn't need to.
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's purpose: 'Store a case for future case-based reasoning.' It specifies the verb 'store' and the resource 'a case,' making the action explicit. However, it doesn't differentiate from sibling tools like 'retrieve_similar_cases,' which is related but serves a different function (retrieval vs. storage).
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. It doesn't mention prerequisites, such as when case storage is appropriate, or contrast it with siblings like 'configure_detection' or 'process_trace_update.' Usage is implied only by the purpose, with no explicit context or exclusions provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Most tools have distinct purposes, but there is some potential overlap between 'detect_loop' and 'process_trace_update' as both involve monitoring cognitive processes. The descriptions clarify their roles, with 'detect_loop' focused on loop detection and 'process_trace_update' handling general trace updates, but an agent might occasionally confuse them in practice.
All tool names follow a consistent verb_noun pattern using snake_case, such as 'configure_detection', 'detect_loop', and 'start_monitoring'. This uniformity makes the set predictable and easy to navigate, with no deviations in naming conventions.
With 9 tools, the count is well-scoped for a dual-cycle reasoner server, covering configuration, monitoring, detection, and case management. Each tool appears to serve a specific function without redundancy, making the set appropriately sized for the domain.
The tool set provides comprehensive coverage for metacognitive monitoring and reasoning, including start/stop, detection, status retrieval, and case storage. A minor gap exists in tools for modifying or deleting stored cases, but core workflows are well-supported, allowing agents to work around this limitation.
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
MCP server for building and testing AI agents with multi-model experimentation and insights.
Real-time planetary signal engine and Model Context Protocol (MCP) server for autonomous AI agents.
Agent-to-agent reasoning-as-a-service: chain-of-thought, analysis, and decision support.
AI Reasoning Cache & Consensus Layer with 11 MCP tools via Streamable HTTP.
Related MCP Servers
- AlicenseAqualityCmaintenanceA Model Context Protocol server that provides Claude with a dedicated space for structured thinking during complex problem-solving tasks, helping improve its reasoning capabilities.14116MIT
- AlicenseBqualityNot gradedmaintenanceMCP server for structured reasoning with cognitive trap detection, verification, and context compression5411
- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol server providing pre-curated canonical memory, prose/code provenance checking, and benchmark metrics to improve accuracy and reduce costs across AI tools.AGPL 3.0
- AlicenseBqualityDmaintenanceAn MCP server for detecting retry loops and analyzing iteration patterns in agentic coding workflows, providing structured debugging intelligence to improve repair attempts.165MIT
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/cyqlelabs/mcp-dual-cycle-reasoner'
If you have feedback or need assistance with the MCP directory API, please join our Discord server