Skip to main content
Glama
cyqlelabs

MCP Dual-Cycle Reasoner

by cyqlelabs

CI codecov

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 analysis

    • natural: For sentiment analysis and tokenization

    • compromise: For natural language processing

  • Statistics:

    • simple-statistics: For statistical calculations

    • ml-matrix: For matrix operations

  • Development Tools:

    • jest: For testing

    • eslint: For linting

    • prettier: For code formatting

    • zod: For schema validation

Installation

To get the project running locally, follow these steps:

  1. Clone the repository:

    git clone https://github.com/cyqlelabs/mcp-dual-cycle-reasoner.git
    cd mcp-dual-cycle-reasoner
  2. Install dependencies:

    npm install
  3. Build the project:

    npm run build

Usage

Running the Server

You can run the server in two modes:

  1. HTTP Stream (Default):

    npm start

    The server will start on port 8080.

  2. 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 tools
configure_detectionB

Configure loop detection parameters and domain-specific progress indicators

ParametersJSON Schema
NameRequiredDescriptionDefault
alternating_thresholdNoThreshold for detecting alternating action patterns (0.0-1.0)
min_actions_for_detectionNoMinimum number of actions required before loop detection
progress_indicatorsNoAction patterns that indicate positive task progress (e.g., ["success", "complete", "found"])
progress_threshold_adjustmentNoHow much to increase thresholds when progress indicators are present
repetition_thresholdNoThreshold for detecting repetitive action patterns (0.0-1.0)
semantic_intentsNoDomain-specific action intents for semantic analysis (e.g., ["navigating", "clicking", "typing"])

TDQS

B3.3/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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

Given the tool's complexity (6 parameters 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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. 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_loopA
Read-onlyIdempotent

Detect if the agent is stuck in a loop using various strategies

ParametersJSON Schema
NameRequiredDescriptionDefault
current_contextNoCurrent environment context or state, in low dash format. Example: sending_email
detection_methodNoLoop detection method to use: statistical, pattern or hybrid.hybrid
goalYesCurrent goal being pursued

TDQS

A3.5/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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

The description clearly states the tool's purpose: '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.

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. 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_statusA
Read-onlyIdempotent

Get current monitoring status and statistics

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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)

ParametersJSON Schema
NameRequiredDescriptionDefault
current_contextNoCurrent environment context or state, in low dash format. Example: adding_product_item
goalYesCurrent goal being pursued
last_actionYesLatest action name to be added to the accumulated action history
window_sizeNoSize of the monitoring window

TDQS

C2.9/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose3/5

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.

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. 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_engineA
DestructiveIdempotent

Reset the dual-cycle engine state

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives 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_casesB
Read-onlyIdempotent

Retrieve similar cases from the case base

ParametersJSON Schema
NameRequiredDescriptionDefault
max_resultsNoMaximum number of cases to return
problem_descriptionYesSimple description of the problem

TDQS

B3.3/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. 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

ParametersJSON Schema
NameRequiredDescriptionDefault
goalYesCurrent goal being pursued
initial_beliefsNoInitial beliefs about the task and environment

TDQS

B3.3/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives 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_monitoringA
Idempotent

Stop metacognitive monitoring and get session summary

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose4/5

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

The description clearly states the tool's purpose 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.

Usage Guidelines3/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
outcomeYesWhether the solution was successful
problem_descriptionYesSimple description of the problem
solutionYesWhat action resolved the issue

TDQS

B3.3/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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

The description clearly states the tool's purpose: '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.

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. 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

A3.6/5.0
Disambiguation4/5

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.

Naming Consistency5/5

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.

Tool Count5/5

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.

Completeness4/5

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

ActivityMaintained
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

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

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

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

curl -X GET 'https://glama.ai/api/mcp/v1/servers/cyqlelabs/mcp-dual-cycle-reasoner'

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