GoCopilotAgentToDoList
@iancarpenter
A Go-based HTTP server that provides a time API using Dockerized Model Context Protocol (MCP). Accepts a timezone and returns the current time, demonstrating Go, Docker, and JSON API integration. Includes unit tests and is ready for extension with new features.
Overview
What is GoCopilotAgentToDoList?
GoCopilotAgentToDoList is a Go-based HTTP server that provides an API endpoint for retrieving the current time in a specified timezone. It integrates with a Dockerized Model Context Protocol (MCP) service to fetch the time, making it a practical example of combining Go, Docker, and external services. The project is intended for developers who want to learn or demonstrate integration patterns.
How to use GoCopilotAgentToDoList?
Build and run the server by executing go run package\ main.go in the project directory. The server listens on http://localhost:8080. To get the current time, send a POST request to /mcp/time with a JSON body containing the timezone (e.g., {"timezone": "America/New_York"}). A curl example is provided: curl -X POST http://localhost:8080/mcp/time -H "Content-Type: application/json" -d '{"timezone":"America/New_York"}'.
Key features of GoCopilotAgentToDoList
- Provides a POST
/mcp/timeendpoint that returns the current time for a given timezone - Uses Docker to run the MCP service for time retrieval
- All communication is JSON-based for requests and responses
- Includes unit tests for request and response marshaling
- Reserved
todos.jsonfile hints at future to-do list features
Use cases of GoCopilotAgentToDoList
- Fetching the current time in any supported timezone via a simple API
- Demonstrating how to integrate a Go HTTP server with Docker containers
- Serving as a learning reference for combining Go, Docker, and MCP services
FAQ from GoCopilotAgentToDoList
What dependencies are required to run GoCopilotAgentToDoList?
Go 1.18 or later, Docker installed and running, and the mcp:latest Docker image available locally are required. The project is cross-platform but assumes Docker is properly set up.
How do I start the server and make a request?
Run go run package\ main.go to start the server on port 8080. Then send a POST request to /mcp/time with a JSON body specifying a timezone. The server will respond with the current time in that timezone.
Does GoCopilotAgentToDoList already include a to-do list feature?
No. The todos.json file is reserved for future plans, but no to-do list API exists yet. The current functionality is limited to the time endpoint.
What transport protocol does GoCopilotAgentToDoList use?
The server communicates over HTTP using standard REST conventions. Both requests and responses are in JSON format.
Are there any known limits or error handling issues?
The project includes basic error handling but recommends improving error messages and logging for production use. Permission issues with Docker may require running the terminal as administrator.