Daily MCP Server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Daily MCP Servershow my time summary for last week"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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
Related MCP server: Timesheet MCP Server
Prerequisites
Daily Time Tracking App: You need to have Daily installed and configured
API Key: Enable the Web API in Daily preferences and get your API key
Node.js: Version 18 or higher
Setup
Install dependencies:
npm installBuild the project:
npm run buildSet your API key:
export DAILY_API_KEY="your-api-key-here"
Usage
Running the Server
npm startDevelopment Mode
npm run devAvailable 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 formatend(string, required): End date in ISO 8601 formatincludeArchivedActivities(boolean, optional): Whether to include archived activities (default: true)
add_activities
Add new activities to Daily.
activities(array, required): Array of activities to addname(string, required): Name of the activitygroup(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:
{
"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 or check the API documentation within the Daily app itself (Preferences > Integrations tab).
Development
Building
npm run buildDevelopment Mode
npm run devLicense
MIT
Available Tools
5 toolsadd_activitiesC
Add new activities to Daily
| Name | Required | Description | Default |
|---|---|---|---|
| activities | Yes | Array of activities to add | |
| archiveExistingActivities | No | Whether to archive existing activities |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of disclosing side effects. It merely says 'Add new activities to Daily' without mentioning that setting archiveExistingActivities=true will archive existing activities, potentially replacing the current list. This important behavioral trait is only visible in the schema, not the description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that front-loads the action and object. It contains no filler or redundant text, earning a maximum score for brevity and structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's mutation nature, no output schema, and no annotations, the description is incomplete. It fails to explain the impact of the archive flag, the expected response, or any prerequisites. This makes the tool only minimally documented for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for both parameters, so the baseline is 3. The description itself adds no parameter-level detail, but the schema already provides sufficient information about the activities array and archiveExistingActivities flag.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Add'), the resource ('activities'), and the destination ('Daily'), making it obvious this is a write operation distinct from the sibling get_* tools. However, it does not explicitly differentiate itself from other add/update tools or mention the bulk/archive behavior, which the schema implies.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool vs alternatives. The description lacks prerequisites, context, or any note about using get_activities to review existing activities before adding. The 'Add' verb vs get_ siblings is the only implicit usage signal.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_activitiesB
Get list of activities from Daily
| Name | Required | Description | Default |
|---|---|---|---|
| includeArchivedActivities | No | Whether to include archived activities |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of disclosing behavioral traits. It only states 'Get list of activities' and does not explicitly confirm read-only behavior, whether archived activities are included by default, or any other operational characteristics. This is a minimal disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, short sentence that conveys the core action clearly without any superfluous words. It is well-structured and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read tool with one optional parameter, the description covers the basic action but lacks details about the return format, what 'activities' refers to, or how it fits with sibling tools. The absence of an output schema makes some of this information important, so the description is moderately complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema fully documents the single optional parameter with a clear description (100% coverage). The tool description adds no additional parameter meaning beyond the schema baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Get' and identifies the resource as 'list of activities from Daily', which clearly distinguishes it from siblings like get_user_info, get_summary, and add_activities. The purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus the sibling tools, nor any exclusions or context. It simply states the action without alternative suggestions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_summaryC
Get time summary for activities within a date range
| Name | Required | Description | Default |
|---|---|---|---|
| end | Yes | End date in ISO 8601 format (e.g., 2025-01-31) | |
| start | Yes | Start date in ISO 8601 format (e.g., 2025-01-01) | |
| includeArchivedActivities | No | Whether to include archived activities |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden for behavioral disclosure. It only states the purpose without revealing whether it is read-only, how it aggregates data, whether archived activities are included by default, or any other behavioral traits. The schema later shows includeArchivedActivities defaults to true, but the description itself adds no transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the action and resource without filler. It is concise, though perhaps too minimal to cover all necessary context, but as a standalone purpose statement it avoids wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a summary tool with three parameters and no output schema, the description is notably incomplete. It does not clarify what the summary contains (e.g., total hours, breakdown by day/project), nor does it explain how this relates to sibling tools like get_activities or get_timesheet. The lack of detail leaves the agent guessing at the tool's scope.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides 100% description coverage for all parameters, including format examples for start/end and a description for includeArchivedActivities. The description adds no parameter-level meaning beyond echoing the date range concept, so the baseline of 3 is appropriate since the schema handles parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb ('Get') and resource ('time summary for activities'), which effectively communicates the tool's core purpose. However, it does not explicitly differentiate this from sibling tools like get_activities or get_timesheet, though the term 'summary' implies a distinct aggregation role.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as get_activities or get_timesheet. It lacks any mention of exclusions, prerequisites, or scenarios that would favor this tool, leaving the agent without context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_timesheetC
Get detailed timesheet data for a date range
| Name | Required | Description | Default |
|---|---|---|---|
| end | Yes | End date in ISO 8601 format (e.g., 2025-01-31) | |
| start | Yes | Start date in ISO 8601 format (e.g., 2025-01-01) | |
| includeArchivedActivities | No | Whether to include archived activities |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations present, the description carries the full burden for behavioral disclosure. It only states a read operation; it does not disclose defaults (e.g., includeArchivedActivities defaults to true), date inclusivity, response format, or any side effects. This falls short of transparently setting expectations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is front-loaded with the verb and resource. It contains zero wasted words and is easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no output schema and no annotations, so the description should explain return values or additional behavior. It does neither; it only states the basic read action, leaving the tool incomplete for an agent to understand what to expect.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides complete descriptions for all three parameters, so the description need not add parameter information. The baseline of 3 applies because the schema does the heavy lifting and the description does not extend or clarify parameter meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a clear verb ('Get') and resource ('detailed timesheet data') with a date-range scope. It implicitly distinguishes from siblings like get_summary (summary) and get_activities (activities), but 'detailed' remains somewhat vague without specifying what fields or granularity are returned.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers no guidance on when to use this tool versus alternatives. It does not mention using get_summary for aggregated totals or get_activities for activity-level data, so there is no explicit context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_user_infoA
Get information about the Daily user account
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It only says 'Get information,' which implies a read operation, but does not disclose authentication requirements, whether it returns the current user, or any potential error/edge-case behavior. This is minimal transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no filler. It is appropriately sized for a simple zero-parameter read tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (zero parameters, no output schema), the description is mostly complete. It could clarify that it refers to the current authenticated user, but this is not essential for basic selection.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the baseline score is 4. The description does not need to explain parameter semantics because there are none to explain.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's action ('Get information') and resource ('the Daily user account'). It distinguishes itself from sibling tools like get_activities, get_summary, and get_timesheet, which target different data domains.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus alternatives. It does not mention that this should be used for account/profile data or that other tools handle activities/summary/timesheet data.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
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.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Read time entries, projects, clients, tasks and invoices; log and update tracked time.
Read teams, spaces, lists and tasks; create, update and comment on tasks and track time.
Track time on usetimebook.com - start/stop timers, log entries, list projects/clients.
Time tracking, live project budgets, and billing exports for service firms.
Related MCP Servers
- AlicenseBqualityCmaintenanceProvides comprehensive integration with the Clockify time tracking API, enabling automated time entry management, project organization, task tracking, and reporting through a standardized interface.29136MIT
- AlicenseNot gradedqualityDmaintenanceEnables automated timesheet management including creating entries, listing work activities, managing daily scrum updates, and viewing assigned projects with automatic authentication handling.13MIT
- FlicenseAqualityCmaintenanceProvides access to RescueTime productivity data including daily summaries, activity tracking, productivity trends, category breakdowns, and hourly analysis to help understand and optimize time usage patterns.51
- AlicenseNot gradedqualityDmaintenanceIntegrates with Clockify time tracking API to retrieve user information, manage projects, and log time entries with flexible time specifications across workspaces.MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/guillem-gelabert/daily-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server