@everhour/mcp-server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| EVERHOUR_API_KEY | Yes | Your Everhour API key | |
| EVERHOUR_API_BASE_URL | No | API base URL | https://api.everhour.com |
| EVERHOUR_READONLY_MODE | No | Enable readonly mode for safety | false |
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
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| everhour_list_projectsA | List all projects from Everhour. Supports filtering by status, client, and search query. |
| everhour_get_projectA | Get details of a specific project by ID. |
| everhour_create_projectC | Create a new project in Everhour. |
| everhour_update_projectC | Update an existing project in Everhour. |
| everhour_delete_projectA | Delete a project from Everhour. This action cannot be undone. |
| everhour_list_tasksB | Search tasks from Everhour. Requires either a query or project parameter. Supports filtering by status, project, assignee, and search query. |
| everhour_get_taskA | Get details of a specific task by ID. |
| everhour_create_taskC | Create a new task in Everhour. |
| everhour_update_taskC | Update an existing task in Everhour. |
| everhour_delete_taskA | Delete a task from Everhour. This action cannot be undone. |
| everhour_get_tasks_for_projectB | Get all tasks for a specific project using the /tasks/for_project/{project_id} endpoint. |
| everhour_update_task_estimateB | Update the estimate for a specific task. |
| everhour_delete_task_estimateA | Delete the estimate from a specific task. |
| everhour_add_time_to_taskC | Add time directly to a specific task using the /tasks/{id}/time endpoint. |
| everhour_update_task_timeC | Update time for a specific task using the /tasks/{id}/time endpoint. |
| everhour_delete_task_timeC | Delete time from a specific task using the /tasks/{id}/time endpoint. |
| everhour_list_time_recordsA | List time records from Everhour. Supports filtering by project, assignee, and date range. |
| everhour_get_time_recordA | Get details of a specific time record by ID. |
| everhour_create_time_recordC | Create a new time record in Everhour. Time can be specified in seconds or human-readable format (e.g., "1h 30m", "90m", "5400s"). |
| everhour_update_time_recordA | Update an existing time record in Everhour. Time can be specified in seconds or human-readable format. |
| everhour_delete_time_recordA | Delete a time record from Everhour. This action cannot be undone. |
| everhour_get_user_timeA | Get time records for a specific user with date range and pagination support. |
| everhour_get_current_timerA | Get the currently running timer, if any. |
| everhour_start_timerC | Start a new timer in Everhour. Can be associated with a task or project. |
| everhour_stop_timerA | Stop the currently running timer. |
| everhour_list_timersC | List timer history from Everhour. Supports filtering by project, assignee, and date range. |
| everhour_timer_statusC | Get a summary of timer status and activity. |
| everhour_get_running_timerA | Get the currently running timer using the /timer/running endpoint. |
| everhour_start_timer_for_taskA | Start a timer directly for a specific task using the /timer/start_for/{task_id} endpoint. |
| everhour_list_clientsA | List all clients from Everhour. Supports pagination and search query. |
| everhour_get_clientA | Get details of a specific client by ID. |
| everhour_create_clientB | Create a new client in Everhour. |
| everhour_update_clientB | Update an existing client in Everhour. |
| everhour_delete_clientA | Delete a client from Everhour. This action cannot be undone. |
| everhour_list_all_sectionsA | List all sections from Everhour by iterating through all projects. Supports pagination and search query. |
| everhour_get_sectionA | Get details of a specific section by ID. |
| everhour_create_sectionB | Create a new section in Everhour. |
| everhour_update_sectionB | Update an existing section in Everhour. |
| everhour_delete_sectionA | Delete a section from Everhour. This action cannot be undone. |
| everhour_get_current_userA | Get the current user profile using the /me endpoint. |
| everhour_list_team_usersA | List all team users using the /team/users endpoint. Supports selective property filtering via props parameter. |
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 41 tools
Multiple tools overlap significantly: `everhour_get_current_timer` and `everhour_get_running_timer` both retrieve the running timer; `everhour_timer_status` provides similar info. Time entry operations are split confusingly between `create/update/delete_time_record` and `add/update/delete_task_time`. Also, `everhour_list_tasks` with project filter and `everhour_get_tasks_for_project` serve nearly the same purpose.
All tools share the `everhour_` prefix and mostly follow a verb_noun pattern, but there are inconsistencies: `everhour_add_time_to_task` vs. `everhour_create_time_record` use different verbs for analogous actions; `everhour_timer_status` is not a clear verb_noun; `everhour_list_all_sections` vs. `everhour_get_section` mixes list/get patterns. Overall readable but not strictly uniform.
With 41 tools, the server is well beyond the 15-tool sweet spot. While the domain covers multiple resources (projects, tasks, time, timers, clients, sections, users), the count feels bloated due to redundant timer endpoints and overlapping time entry methods. This makes the API surface harder to navigate.
The server covers full CRUD for projects, tasks, clients, sections, and time records, plus timer controls and user info. Minor gaps exist, such as no explicit task assignment to users or bulk operations, but core lifecycle coverage is solid and most workflows can be executed without workarounds.