Skip to main content
Glama
yanggf8

Rovodev CLI MCP

by yanggf8

Rovodev CLI MCP

An MCP server wrapper that exposes Rovodev CLI as MCP tools. Modeled after gemini-mcp-tool.

Install

npm install -g rovodev-cli-mcp

Or use with npx:

npx -y rovodev-cli-mcp

Related MCP server: claude-cli-mcp

Configure in Claude Desktop

{
  "mcpServers": {
    "rovodev": {
      "command": "npx",
      "args": ["-y", "rovodev-cli-mcp"]
    }
  }
}

Environment variables to customize underlying CLI:

  • ROVODEV_CLI_PATH or ROVODEV_CMD (default: acli)

  • ROVODEV_SUBCOMMAND (default: "rovodev run")

  • ROVODEV_CONFIG_FLAG (default: --config-file)

  • ROVODEV_SHADOW_FLAG (default: --shadow)

  • ROVODEV_VERBOSE_FLAG (default: --verbose)

  • ROVODEV_RESTORE_FLAG (default: --restore)

  • ROVODEV_YOLO_FLAG (default: --yolo)

  • ROVODEV_HELP_FLAG (default: --help)

Chunking configuration (for large responses):

  • MCP_CHUNK_SIZE (preferred)

  • ROVODEV_CHUNK_SIZE (legacy) The first one found is used; default is 20000 characters if none are set.

Global setup for Claude Code (user scope)

Install the MCP server for your user so it’s available across projects in Claude Code.

  • Add with npx (no global npm install required):

    claude mcp add -s user rovodev -- npx -y rovodev-cli-mcp
  • Optional: use a globally installed binary instead of npx

    npm i -g rovodev-cli-mcp
    claude mcp add -s user rovodev rovodev-cli-mcp
  • Optional: set environment overrides when adding

    claude mcp add -s user rovodev -- \
      npx -y rovodev-cli-mcp \
      -e ROVODEV_CLI_PATH=acli \
      -e ROVODEV_SUBCOMMAND="rovodev run" \
      -e ROVODEV_CONFIG_FLAG=--config-file \
      -e ROVODEV_SHADOW_FLAG=--shadow \
      -e ROVODEV_VERBOSE_FLAG=--verbose \
      -e ROVODEV_RESTORE_FLAG=--restore \
      -e ROVODEV_YOLO_FLAG=--yolo \
      -e ROVODEV_HELP_FLAG=--help
  • Verify it’s connected:

    claude mcp list
  • Remove from user scope (to update or uninstall):

    claude mcp remove -s user rovodev

Global setup for Amazon Q CLI

Install the MCP server for Amazon Q CLI to use Rovodev tools in Q chat sessions.

  • Add with npx (no global npm install required):

    q mcp add --name rovodev --command npx --args "-y,rovodev-cli-mcp"
  • Optional: set environment variables when adding

    q mcp add --name rovodev --command npx --args "-y,rovodev-cli-mcp" \
      --env "ROVODEV_CLI_PATH=acli" \
      --env "ROVODEV_SUBCOMMAND=rovodev run"
  • Verify it's installed:

    q mcp list
  • Check server status:

    q mcp status --name rovodev
  • Remove (to update or uninstall):

    q mcp remove --name rovodev

Using tools in Q CLI: Tools are available with the rovodev___ prefix:

  • rovodev___ask-rovodev - Send messages to Rovodev agent (enhanced with session support)

  • rovodev___tap-rovodev - Alias for ask-rovodev

  • rovodev___session_manager - Manage isolated sessions for context persistence

  • rovodev___health_check - Check server health and CLI availability

  • rovodev___diagnostics - Get comprehensive system diagnostics

  • rovodev___next-chunk - Fetch next chunk for large responses

  • rovodev___fetch-chunk - Fetch specific chunk by index

  • rovodev___Help - Show Rovodev CLI help

  • rovodev___Ping - Test connectivity

Local development with Claude Code

If you are iterating on this repo and want Claude Code to use your local build:

  1. Install deps and build

npm i
npm run build
  1. Point Claude Code at your local dist/index.js

claude mcp remove -s user rovodev || true
claude mcp add -s user rovodev -- node "$(pwd)/dist/index.js"
  1. Verify connection

claude mcp list
  1. Optional: quick smoke test (no Claude required)

node scripts/smoke.mjs

Notes:

  • This server communicates over stdio. Do not print to stdout; only stderr is safe for logs.

  • The server already routes logs to stderr; if you add logs, follow the same pattern.

  • You can still register via npx -y rovodev-cli-mcp, but during development using node dist/index.js avoids npm network hiccups.

Troubleshooting

  • "Failed to connect" in claude mcp list

    • Ensure your Node is >= 18 (node -v).

    • Ensure no output is written to stdout (stdout is reserved for the MCP protocol). This repo's logger writes to stderr only.

    • Try registering the local path: claude mcp add -s user rovodev -- node "$(pwd)/dist/index.js".

    • If using WSL, register from the Linux side; Claude Code on Windows can discover WSL user-scoped config.

  • Authentication errors (API key issues)

    • If you see "Authentication Error" messages, your rovodev CLI API key may be expired or invalid

    • Check your rovodev CLI configuration and update your API key

    • The server now detects authentication issues and provides clear error messages instead of hanging

  • Underlying CLI not found

    • The default command is acli. Install it or override:

    claude mcp add -s user rovodev -- \
      node "$(pwd)/dist/index.js" \
      -e ROVODEV_CLI_PATH=/path/to/your/cli
  • Large responses

    • Use ask-rovodev first. If the response is chunked, call next-chunk repeatedly with the provided cacheKey. You can also fetch a specific page with fetch-chunk.

    • Tune chunk size with env vars (in order of precedence): MCP_CHUNK_SIZE, then legacy ROVODEV_CHUNK_SIZE.

Tools and streaming

This server supports streaming chunk-caching to reduce memory usage for large outputs. The ask-rovodev tool streams the CLI output directly into a chunk cache. If the output exceeds the page chunk size, it returns the first chunk and a cacheKey so you can fetch subsequent chunks with next-chunk or fetch-chunk.

Tools

Enhanced Core Tools

  • ask-rovodev: { message?: string, prompt?: string, configFile?: string, shadow?: boolean, verbose?: boolean, restore?: boolean, yolo?: boolean, sessionId?: string, retries?: number, backoffMs?: number, args?: string[], pagechunksize?: number }

    • New: Session isolation with sessionId, retry logic with retries/backoffMs

    • Default: yolo mode is enabled for non-interactive MCP usage; set yolo: false to disable if you need interactive behavior.

    • Tip: If your message starts with dashes (e.g., --example), the underlying CLI may interpret it as a flag. The server inserts -- before such messages to prevent flag parsing.

  • tap-rovodev: alias of ask-rovodev

Session Management

  • session_manager: { action: "create" | "destroy" | "list" | "get" | "cleanup", sessionId?: string, timeoutMs?: number }

    • Manage isolated sessions for maintaining context across multiple commands

Health & Diagnostics

  • health_check: { detailed?: boolean }

    • Check server health including CLI availability, session manager status, and environment configuration

  • diagnostics: { includePerformance?: boolean, includeHealth?: boolean, includeSessions?: boolean, includeSystem?: boolean, includeRecentExecutions?: boolean, recentLimit?: number }

    • Get comprehensive system diagnostics including performance metrics and resource usage

Utility Tools

  • next-chunk: { cacheKey: string } Fetch the next chunk sequentially from a cached large response

  • fetch-chunk: { cacheKey: string, chunkIndex: number } (optional) Fetch a specific chunk by index

  • Help: show help from underlying CLI

  • Ping: connectivity test

Server behavior and tuning via env vars:

  • Logging level: MCP_LOG_LEVEL (debug | info | warn | error | silent)

  • Exec timeout: MCP_EXEC_TIMEOUT_MS (kill underlying CLI after N ms; includes partial stdout tail in error)

  • Max stdout buffer: MCP_MAX_STDOUT_SIZE (maximum output buffer size before termination)

  • Working directory: MCP_CWD (set process cwd for the underlying CLI)

  • Chunk cache TTL: MCP_CHUNK_TTL_MS (default 20 minutes)

  • Chunk cache max entries: MCP_CHUNK_MAX_ENTRIES (default 500)

Handling large responses (simple sequential flow)

  • If the output is too large, the first ask-rovodev call returns page 1 plus a cacheKey:

    • Response header example: cacheKey: <key>, chunk: 1/N

  • To continue, call next-chunk with the same cacheKey to get chunk 2, then 3, etc. until it reports no further chunks.

Available Tools

9 tools
ask-rovodevB

Invoke Rovodev agent via 'acli rovodev run'. Always runs in yolo mode (non-interactive) for MCP usage. Supports flags like --config-file, --shadow, --verbose, --restore.

ParametersJSON Schema
NameRequiredDescriptionDefault
argsNoExtra raw args passed to the CLI after flags
yoloNoEnable yolo mode (non-interactive). Default: true in MCP
promptNoAlias for message
shadowNoEnable shadow mode (--shadow)
messageNoInitial instruction for the agent
restoreNoContinue last session if available (--restore)
retriesNoNumber of retry attempts for transient failures (1-5, default: 1)
verboseNoEnable verbose tool output (--verbose)
backoffMsNoBase delay in milliseconds between retries (default: 1000)
sessionIdNoSession ID to use for isolated execution context
configFileNoPath to config file (maps to --config-file)
pagechunksizeNoOptional chunk size (characters) for splitting large responses

TDQS

B3.2/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. It discloses 'Always runs in yolo mode (non-interactive)' and lists supported flags, but does not describe potential side effects, authentication needs, rate limits, or what happens when called beyond invoking the agent. The behavioral transparency is minimal but not absent.

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 two sentences long, each sentence adds value. The first sentence defines the action and invocation method. The second sentence clarifies operational mode and flags. No word is wasted, and critical information is front-loaded.

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

Completeness2/5

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

Given 12 parameters, no output schema, and no annotations, the description is insufficient. It does not explain return values, error handling, session management implications, or how to structure complex commands. The agent lacks context for effective parameter usage.

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?

The schema covers all 12 parameters with descriptions (100% coverage), so baseline is 3. The description mentions example flags (--config-file, --shadow, --verbose, --restore) but adds no new meaning beyond the schema. It does not explain parameter interplay or default behavior for omitted parameters.

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 'Invoke' and the resource 'Rovodev agent', and specifies it runs in yolo mode via 'acli rovodev run'. It distinguishes from sibling tools like 'tap-rovodev' only implicitly by naming the command; no explicit differentiation is provided.

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 lacks any guidance on when to use this tool versus alternatives such as 'tap-rovodev' or 'session_manager'. It does not specify prerequisites, selection criteria, or exclusions, leaving the agent to infer usage context.

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

diagnosticsA

Get comprehensive diagnostics information including performance metrics, health status, session statistics, and system information.

ParametersJSON Schema
NameRequiredDescriptionDefault
recentLimitNoNumber of recent executions to include (1-50, default: 10)
includeHealthNoInclude health check results (default: true)
includeSystemNoInclude system information (default: true)
includeSessionsNoInclude session manager statistics (default: true)
includePerformanceNoInclude performance metrics (default: true)
includeRecentExecutionsNoInclude recent command executions (default: false)

TDQS

A4/5.0
Behavior4/5

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

With no annotations, the description carries full burden. It uses 'Get' indicating a read operation, and lists included data, but does not disclose potential performance impact or system load from collecting diagnostics. However, it is transparent enough for a read-only tool.

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?

Single sentence that is concise and front-loaded: it states the purpose and lists key information categories without waste. Every word earns its place.

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?

The tool lacks an output schema but the description lists the expected categories of information. With 6 optional parameters clearly described, it provides sufficient context for an agent to invoke correctly. Some details on output format would improve 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?

Input schema has 100% description coverage; each parameter has a clear description. The tool description adds no additional meaning beyond listing categories. Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool's purpose: 'Get comprehensive diagnostics information.' It lists specific categories (performance metrics, health status, session statistics, system information), effectively distinguishing it from sibling tools like health_check and session_manager.

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 the tool is for comprehensive diagnostics but provides no explicit guidance on when to use this tool versus alternatives (e.g., health_check for health only). No exclusion criteria or context is given.

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

fetch-chunkA

Fetch a specific chunk from a previously cached large response (from ask-rovodev)

ParametersJSON Schema
NameRequiredDescriptionDefault
cacheKeyYesCache key from a previous ask-rovodev response
chunkIndexYesWhich chunk to retrieve (1-based index)

TDQS

A3.8/5.0
Behavior3/5

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

No annotations exist, so the description carries the full burden. It discloses the basic fetch behavior without mentioning side effects, permissions, or error conditions. This is adequate for a simple read operation, but lacks depth such as what happens if the cache key is invalid or if chunks are missing.

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?

A single sentence that immediately states the verb and resource. Every word is necessary and effective. No redundancy or filler.

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?

For a simple fetch tool, the description covers the source (ask-rovodev) and purpose. It lacks mention of the relationship with 'next-chunk', but given the simplicity and good schema coverage, it is nearly complete. Minor gap: no error handling or precondition info.

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 coverage is 100%, so the schema already describes both parameters well. The description adds no additional meaning beyond restating the purpose; no constraints, formatting, or usage tips are provided. Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly specifies the action ('Fetch a specific chunk'), the resource ('previously cached large response'), and the source ('from ask-rovodev'), distinguishing it from sibling tools like 'next-chunk' (which likely retrieves sequential chunks) and 'ask-rovodev' (which creates the cache).

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 states 'from a previously cached large response (from ask-rovodev)', implying it should be used after ask-rovodev, but does not explicitly mention when not to use it or alternatives like 'next-chunk' for sequential access. Some context is provided but lacks thorough guidance.

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

health_checkB

Check the health status of the Rovodev CLI MCP server, including Rovodev CLI availability, session manager status, and environment configuration.

ParametersJSON Schema
NameRequiredDescriptionDefault
detailedNoInclude detailed diagnostic information in the response (default: false)

TDQS

B3.2/5.0
Behavior3/5

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

No annotations exist, so the description carries the burden. It states the tool checks health status and lists included components but does not disclose whether it performs any modifications, requires authentication, or what happens if components are unavailable. For a health check, it is moderately transparent but could be more explicit about being read-only.

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, clear sentence that efficiently conveys the tool's purpose and scope. No unnecessary words, though it could be slightly more concise by removing 'Rovodev' redundancy. Overall well-structured.

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's simplicity (no required parameters, one optional boolean, no output schema), the description provides adequate context about what the health check covers. However, it does not describe the response format, which might be helpful for an 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?

The single parameter 'detailed' is fully described in the input schema (100% coverage). The description adds no additional meaning beyond the schema, so the baseline score of 3 is appropriate.

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 checks health status of the server, including specific components like CLI availability, session manager, and environment. However, it does not explicitly distinguish itself from similar sibling tools like 'diagnostics' or 'session_manager', leading to potential confusion.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. The description merely states what it does, without indicating appropriate contexts or when not to use it.

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

HelpA

Show underlying Rovodev CLI help output

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations, the description carries full burden. It clearly indicates a read-only operation (displaying help) with no side effects. While it could mention that no modifications occur, the simplicity of the tool makes this adequate.

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 sentence with no wasted words. It is front-loaded with the core action and resource, making it immediately understandable.

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

Completeness5/5

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

Given no parameters, no output schema, and a straightforward purpose, the description is complete. It tells an agent exactly what the tool does without needing additional context.

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?

There are no parameters, so the schema coverage is 100% (trivially). The description adds no parameter information, but per the rule, zero parameters earn a baseline of 4. No additional semantics needed.

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

Purpose5/5

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

The description 'Show underlying Rovodev CLI help output' clearly states the tool's purpose with a specific verb ('Show') and resource ('Rovodev CLI help output'). It distinguishes itself from sibling tools like 'ask-rovodev' or 'diagnostics' by focusing purely on CLI help.

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 CLI help is needed, but no explicit guidance on when to use vs. alternatives or when not to use is provided. Given the context of sibling tools, the purpose is reasonably clear but lacks explicit usage context.

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

next-chunkB

Fetch the next chunk for a previously cached large response (from ask-rovodev)

ParametersJSON Schema
NameRequiredDescriptionDefault
cacheKeyYesCache key from a previous ask-rovodev response

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It does not disclose whether fetching a chunk is idempotent, if it has side effects, rate limits, or what the response format is. This is a significant gap for a tool that likely involves state.

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 conveys the core action and prerequisite. No wasted words.

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 simplicity (one parameter, no output schema), the description is mostly adequate. However, it lacks details on what constitutes a 'chunk', error handling, or the relationship with 'fetch-chunk', which could lead to incomplete 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?

Schema coverage is 100%, and the description adds context by linking the cacheKey to ask-rovodev, which is beyond the schema's description. This helps the agent understand the parameter's origin.

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 it fetches the next chunk for a previously cached large response from ask-rovodev. It uses a specific verb and resource, but does not explicitly differentiate from the sibling 'fetch-chunk'.

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 use after a cached response from ask-rovodev, but provides no explicit when-to-use, when-not-to-use, or alternatives. The context suggests it's for pagination, but no guidance is given.

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

PingA

Echo back a message for testing

ParametersJSON Schema
NameRequiredDescriptionDefault
messageNoMessage to echo back

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations provided, the description takes full responsibility. It correctly states the tool echoes back a message, implying no destructive side effects. This is adequate for a trivial test tool.

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 sentence with no unnecessary words, perfectly concise and front-loaded.

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

Completeness5/5

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

Given the tool's simplicity (one optional parameter, no output schema), the description is complete. It tells the agent exactly what the tool does and when to use it.

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?

The parameter 'message' has a full description in the schema (100% coverage), so the description's addition of 'Echo back a message' adds minimal extra meaning. This 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.

Purpose5/5

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

The description clearly states the tool echoes back a message for testing, with a specific verb ('Echo back') and resource ('a message'), distinguishing it from sibling tools that perform different functions like diagnostics or health checks.

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

Usage Guidelines4/5

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

The description says 'for testing', indicating the tool is used for test or connectivity verification. While it does not provide explicit when-not or alternatives, the simplicity of the tool makes this sufficient.

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

session_managerA

Manage isolated sessions for Rovodev CLI operations. Each session has its own working directory and can be used to maintain context across multiple commands.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesAction to perform: create new session, destroy existing session, list all sessions, get session details, or cleanup expired sessions
sessionIdNoSession ID (required for destroy and get actions)
timeoutMsNoSession timeout in milliseconds (only used with create action, defaults to 30 minutes)

TDQS

A3.6/5.0
Behavior2/5

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

No annotations provided, so description carries the full burden. It only mentions 'isolated sessions' and 'working directory' but omits details like side effects, authentication needs, or rate limits. The actions from the schema are not elaborated upon in the description.

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?

Two concise sentences, front-loaded with clear subject and verb. Every word serves a purpose. No repetition or fluff.

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

Completeness2/5

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

Given no output schema and multiple actions, the description should provide more context about return values and action-specific behavior. It lacks completeness for a tool with 3 parameters and 5 actions. More details are needed for effective use.

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% for all 3 parameters, so the bar is higher. The description adds no additional meaning beyond the schema; it only restates the overall purpose. Thus, it meets the baseline but does not enhance parameter understanding.

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

Purpose5/5

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

The description clearly states the tool manages isolated sessions for Rovodev CLI operations, specifying sessions have their own working directory and maintain context. This distinguishes it from sibling tools which are unrelated to session management.

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

Usage Guidelines4/5

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

The description implies usage for session management but does not explicitly state when to use vs alternatives or provide exclusions. However, it lists the possible actions (create, destroy, list, get, cleanup) which offer some guidance. Siblings are clearly different, so context is clear but not exhaustive.

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

tap-rovodevB

Invoke Rovodev agent via 'acli rovodev run'. Always runs in yolo mode (non-interactive) for MCP usage. Supports flags like --config-file, --shadow, --verbose, --restore.

ParametersJSON Schema
NameRequiredDescriptionDefault
argsNoExtra raw args passed to the CLI after flags
yoloNoEnable yolo mode (non-interactive). Default: true in MCP
promptNoAlias for message
shadowNoEnable shadow mode (--shadow)
messageNoInitial instruction for the agent
restoreNoContinue last session if available (--restore)
retriesNoNumber of retry attempts for transient failures (1-5, default: 1)
verboseNoEnable verbose tool output (--verbose)
backoffMsNoBase delay in milliseconds between retries (default: 1000)
sessionIdNoSession ID to use for isolated execution context
configFileNoPath to config file (maps to --config-file)
pagechunksizeNoOptional chunk size (characters) for splitting large responses

TDQS

B3.2/5.0
Behavior2/5

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

Without annotations, the description must fully disclose behavior. It only mentions 'always runs in yolo mode (non-interactive)', which is valuable, but omits other critical traits like authentication requirements, side effects, rate limits, or error handling.

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?

Two sentences, front-loaded with the main action, and no redundant information. Every sentence serves a clear purpose.

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

Completeness2/5

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

For a tool with 12 parameters and no output schema, the description is too brief. It lacks guidance on parameter interplay (e.g., retries with backoff) and does not explain how this tool fits with siblings like session_manager.

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 documentation covers 100% of parameters, so baseline is 3. The description lists a few flags but adds no semantic depth beyond what the schema already provides.

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

Purpose5/5

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

The description clearly states the action: 'Invoke Rovodev agent via 'acli rovodev run''. It identifies the specific verb (invoke) and resource (Rovodev agent) and differentiates from siblings like ask-rovodev by implying this is the direct execution command.

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

Usage Guidelines2/5

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

No explicit guidance on when to use this tool versus alternatives. Siblings such as ask-rovodev or diagnostics exist, but the description does not mention them or suggest when to choose one over the other.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 9 tool updatesv0.1.0
    • First observedask-rovodev
    • First observeddiagnostics
    • First observedfetch-chunk
    • First observedhealth_check
    • First observedHelp
    • First observednext-chunk
    • First observedPing
    • First observedsession_manager
    • First observedtap-rovodev

TDQS

B3.3/5.0
Disambiguation2/5

Multiple tools have identical or overlapping purposes: 'ask-rovodev' and 'tap-rovodev' have exactly the same description, making them indistinguishable. 'fetch-chunk' and 'next-chunk' both deal with chunks from cached responses, though they are differentiated. 'diagnostics' and 'health_check' also overlap in providing system information.

Naming Consistency2/5

Tool names follow no consistent pattern: some use hyphens (ask-rovodev, fetch-chunk), some underscores (health_check, session_manager), some are capitalized (Help, Ping), others lowercase. Verbs and nouns are mixed without clear convention.

Tool Count4/5

With 9 tools, the count falls within the typical 3-15 range. However, the presence of two identical tools (ask-rovodev and tap-rovodev) suggests the set could be streamlined. Overall, the number is reasonable for the server's purpose.

Completeness3/5

The tool surface covers the core operations of invoking the Rovodev agent, managing sessions, and checking health, but lacks lifecycle management for sessions (e.g., listing, deleting) and config management beyond flags. The duplicate tool indicates unnecessary redundancy.

Maintenance

ActivityInactive
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/yanggf8/rovodev-cli-mcp'

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