TMetric MCP Server
Integrates with GitLab issues to enable time tracking linked to issues, allowing start/stop timers and sync time entries.
Click on "Deploy 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., "@TMetric MCP Server Start a timer for GitLab issue #45 on project Alpha"
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.
TMetric MCP Server
Minimal Model Context Protocol server for TMetric time tracking integration.
Features
List TMetric projects
Start/stop timers
Check current timer status
GitLab issue integration
Delete time entries
Related MCP server: Tempo MCP Server
Installation
npm install
npm run buildConfiguration
Set your TMetric API token:
export TMETRIC_API_TOKEN="your_token_here"Usage with Claude Code
Add the TMetric MCP server using the claude mcp add command. You can install at different scopes:
User Scope (Global - All Projects)
Available across all projects for your user:
One-liner:
claude mcp add --scope user tmetric-mcp --env TMETRIC_API_TOKEN=your_token_here -- node /path/to/tmetric-mcp-server/build/index.jsInteractive:
claude mcp add tmetric-mcp --scope userWhen prompted, configure:
Command:
nodeArgs:
/path/to/tmetric-mcp-server/build/index.jsEnvironment variables:
TMETRIC_API_TOKEN=your_token_here
Project Scope (Specific Project)
Available only in the current project directory:
One-liner:
claude mcp add --scope project tmetric-mcp --env TMETRIC_API_TOKEN=your_token_here -- node /path/to/tmetric-mcp-server/build/index.jsInteractive:
claude mcp add tmetric-mcp --scope projectWhen prompted, configure with the same settings as above.
Local Scope (Current Directory)
Available only in the current working directory:
One-liner:
claude mcp add --scope local tmetric-mcp --env TMETRIC_API_TOKEN=your_token_here -- node /path/to/tmetric-mcp-server/build/index.jsInteractive:
claude mcp add tmetric-mcp --scope localWhen prompted, configure with the same settings as above.
Alternative: Using npx (from GitHub)
You can run directly from GitHub with npx (no clone or build needed):
One-liner:
claude mcp add --scope user tmetric-mcp --env TMETRIC_API_TOKEN=your_token_here -- npx -y github:guglielmo/tmetric-minimal-mcpInteractive:
claude mcp add tmetric-mcp --scope userWhen prompted, configure:
Command:
npxArgs:
-y github:guglielmo/tmetric-minimal-mcpEnvironment variables:
TMETRIC_API_TOKEN=your_token_here
Alternative: Using npx (from local path)
If you've cloned the repository locally:
One-liner:
claude mcp add --scope user tmetric-mcp --env TMETRIC_API_TOKEN=your_token_here -- npx -y /path/to/tmetric-mcp-serverInteractive:
claude mcp add tmetric-mcp --scope userWhen prompted, configure:
Command:
npxArgs:
-y /path/to/tmetric-mcp-serverEnvironment variables:
TMETRIC_API_TOKEN=your_token_here
Available Tools
list_tmetric_projects()
Get list of available projects.
get_current_timer()
Check if a timer is running.
start_timer(project_id, task_name, task_url?)
Start tracking time on a project/task.
stop_timer()
Stop current timer and return time spent.
delete_time_entry(entry_id?)
Delete a time entry.
Development
# Watch mode
npm run watch
# Run directly with tsx
npm run devTesting
Running Tests
# Run all tests once
npm test
# Run tests in watch mode (re-runs on file changes)
npm run test:watch
# Run tests with coverage report
npm run test:coverage
# Run tests with interactive UI
npm run test:uiTest Coverage
The project has comprehensive test coverage with:
100% statement coverage across all modules
97%+ branch coverage for edge cases
Unit tests for all utility functions (
utils.ts)Full integration tests for TMetric API client (
tmetric-client.ts)Mocked HTTP requests using
nockfor reliable testing
See TESTING.md for detailed information about the testing strategy and how to write new tests.
Manual Testing
Test the MCP server with Claude Code by starting a conversation and using commands like:
"List my TMetric projects"
"Start timer on project 12345 for Issue #123: Fix bug"
"What am I working on?"
"Stop the timer"
Troubleshooting
"TMETRIC_API_TOKEN is required"
Make sure you've set the environment variable with your API token.
"Failed to initialize TMetric client"
Check that your API token is valid and you have network access to TMetric.
"Timer already running"
This is expected behavior. Stop the current timer before starting a new one.
Used By
This MCP server is a dependency for the following Claude Code skills:
issue-time-tracking - Automates synchronized issue status tracking and time logging across GitLab/GitHub and TMetric
License
MIT
Available Tools
5 toolsdelete_time_entryA
Delete a time entry. Mode "current" deletes active timer only, "last" deletes most recent entry (with 5-min safety window).
Inputs: mode.
get_current_timerA
Check if a timer is currently running and get its details
Inputs: no named parameters.
list_tmetric_projectsA
Get list of available TMetric projects for time tracking
Inputs: no named parameters.
start_timerA
Start time tracking on a project and task. Will fail if another timer is already running.
Inputs: task_name (required), project_id (required), task_url.
stop_timerA
Stop the currently running timer and return time spent
Inputs: no named parameters.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 5 tools
Each tool has a clearly distinct purpose: listing projects, checking the current timer, starting, stopping, and deleting time entries. There is no overlap or ambiguity between them.
Most tools follow a consistent verb_noun pattern (list, get, start, stop, delete). The only inconsistency is 'list_tmetric_projects' including the server name, unlike the others, which is minor and doesn't harm readability.
With 5 tools, the server is well-scoped for its purpose of time tracking. Each tool covers a core operation without unnecessary bloat, making it easy to navigate.
The server covers the basic timer lifecycle (start, stop, check, delete) and project listing, but lacks the ability to list past time entries or fetch tasks for a project, which are common needs. These gaps could hinder an agent from effectively managing time tracking.
Maintenance
Related MCP Connectors
Track time in Clockify: time entries, projects, clients, tags and reports; start, stop and log time.
Track time on usetimebook.com - start/stop timers, log entries, list projects/clients.
Read tracked time and projects; create projects and start or stop timers in DeskTime.
Log time on GitHub issues and pull requests: timers, entries, missing days, client hours.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceIntegrates with Clockify time tracking API to retrieve user information, manage projects, and log time entries with flexible time specifications across workspaces.MIT
- AlicenseNot gradedqualityDmaintenanceEnables time tracking in Tempo with automatic timesheet generation from git commits, worklog management with roles and accounts, and integration with Jira for seamless project time logging.1MIT
- AlicenseAqualityCmaintenanceEnables tracking work time with start/stop timers, logging entries, and generating reports.48 npm42 PyPIMIT
- AlicenseNot gradedqualityDmaintenanceEnables GitLab repository management, including branches, merge requests, issues, pipelines, and more through natural language.MIT