Skip to content

Connect Claude (MCP)

Meridian Track hosts a remote Model Context Protocol server at:

https://api.meridiantrack.com/mcp

Any MCP client that supports OAuth can connect to it. You sign in with your normal Meridian Track account; there is nothing to install and no API key to copy. Tools run as you, in your active workspace.

Claude.ai, Claude Desktop and Claude mobile

Section titled “Claude.ai, Claude Desktop and Claude mobile”
  1. Open Customize → Connectors (on Team and Enterprise plans an Owner adds it under Organization settings → Connectors).
  2. Click Add custom connector.
  3. Enter https://api.meridiantrack.com/mcp as the server URL. Leave the OAuth client settings on their defaults (“Use Claude’s published identity” or “Register automatically” both work).
  4. Click Add, then Connect. You are sent to the Meridian Track sign-in page.
  5. Sign in, review the permissions on the consent screen and click Allow.

The connector then appears in the + menu of every chat. Turn it on for a conversation and ask Claude to start a timer or log time.

Terminal window
claude mcp add --transport http meridian https://api.meridiantrack.com/mcp

Then run /mcp inside Claude Code and choose Authenticate for meridian. A browser window opens for sign-in and consent.

Point the client at https://api.meridiantrack.com/mcp using the Streamable HTTP transport. The server advertises its authorization server through standard discovery (/.well-known/oauth-protected-resource/mcp and /.well-known/oauth-authorization-server), supports Client ID Metadata Documents and Dynamic Client Registration, and requires PKCE (S256). Tokens are sent as Authorization: Bearer headers.

The consent screen lists exactly what the connector can do. The scopes match the ones available to API keys: read and write access to clients, projects, tasks, tags, time entries, timers, favorites and invoices, plus read access to your workspace’s member list. Clients normally request all of them; if a tool reports a missing scope, remove the connector and add it again.

Everything the connector does is attributed to your user in your active workspace (the one selected in the web app). Switch workspaces in the app to change where entries are logged.

Tool Description
clock_in Start a timer with optional description, project, client, task, notes, billable flag, and tags; returns the entry ID
clock_out Stop your running timer, optionally updating description, project, or notes; returns the entry ID
get_timer_status Check whether you have a timer running, on which project, and for how long
Tool Description
create_time_entry Log a completed entry with start/end times, project, client, task, tags
list_time_entries List entries by period (today, this_week, …) or date range in your timezone, with IDs, tags and notes; filter by project, client or member
update_time_entry Update an entry by ID: description, project, client, notes, billable, end time, or tags
delete_time_entry Delete a time entry by ID
Tool Description
list_projects / create_project / delete_project Manage projects (with client, billable default, color, hourly rate)
list_clients / create_client / delete_client Manage clients (with email, contact name, hourly rate)
list_tags / create_tag / delete_tag Manage workspace tags
Tool Description
list_workspace_members List the members of your active workspace with name, email and role

The tool list ends with get_more_tools. It doesn’t do anything in your workspace: when your assistant needs a capability Meridian Track doesn’t offer yet, it can call this tool with a short description of what it wanted, and that request is recorded as product feedback. It’s how we decide which tools to build next.

Every tool accepts a short context sentence describing why the assistant is making the call. Assistants fill it in themselves; you never have to. It is used only to understand how people use the connector (which tools get used together, for what kinds of tasks) and is never shown to anyone else. Tool inputs and results are not collected.

Times are shown and interpreted in the timezone saved on your account. The web app stores your browser’s timezone the first time you sign in, so this normally needs no setup. Every tool that takes dates also accepts a timezone argument (an IANA name such as Europe/Berlin) to override it for one call. Without a saved timezone, UTC is used.

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: Design review 9:00–10:30 (1h 30m, Website Redesign, billable); Team standup 10:30–11:00 (30m). Total 2h 0m.

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

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

Remove the connector in your MCP client (for Claude.ai, Customize → Connectors → Remove). Access tokens expire after an hour and refresh tokens after 30 days of inactivity; removing the connector discards them.

Your account has no workspace yet. Sign in to the web app once (it creates your personal workspace), then connect again.

“Couldn’t reach the MCP server” or the sign-in loop never finishes

Section titled ““Couldn’t reach the MCP server” or the sign-in loop never finishes”

Make sure the URL is exactly https://api.meridiantrack.com/mcp with no trailing slash, and that you did not select the legacy SSE transport.

The connector was authorized with fewer permissions than the tool needs. Remove the connector and add it again to grant the full set.

The stdio server shipped with the CLI has been retired in favour of this hosted server. Delete the old entry from your MCP client configuration and follow the steps above. The meridian CLI itself is unchanged.