Daily MCP Server
# Daily MCP Server
An MCP (Model Context Protocol) server that provides integration with the Daily Time Tracking API. This server allows you to interact with your Daily time tracking data through MCP-compatible clients like Claude Desktop.
## Features
- **Get User Info**: Retrieve information about your Daily account
- **List Activities**: Get all your activities (with optional archived filtering)
- **Time Summary**: Get time spent on activities within a date range
- **Timesheet Data**: Get detailed daily timesheet information
- **Add Activities**: Create new activities in Daily
## Prerequisites
1. **Daily Time Tracking App**: You need to have Daily installed and configured
2. **API Key**: Enable the Web API in Daily preferences and get your API key
3. **Node.js**: Version 18 or higher
## Setup
1. **Install dependencies**:
```bash
npm install
```
2. **Build the project**:
```bash
npm run build
```
3. **Set your API key**:
```bash
export DAILY_API_KEY="your-api-key-here"
```
## Usage
### Running the Server
```bash
npm start
```
### Development Mode
```bash
npm run dev
```
## Available Tools
### `get_user_info`
Get information about your Daily user account.
### `get_activities`
Get a list of all your activities.
- `includeArchivedActivities` (boolean, optional): Whether to include archived activities (default: true)
### `get_summary`
Get a summary of time spent on activities within a date range.
- `start` (string, required): Start date in ISO 8601 format (e.g., "2025-01-01")
- `end` (string, required): End date in ISO 8601 format (e.g., "2025-01-31")
- `includeArchivedActivities` (boolean, optional): Whether to include archived activities (default: true)
### `get_timesheet`
Get detailed timesheet data for a date range.
- `start` (string, required): Start date in ISO 8601 format
- `end` (string, required): End date in ISO 8601 format
- `includeArchivedActivities` (boolean, optional): Whether to include archived activities (default: true)
### `add_activities`
Add new activities to Daily.
- `activities` (array, required): Array of activities to add
- `name` (string, required): Name of the activity
- `group` (string, optional): Group name
- `archiveExistingActivities` (boolean, optional): Whether to archive existing activities (default: false)
## Integration with Claude Desktop
To use this server with Claude Desktop, add the following to your Claude Desktop configuration:
```json
{
"mcpServers": {
"daily": {
"command": "node",
"args": ["/path/to/daily-mcp/dist/index.js"],
"env": {
"DAILY_API_KEY": "your-api-key-here"
}
}
}
}
```
## API Documentation
For detailed information about the Daily Time Tracking API, refer to the [Daily App API Documentation](https://daily.co/docs) or check the API documentation within the Daily app itself (Preferences > Integrations tab).
## Development
### Building
```bash
npm run build
```
### Development Mode
```bash
npm run dev
```
## License
MITTDQS
Scored across 5 tools
Tools are mostly distinct: get_user_info and add_activities are clear, while get_activities, get_summary, and get_timesheet overlap in domain but differ in output (list vs. summary vs. detailed timesheet). Descriptions effectively clarify these boundaries, so confusion is minimal.
All tool names follow a consistent verb_noun pattern in snake_case (e.g., get_activities, add_activities, get_timesheet). The verbs are limited to 'get' and 'add', which is intuitive for read/write operations, and there are no mixed conventions.
With 5 tools, the server is well-scoped for a time-tracking domain. Each tool covers a core need (user info, activities, summary, timesheet, adding activities) without superfluous or redundant endpoints.
The server provides good read coverage (user info, activities, summary, timesheet) and the ability to add activities, but lacks update and delete operations for activities. This is a notable gap for full lifecycle management, as users cannot correct or remove erroneous entries.