https://github.com/lvturner/mcp-godo
Simple mcp server for handling todo lists, for sake of practice and education
https://github.com/lvturner/mcp-godo
Last synced: 3 months ago
JSON representation
Simple mcp server for handling todo lists, for sake of practice and education
- Host: GitHub
- URL: https://github.com/lvturner/mcp-godo
- Owner: lvturner
- Created: 2025-05-15T00:53:04.000Z (7 months ago)
- Default Branch: master
- Last Pushed: 2025-07-11T07:29:23.000Z (5 months ago)
- Last Synced: 2025-07-11T10:05:28.678Z (5 months ago)
- Language: Go
- Size: 11.3 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- awesome-mcp-servers - **mcp-godo** - Simple mcp server for handling todo lists, for sake of practice and education `go` `mcp` `server` `go install lvturner/mcp-godo@latest` (⚙️ DevOps)
README
# Overview
A simple MCP server that exposes some basic functions for managing a todo list. Written in Go for my own learning purposes, and to fit my own workflows.
It will store your todos in a simple SQLLite database.
# Features
## 1. Add a Todo Item
**Tool:** `add_todo`
**Parameters:**
- `title` (required): The title of the todo item.
- `due_date` (optional): Due date in ISO 8601 format (`2006-01-02T15:04:05Z`).
## 2. Complete a Todo Item
**Tool:** `complete_todo`
**Parameters:**
- `id` (required): The ID of the todo item to mark as completed.
## 3. Uncomplete a Todo Item
**Tool:** `uncomplete_todo`
**Parameters:**
- `id` (required): The ID of the todo item to mark as uncompleted.
## 4. List All Todos
**Tool:** `list_todos`
**Description:**
Lists all todos with their IDs and completion status.
## 5. Retrieve a Single Todo
**Tool:** `get_todo`
**Parameters:**
- `id` (required): The ID of the todo item to retrieve.
## 6. Delete a Todo Item
**Tool:** `delete_todo`
**Parameters:**
- `id` (required): The ID of the todo item to delete.
## 7. Get Active Todos
**Tool:** `get_active_todos`
**Description:**
Retrieves all todos that are not completed.
## 8. Get Completed Todos
**Tool:** `get_completed_todos`
**Description:**
Retrieves all todos that are completed.
## 9. Update a Todo's Due Date
**Tool:** `update_due_date`
**Parameters:**
- `id` (required): The ID of the todo item.
- `due_date` (required): New due date in ISO 8601 format (`2006-01-02T15:04:05Z`).
## Example JSON configuration file
```json
{
"name": "Todo list",
"key": "todo-list",
"description": "Basic todos",
"command": "/path/to/compiled/binary",
"env": {
"STORAGE_TYPE": "sql",
"DB_PATH": "/path/to/sqlite3/database.db"
}
}
```
## Database schema
```sql
CREATE TABLE todos (
id INTEGER PRIMARY KEY AUTOINCREMENT,
title TEXT,
completed INTEGER
, due_date DATETIME);
```
## Todos/Roadmap
- [ ] Improve DB Setup flow
- [ ] Tidy up main.go
- [ ] Consider adding more features like priority levels and tags
- [ ] Implement create_date field (and replace completed field with completion date)
- [ ] Unit tests