C64UltimateMcpServer
C64 Ultimate MCP Server
claude mcp add --transport stdio ch0mik-c64ultimatemcpserver dotnet run \ --env Ultimate__BaseUrl="http://<your-c64-ultimate-ip>:<port>"
How to use
This MCP server provides a comprehensive Model Context Protocol interface for the Commodore 64 Ultimate device. It exposes a large catalog of operations (45+ tools) grouped under categories such as Machine Control, Program Management, Memory Management, Audio Playback, Drive Management, Disk Creation, ROM Management, File Management, Configuration Management, and Connection/System Information. The server is designed to be consumed via MCP prompts and clients, enabling automated control of the C64 Ultimate hardware, program generation, memory and drive operations, and real-time streaming of video, audio, and debug data. You can connect through the provided HTTP interface and issue tool invocations, prompts, and configuration queries. Client libraries (e.g., a dedicated C64UltimateClient NuGet package) and example integrations are described in the repository, making it straightforward to integrate into your own tools or CI pipelines.
To use, start the server on your network using the recommended dotnet command from the Quick Start section. Then point your MCP clients at the server URL (for example http://localhost:8080 by default). You can perform machine control like ultimate_reboot_device, manage disk images with ultimate_mount_disk, generate BASIC to PRG with ultimate_generate_basic_prg, or stream audio/video/debug content via the streaming endpoints. The MCP prompts subsystem also exposes 14 prompt templates (prompts/list and prompts/get), which you can employ to guide the behavior of the MCP server when interacting with the C64 Ultimate device.
How to install
Prerequisites:
- .NET 10.0 SDK
- A C64 Ultimate device on the same network
- curl or any HTTP client for testing (optional)
- Docker (optional) if you prefer containerized deployment
Installation steps:
- Clone the repository:
git clone https://github.com/ch0mik/C64UltimateMcpServer.git
cd C64UltimateMcpServer
- Build the project:
dotnet build
- Run the server:
dotnet run
- Verify the server is running (default base URL):
# If you use the default port, you should see the server listening at http://localhost:8080
curl -I http://localhost:8080/health
Optional Docker usage:
- If you prefer Docker, you can wrap the server according to your container workflow. Ensure the environment variable for the base URL is set inside the container.
# docker-compose example snippet
services:
c64-ultimate-mcp:
image: your-repo/c64-ultimate-mcp
environment:
- Ultimate__BaseUrl=http://192.168.0.120:8080
ports:
- "8080:8080"
Prerequisites (Docker): install Docker Desktop from https://www.docker.com/products/docker-desktop and ensure the container has network access to your C64 Ultimate device.
Additional notes
Environment variables: Ultimate__BaseUrl governs the base URL of the connected C64 Ultimate device. You can override it at runtime to point to the appropriate device IP and port. If you run into issues, ensure the C64 Ultimate device is reachable from the host network, and check the server logs for startup or runtime errors. The repository mentions a dedicated client library (C64UltimateClient) for streamlined integration; consider using that package for typed, async API access. When testing, use the provided prompts endpoints (prompts/list, prompts/get) to inspect available MCP prompts and templates. If you enable Docker, keep the image up to date to receive the latest MCP capabilities and tooling improvements.
Related MCP Servers
mssql
MSSQL Server MCP implementation written in C#
McpDotNet.Extensions.SemanticKernel
Microsoft SemanticKernel integration for the Model Context Protocol (MCP). Enables seamless use of MCP tools as AI functions.
DatabaseMcpServer
MCP server from ttcc666/DatabaseMcpServer
mcp-dataverse
MCP Server for querying Dataverse using SQL
xperience-community
ASP.NET Core MCP server for Xperience by Kentico projects
console-to-http
Example of converting a stdio MCP server to HTTP using ModelContextProtocol.AspNetCore