Skip to main content
Glama
gnokit

MCP DateTime Server

by gnokit
README.md
# MCP Current Time Server

A minimal Model Context Protocol (MCP) server that provides current local datetime information. This server serves as a blueprint for building simple, single-purpose MCP servers.

## Features

- **current-time**: Get current local datetime in a simple single-line format

## Quick Start

### Prerequisites
- [Bun](https://bun.sh) runtime

### Installation
```bash
# Clone and navigate to project
git clone <repository-url>
cd mcp-datetime

# Install dependencies
bun install

# Make executable
chmod +x src/index.ts
```

### Run Server
```bash
bun run src/index.ts
```

## Configuration

### Claude Desktop
Add to `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS) or `%APPDATA%/Claude/claude_desktop_config.json` (Windows):

```json
{
  "mcpServers": {
    "datetime": {
      "command": "bun",
      "args": ["/absolute/path/to/mcp-datetime/src/index.ts"]
    }
  }
}
```

### VS Code MCP Extension
```json
{
  "mcp": {
    "servers": {
      "datetime": {
        "command": "bun",
        "args": ["/absolute/path/to/mcp-datetime/src/index.ts"]
      }
    }
  }
}
```

## Usage Example

```json
{
  "tool": "current-time",
  "parameters": {
    "timezone": "America/New_York"
  }
}
```

**Response:**
```
Monday, January 15, 2024 at 2:30:45 PM EST
```

## Development

### Scripts
```bash
# Run server
bun run src/index.ts

# Run tests
bun test

# Build for production
bun build src/index.ts --outdir=dist
```

### Project Structure
```
src/
├── index.ts              # Main entry point
├── server/
│   └── datetime-server.ts # MCP server configuration
├── tools/
│   ├── current-time.ts    # Current time tool
│   └── current-time.test.ts # Unit tests
├── utils/
│   └── datetime-utils.ts  # Shared utilities
└── types/
    └── datetime.types.ts  # Type definitions
```

## Extending This Blueprint

This minimal server is designed to be easily extended:

1. **Add new tools**: Create `src/tools/new-tool.ts` and register in `datetime-server.ts`
2. **Add resources**: Create `src/resources/new-resource.ts` and register in `datetime-server.ts`
3. **Add validation**: Use Zod schemas for input validation
4. **Add tests**: Create `.test.ts` files alongside your tools

## Testing

Run the test suite:
```bash
bun test
```

## Troubleshooting

### Common Issues

1. **Permission Denied**: Make sure `src/index.ts` is executable
   ```bash
   chmod +x src/index.ts
   ```

2. **Timezone Issues**: Ensure valid IANA timezone identifiers are used

## License

MIT License - see LICENSE file for details.