# 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).