A command-line tool for converting Model Context Protocol (MCP) configuration files between different AI coding agent formats.
AI coding agents like Cursor, Roo Code, Cline, and Claude Code CLI use MCP (Model Context Protocol) for configuration, but each agent has its own unique file format, syntax, and location conventions. MaximusCli automates the conversion between these formats, eliminating the need for manual translation.
- ✅ Convert MCP configs from Cursor to Roo Code format
- ✅ Extensible architecture for adding new agent formats
- ✅ Input and output validation
- ✅ Clear error messages and warnings
- ✅ Strict mode for ensuring full compatibility
- ✅ Safe file handling with overwrite prompts
- .NET 10.0 SDK or later
git clone <repository-url>
cd maximus
dotnet builddotnet run --project MaximusCli -- convert \
--from cursor \
--to roocode \
--input ./cursor-config.json \
--output ./roocode-config.json-f, --from <agent>(REQUIRED): Source agent format (e.g., "cursor")-t, --to <agent>(REQUIRED): Target agent format (e.g., "roocode")-i, --input <path>(REQUIRED): Path to source configuration file-o, --output <path>(REQUIRED): Path for converted configuration file--validate(default: true): Validate both input and output configurations--strict(default: false): Fail if any features cannot be converted--force(default: false): Overwrite output file without prompting
Basic conversion with prompts:
dotnet run --project MaximusCli -- convert -f cursor -t roocode -i config.json -o output.jsonForce overwrite without prompts:
dotnet run --project MaximusCli -- convert -f cursor -t roocode -i config.json -o output.json --forceStrict mode (fail on warnings):
dotnet run --project MaximusCli -- convert -f cursor -t roocode -i config.json -o output.json --strictGet help:
dotnet run --project MaximusCli -- convert --help| Agent | Read (Parse) | Write | Status |
|---|---|---|---|
| Cursor | ✅ | ❌ | Supported |
| Roo Code | ❌ | ✅ | Supported |
- Cline
- Claude Code CLI
- Amp Code
- Other AI coding agents
{
"mcpServers": {
"server-name": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-example"],
"env": {
"API_KEY": "your-key"
}
}
}
}{
"mcpServers": {
"server-name": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-example"],
"env": {
"API_KEY": "your-key"
}
}
}
}| Feature | Cursor | Roo Code | Notes |
|---|---|---|---|
| Server name | ✅ | ✅ | Preserved |
| Command | ✅ | ✅ | Preserved |
| Arguments | ✅ | ✅ | Preserved as array |
| Environment vars | ✅ | ✅ | Preserved as key-value pairs |
MaximusCli uses a provider pattern for extensibility:
MaximusCli.Core/
├── Models/ # Domain models (McpConfig, McpServer)
├── Interfaces/ # Abstractions (IConfigParser, IConfigWriter)
├── Services/ # Conversion engine
└── Validators/ # Configuration validation
MaximusCli.Infrastructure/
├── Parsers/ # Agent-specific parsers (CursorConfigParser)
├── Writers/ # Agent-specific writers (RooCodeConfigWriter)
└── Validators/ # Schema validators
MaximusCli/
└── Commands/ # CLI commands
To add support for a new agent:
-
Create Parser (for reading):
- Implement
IConfigParserinterface - Parse agent-specific JSON to
McpConfigdomain model - Add to DI container in
Program.cs
- Implement
-
Create Writer (for writing):
- Implement
IConfigWriterinterface - Convert
McpConfigdomain model to agent-specific JSON - Add to DI container in
Program.cs
- Implement
Example:
public class NewAgentParser : IConfigParser
{
public string AgentName => "newagent";
public string[] SupportedVersions => new[] { "1.0" };
public async Task<ConversionResult> ParseAsync(string filePath)
{
// Implementation
}
}- Currently only supports Cursor → Roo Code conversion
- Comments in JSON configs are not preserved
- Agent-specific features not in the common model may be lost
The tool provides clear error messages for common issues:
- File not found: Input file path is invalid
- Invalid JSON: Source config is malformed
- Missing required fields: Config lacks required properties
- Unsupported agent: No parser/writer registered for agent
- Validation failure: Config doesn't meet format requirements
MaximusCli.Core: Domain logic and interfacesMaximusCli.Infrastructure: Implementation of parsers/writersMaximusCli: CLI application
dotnet testdotnet builddotnet publish -c Release -r win-x64 --self-containedContributions are welcome! To add support for a new agent:
- Fork the repository
- Create a feature branch
- Implement parser and/or writer
- Add tests
- Submit pull request
[Specify your license here]
For issues and feature requests, please open an issue on GitHub.