Wakapi MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| WAKAPI_URL | Yes | The URL of the Wakapi server | |
| WAKAPI_API_KEY | Yes | Your Wakapi API key | |
| WAKAPI_API_PATH | No | The API path for Wakapi | /compat/wakatime/v1 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Server capabilities have not been inspected yet.
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_statsC | Retrieve statistics for a given user. operationId: get-wakatime-stats summary: Retrieve statistics for a given user description: Mimics https://wakatime.com/developers#stats tags: [wakatime] parameters:
Requires ApiKeyAuth: Set header |
| get_projectsB | Retrieve and filter the user's projects. operationId: get-wakatime-projects summary: Retrieve and filter the user's projects description: Mimics https://wakatime.com/developers#projects tags: [wakatime] parameters:
Requires ApiKeyAuth: Set header |
| get_leadersB | List of users ranked by coding activity in descending order. operationId: get-wakatime-leaders summary: List of users ranked by coding activity in descending order. description: Mimics https://wakatime.com/developers#leaders tags: [wakatime] responses: 200: description: OK schema: v1.LeadersViewModel Requires ApiKeyAuth: Set header |
| get_userB | Retrieve the given user. operationId: get-wakatime-user summary: Retrieve the given user description: Mimics https://wakatime.com/developers#users tags: [wakatime] parameters:
Requires ApiKeyAuth: Set header |
| get_all_time_since_todayB | Retrieve summary for all time since today for the specified user. operationId: get-all-time summary: Retrieve summary for all time description: Mimics https://wakatime.com/developers#all_time_since_today tags: [wakatime] parameters:
Requires ApiKeyAuth: Set header |
| get_project_detailA | Retrieve a single project. Mimics undocumented endpoint related to https://wakatime.com/developers#projects. Requires ApiKeyAuth: Set header Args: id (str, required): Project ID to fetch. user (str, required, default="current"): User ID to fetch data for (or 'current'). Returns: v1.ProjectViewModel: - data (Project): - id (str): Project ID. - name (str): Project name. - urlencoded_name (str): URL encoded name. - created_at (str): Creation timestamp. - last_heartbeat_at (str): Last activity timestamp. - human_readable_last_heartbeat_at (str): Human readable last activity. |
| get_recent_logsA | Get heartbeats of user for recent days (extension of heartbeats GET). Mimics https://wakatime.com/api/v1/users/{user}/heartbeats for multiple days. Requires ApiKeyAuth: Set header Args: user (str, required, default="current"): Username (or current). project_name (str, optional): Filter by project. days (int, default=7): Number of days to retrieve. limit (int, default=1000): Maximum number of heartbeats. Returns: List of HeartbeatEntry: Each with id (str), project (str), language (str), entity (str), time (number), is_write (bool), branch (str), category (str), cursorpos (int), line_additions (int), line_deletions (int), lineno (int), lines (int), type (str), user_agent_id (str), user_id (str), machine_name_id (str), created_at (str). Sorted by time descending. |
| test_connectionA | Test Wakapi server connection via simple API call to fetch projects. Returns: A dictionary with the connection test result, including: - status (str): 'success' or 'error'. - message (str): Description of the result. - projects_count (int, optional): Number of projects if successful. - server_url (str): The Wakapi server URL. - api_path (str): The API path used for requests. - error (str, optional): Error message if failed. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 8 tools
Each tool has a distinct purpose with clear boundaries: get_all_time_since_today for overall summary, get_stats for detailed statistics, get_projects/get_project_detail for project data, get_recent_logs for heartbeat logs, get_user for user info, get_leaders for rankings, and test_connection for connectivity. No overlap or ambiguity exists between these functions.
The naming follows a consistent 'verb_noun' pattern with 'get_' prefix for 7 out of 8 tools (e.g., get_stats, get_projects), which is highly predictable. The only deviation is test_connection, which breaks the pattern but remains clear in purpose.
With 8 tools, this server is well-scoped for a Wakatime/Wakapi analytics domain. It covers essential operations like retrieving stats, projects, user data, logs, and rankings without being overwhelming or sparse, fitting the typical 3-15 tool range for focused servers.
The toolset provides comprehensive read-only coverage for Wakatime/Wakapi analytics, including user stats, projects, logs, and leaderboards. A minor gap exists in write operations (e.g., creating or updating data), but this aligns with the server's apparent purpose as a data retrieval interface, and agents can work effectively within this scope.