Skip to main content
Glama
README.md
# Rovodev MCP Tool

Model Context Protocol server for Atlassian Rovo Dev CLI integration. This tool enables AI assistants like Claude to leverage Rovo Dev's powerful code analysis and capabilities through the MCP protocol.

Rovo Dev is a comprehensive AI coding assistant that already includes built-in MCP support. This tool allows Rovo Dev to be used as an external tool from other MCP-compatible AI assistants, creating a bridge between different AI tools.

## Features

- **Large Context Windows**: Leverage Rovo Dev's powerful AI capabilities for analyzing large files and entire codebases
- **File Analysis**: Use `@filename` or `@directory` syntax to include file contents in your queries
- **Multiple Models**: Support for various AI models configured in Rovo Dev (default: anthropic.claude-sonnet-4-5-20250929-v1:0)
- **Flexible Approval Modes**: Control tool execution with plan/default/auto-edit/yolo modes
- **MCP Protocol**: Seamless integration with MCP-compatible AI assistants
- **Rovo Dev Specific Features**: Includes support for code mode, review mode, optimization suggestions, and detailed explanations

## Prerequisites

- Node.js v16 or higher
- acli rovodev installed and configured (Atlassian Rovo Dev CLI)

## Installation

### Prerequisites

First, ensure you have Rovo Dev CLI installed and configured:

```bash
# Follow Rovo Dev installation instructions to install acli rovodev
# Configure your models and authentication in ~/.rovodev/config.yml
```

### Quick Setup (Easiest - Recommended)

Use Claude Code's built-in MCP installer:

```bash
claude mcp add rovodev-cli -- npx -y @jaggerxtrm/rovodev-mcp-tool
```

This single command configures everything automatically!

### Manual Configuration for Rovo Dev

Since Rovo Dev already has MCP support, you can add this tool to your existing Rovo Dev configuration:

Edit `~/.rovodev/config.yml` and add to the `allowedMcpServers` list:
```yaml
mcp:
  allowedMcpServers:
  - stdio:npx:-y @jaggerxtrm/rovodev-mcp-tool  # Add this line
```

Or add to `~/.rovodev/mcp.json`:
```json
{
  "mcpServers": {
    "...": "...",
    "rovodev-cli": {
      "command": "npx",
      "args": [
        "-y",
        "@jaggerxtrm/rovodev-mcp-tool"
      ]
    }
  }
}
```

### From Source (Development)

1. Clone and install dependencies:
```bash
git clone <repo-url>
cd rovodev-mcp-tool
npm install
```

2. Build the project:
```bash
npm run build
```

3. Link locally:
```bash
npm link
```

## Available Tools

### ask-rovodev

The main tool for interacting with Rovodev AI.

**Parameters:**
- `prompt` (required): Your question or instruction
  - Use `@filename` to include a file's contents
  - Use `@directory` to include all files in a directory
- `model` (optional): Model to use (default, advanced, basic, etc.)
- `approvalMode` (optional): Control tool execution approval
  - `plan`: Analyze tool calls without executing
  - `default`: Prompt for approval (default behavior)
  - `auto-edit`: Auto-approve file edits
  - `yolo`: Auto-approve all tool calls
- `yolo` (optional): Shortcut for approvalMode='yolo'
- `allFiles` (optional): Include all files in current directory as context
- `debug` (optional): Enable debug mode

**Examples:**
```javascript
// Analyze a specific file
{
  "prompt": "@src/main.ts Explain what this code does"
}

// Analyze entire codebase
{
  "prompt": "@src/ Summarize the architecture of this codebase"
}

// Use specific features
{
  "prompt": "Review my authentication system for security issues",
  "reviewMode": true,
  "explain": true
}

// Optimize code
{
  "prompt": "How can I optimize this algorithm?",
  "optimize": true,
  "explain": true
}
```

### ping

Simple echo test to verify the connection.

**Parameters:**
- `prompt` (optional): Message to echo (defaults to "Rovodev Pong!")

### Help

Display Rovodev CLI help information.

**Parameters:** None

## Configuration

The tool uses the following default models:
- **Primary**: default
- **Fallback**: basic (used if primary hits quota limits)

You can override these by specifying the `model` parameter in your requests.

## Usage with Claude Code

Once installed as an MCP server, you can use it within Claude Code:

```
Ask Rovodev to analyze the authentication system in @src/auth/
```

Claude will automatically use the ask-rovodev tool with the appropriate parameters.

## Project Structure

```
rovodev-mcp-tool/
├── src/
│   ├── index.ts              # MCP server entry point
│   ├── constants.ts          # Configuration and constants
│   ├── tools/
│   │   ├── registry.ts       # Tool registration system
│   │   ├── ask-rovodev.tool.ts  # Main Rovodev interaction tool
│   │   ├── simple-tools.ts   # Utility tools (ping, help)
│   │   └── index.ts          # Tool exports
│   └── utils/
│       ├── commandExecutor.ts # Command execution utility
│       ├── rovodevExecutor.ts    # Rovodev CLI wrapper
│       └── logger.ts          # Logging utility
├── package.json
├── tsconfig.json
└── README.md
```

## How It Works

1. The MCP server listens for tool calls via stdio transport
2. When a tool is called, the server validates the arguments using Zod schemas
3. For `ask-rovodev`, the prompt is passed to the acli rovodev run command with appropriate flags
4. File references (`@filename`) are processed by Rovo Dev's built-in file processing
5. Output from Rovo Dev is captured and returned to the MCP client
6. The tool integrates with Rovo Dev's existing configuration and model settings

## Troubleshooting

### "acli rovodev not found"

Make sure the acli rovodev command is installed and available in your PATH.

### "Command timed out"

For very large files or codebases, the analysis may take longer than the default 10-minute timeout. Consider:
- Using `.rovodevignore` to exclude unnecessary files
- Breaking down large queries into smaller chunks
- Using `approvalMode: "plan"` to analyze without executing

### "Invalid tool arguments"

Check that your arguments match the tool schema. Use the `Help` tool to see available options.

## License

MIT

## Contributing

Contributions are welcome! Please feel free to submit issues or pull requests.

## Credits

Inspired by [qwen-mcp-tool](https://github.com/QwenLM/qwen-mcp-tool) and [gemini-mcp-tool](https://github.com/jamubc/gemini-mcp-tool).

TDQS

B3/5.0

Scored across 3 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: ask-rovodev is for AI-powered querying with file analysis, Help provides CLI documentation, and ping is for connection testing. There is no overlap in functionality, making tool selection unambiguous.

Naming Consistency2/5

Naming is inconsistent: ask-rovodev uses kebab-case with a verb-noun structure, Help uses PascalCase (or title case) with a noun only, and ping uses lowercase with a verb only. There is no predictable pattern across the tool set.

Tool Count3/5

With only 3 tools, the set feels thin for a server named 'Rovodev MCP Tool', which suggests broader capabilities. However, the tools cover basic AI querying, help, and connectivity, so it's borderline but not severely mismatched.

Completeness2/5

Inferred domain is AI-assisted development or code analysis, but the tool surface is significantly incomplete. There are no tools for operations like code generation, debugging, version control integration, or configuration management, which are typical in such domains, leading to potential agent failures.