Skip to main content
Glama

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

  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:

    npm install
  2. Build the project:

    npm run build
  3. Set your API key:

    export DAILY_API_KEY="your-api-key-here"

Usage

Running the Server

npm start

Development Mode

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:

{
  "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 build

Development Mode

npm run dev

License

MIT

Available Tools

5 tools
add_activitiesC

Add new activities to Daily

ParametersJSON Schema
NameRequiredDescriptionDefault
activitiesYesArray of activities to add
archiveExistingActivitiesNoWhether to archive existing activities

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
includeArchivedActivitiesNoWhether to include archived activities

TDQS

B3.3/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
endYesEnd date in ISO 8601 format (e.g., 2025-01-31)
startYesStart date in ISO 8601 format (e.g., 2025-01-01)
includeArchivedActivitiesNoWhether to include archived activities

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
endYesEnd date in ISO 8601 format (e.g., 2025-01-31)
startYesStart date in ISO 8601 format (e.g., 2025-01-01)
includeArchivedActivitiesNoWhether to include archived activities

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

B3.4/5.0
Disambiguation4/5

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.

Naming Consistency5/5

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.

Tool Count5/5

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.

Completeness3/5

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

ActivityInactive
ResponsivenessSyncing

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

Related MCP Servers

Latest Blog Posts

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