Skip to content

MCP Server

The Meridian Track MCP server lets AI assistants start and stop timers, log time entries, and manage projects and clients on your behalf. It uses the Model Context Protocol (MCP) — an open standard for connecting AI tools to external services.

The MCP server is included with the Meridian Track CLI. If you’ve already installed the CLI, you’re ready to go.

Terminal window
# macOS / Linux
curl -fsSL https://cli.meridiantrack.com/install.sh | bash
# Windows (PowerShell)
irm https://cli.meridiantrack.com/install.ps1 | iex

This provides the meridian-mcp command, which starts a stdio-based MCP server.

Before configuring your AI assistant, set up credentials using one of these methods:

Terminal window
meridian auth login --api-key mt_live_your_key_here

The MCP server reads credentials from the same keyring and config file as the CLI.

Set MERIDIAN_API_KEY in the server configuration (see examples below). This is useful when keyring access is unavailable.

Add the following to your Claude Desktop configuration file:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"meridian-track": {
"command": "meridian-mcp",
"env": {
"MERIDIAN_API_KEY": "mt_live_your_key_here"
}
}
}
}

Add to .cursor/mcp.json in your project root (or ~/.cursor/mcp.json for global config):

{
"mcpServers": {
"meridian-track": {
"command": "meridian-mcp",
"env": {
"MERIDIAN_API_KEY": "mt_live_your_key_here"
}
}
}
}

Add to .mcp.json in your project root:

{
"mcpServers": {
"meridian-track": {
"command": "meridian-mcp",
"env": {
"MERIDIAN_API_KEY": "mt_live_your_key_here"
}
}
}
}

Or configure globally via claude mcp add:

Terminal window
claude mcp add meridian-track meridian-mcp

Any MCP-compatible client can connect by running meridian-mcp as a stdio server. The server follows the MCP specification for tool discovery, invocation, and resource access.

The MCP server exposes 16 tools that AI assistants can call:

ToolDescription
clock_inStart a timer with optional description, project, client, notes, billable flag, and tags
clock_outStop the running timer, optionally updating description, project, or notes
get_timer_statusCheck if a timer is running and get elapsed time
ToolDescription
create_time_entryLog a completed entry with start/end times, project, client, tags
list_time_entriesList entries by period (today, this_week, etc.) or custom date range
update_time_entryUpdate description, project, client, notes, billable, end time, or tags
delete_time_entryDelete a time entry by ID and sort key
ToolDescription
list_projectsList all projects with client associations
create_projectCreate a project with optional client, billable default, color, hourly rate
delete_projectDelete a project by ID
ToolDescription
list_clientsList all clients with contact info and rates
create_clientCreate a client with optional email, contact name, hourly rate
delete_clientDelete a client by ID
ToolDescription
list_tagsList all workspace tags
create_tagCreate a new tag
delete_tagDelete a tag by ID

MCP resources provide passive context that AI assistants can read without invoking a tool:

Resource URIDescription
meridian://today-summaryToday’s total hours, entry count, billable count, and active timer
meridian://projectsAll active projects with client associations
meridian://clientsAll clients with IDs
meridian://tagsAll workspace tags with IDs

Once configured, you can interact with Meridian Track naturally through your AI assistant:

You: Start a timer for the website redesign project

Assistant: Timer started at 9:15 AM on the “Website Redesign” project.

You: What did I work on today?

Assistant: Here are your entries for today:

  1. Design review — 9:00 AM - 10:30 AM (1h 30m) [Website Redesign, billable]
  2. Team standup — 10:30 AM - 11:00 AM (30m)

Total: 2h 0m (1 billable)

You: Log 2 hours for client meeting with Acme Corp yesterday from 2-4pm

Assistant: Time entry created: “Client meeting” from 2:00 PM - 4:00 PM (2h 0m), client: Acme Corp.

The server cannot find a valid API key. Verify with:

Terminal window
meridian auth status

If no key is shown, run meridian auth login or set MERIDIAN_API_KEY in your MCP server config.

  1. Verify meridian-mcp is on your PATH:
    Terminal window
    which meridian-mcp
  2. Restart your AI assistant after editing the configuration file.
  3. Check that the JSON configuration is valid (no trailing commas, correct structure).

”No timer is currently running” when stopping

Section titled “”No timer is currently running” when stopping”

Only one timer can run at a time per user. Use get_timer_status (or meridian timer status in the CLI) to check state.