Todo Management Server
This example demonstrates how to build a complete CRUD (Create, Read, Update, Delete) MCP server with in-memory state management in TypeScript.Overview
The Todo server showcases:- State Management: In-memory data storage
- CRUD Operations: Full create, read, update, delete functionality
- Service Architecture: Separation of concerns with service layer
- Type Safety: Strong typing with TypeScript interfaces
- ID Generation: Unique identifier creation
Project Structure
Data Model
Todo Interface
todo.service.ts
In-Memory Storage
Service Layer
ID Generation
- Random alphanumeric string
- Current timestamp in base-36
CRUD Operations
Create Todo
Read Operations
Update Operations
Delete Operations
MCP Server Implementation
Server Setup
index.ts
Tool: Create Todo
Tool: List Todos
Tool: Complete Todo
Tool: Update Todo
Tool: Delete Todo
Tool: Clear Completed
Starting the Server
Installation & Setup
Dependencies
package.json
TypeScript Configuration
tsconfig.json
Building and Running
Usage Examples
Creating Todos
Listing Todos
Completing a Todo
Updating a Todo
Deleting a Todo
Clearing Completed Todos
Configuration for Claude Desktop
claude_desktop_config.json
State Management Patterns
Immutability
Safe Mutations
Timestamp Tracking
Advanced Features
Adding Priorities
Adding Tags
Persistent Storage
For production use, replace in-memory storage with persistent storage:Testing
Unit Tests
Key Takeaways
- Separation of Concerns: Keep business logic in service layer
- Type Safety: Use TypeScript interfaces for data models
- ID Generation: Create unique, collision-resistant IDs
- State Management: Handle in-memory state carefully
- Tool Design: Create focused, single-purpose tools
Next Steps
- Explore Production API Integration for real-world patterns
- Learn about External API Integration
- See how to use with Ollama