README.md•2.62 kB
# 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.