An MCP server for interacting with the Cutover API, powered by FastMCP.
To set up the project, ensure you have the required dependencies installed. For macOS users, you can install uv using Homebrew:
brew install uv- Copy
.env.exampleto.envand fill in your Cutover API credentials. - Install dependencies with uv:
uv sync
- Run the server using:
uv run python src/cutover_mcp/server.py
- Run tests:
uv run pytest
src/cutover_mcp/- Main packageclients/- API clientresources/- Resource definitions (MCP endpoints)tools/- Tool logicserver.py- FastMCP server entrypointtests/- Tests
If you want to use VS Code with Github Copilot as a way to use to call out to this MCP server you can use mcp.json.example.
- Copy
mcp.json.exampleto.vscode/mcp.json(create the.vscode/directory if not already present) - Change the
Users/YOUR-USER-NAME/...example path to be pointing at your working directory instead (this is for MacOSX) - Restart VS Code for the changes to take effect, you should be able to see the MCP server and all the defined tools from the little hammer icon inside the Github Copilot chat.
If you prefer to use a standalone LLM, you can set up Claude Desktop:
- Download and install Claude Desktop.
- Copy
claude_desktop_config.json.exampleto~/Library/Application Support/Claude/claude_desktop_config.json - Update the configuration file as needed for your environment.
- Restart Claude Desktop, you should now see
cutover-mcpwhen clicking on the settings cog in the chat window.
This will allow Claude Desktop to connect to your MCP server.
To build and run the Docker container, specify the repository root as the build context. For example:
docker build -t cutover-mcp /path/to/your/repoThis ensures all necessary files are included in the image.
You can configure your MCP server to use the Docker container as follows:
{
"mcpServers": {
"cutover-mcp-2": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"cutover-mcp"
]
}
}
}To use Docker in the example configuration files (mcp.json.example and claude_desktop_config.json.example), replace the existing commands with the Docker-based commands shown in the "Docker Usage" section above.