# Everhour — how to use (mcp.ai)

Connect your Everhour account and use 38 tools for time tracking straight from your AI agent. Connect with your own API key. Everhour is a time tracking and expense management software equipped with budgeting, forward resource planning, expense tracking, dashboards, and reports.

## Option A — via MCP (recommended)
Remote MCP endpoint (HTTP, streamable): `https://api.mcp.ai/p_everhour?ms=1787293440000`
Add it as a custom/remote MCP connector in your client (Claude, Cursor, VS Code…), then authenticate when prompted. Once connected, ask the agent to use the server's tools (e.g. `everhour_client_create`).

## Option B — via direct REST API
Base URL: `https://api.mcp.ai/api/everhour`
Auth: `Authorization: Bearer sk_live_…` — create a workspace API key at https://mcp.ai/settings/api-keys
Discover endpoints: `GET https://api.mcp.ai/api/everhour/_endpoints`

### Endpoints
- `POST https://api.mcp.ai/api/everhour/client/create` — Creates a new client in Everhour for tracking billable work, invoicing, and project organization. Use this action when: - Setting up a new customer/client account for time tracking - Organizing projec
  - body: { name: string, projects?: string[], businessDetails?: string }
- `POST https://api.mcp.ai/api/everhour/client/delete` — Tool to delete a client. Use when you need to permanently remove a client from Everhour after confirming the client ID.
  - body: { client_id: string }
- `POST https://api.mcp.ai/api/everhour/client/list` — Retrieves all clients in the Everhour workspace. Use this action to: - Get an overview of all clients and their IDs - Find client IDs for use with other client-related actions (e.g., get client, updat
- `POST https://api.mcp.ai/api/everhour/clock/in` — Tool to clock in a user for time tracking. Use when you need to start a user's workday or shift in Everhour.
  - body: { user_id: integer }
- `POST https://api.mcp.ai/api/everhour/clock/out` — Tool to clock out a user for time tracking. Use when you need to end a user's workday or shift in Everhour.
  - body: { user_id: integer }
- `POST https://api.mcp.ai/api/everhour/create/webhook` — Tool to create a new webhook for event notifications in Everhour. Use when you need to set up real-time notifications for specific events like task creation, timer starts, or client updates. The targe
  - body: { events: string[], project?: string, targetUrl: string }
- `POST https://api.mcp.ai/api/everhour/delete/hook` — Tool to delete a webhook. Use when you need to permanently remove a webhook from Everhour after confirming the webhook ID.
  - body: { hook_id: integer }
- `POST https://api.mcp.ai/api/everhour/delete/timecard` — Tool to delete a timecard for a user on a specific date. Use when you need to permanently remove time entries for a user on a particular date.
  - body: { date: string, user_id: integer }
- `POST https://api.mcp.ai/api/everhour/discard/timesheet/approval` — Tool to discard a pending timesheet approval request. Use when you need to cancel or withdraw a previously submitted approval request for a timesheet.
  - body: { timesheet_id: integer }
- `POST https://api.mcp.ai/api/everhour/expenses/list` — Lists expense records from your Everhour workspace. Supports filtering by date range, user, project, category, and billable status. Use this to review expenses, generate reports, or find specific expe
  - body: { to?: string, from?: string, user?: integer, limit?: integer, offset?: integer, project?: string, billable?: boolean, category?: integer }
- `POST https://api.mcp.ai/api/everhour/get/client` — Tool to retrieve a specific client by ID. Use when you need detailed client information after obtaining the client's ID.
  - body: { client_id: string }
- `POST https://api.mcp.ai/api/everhour/get/project` — Tool to retrieve a specific project. Use after you have the project ID if you need its details.
  - body: { projectId: string }
- `POST https://api.mcp.ai/api/everhour/get/section` — Retrieve details of a specific section by its ID. Sections are used to organize tasks within Everhour projects. Use List Sections action first to get available section IDs for a project.
  - body: { sectionId: string }
- `POST https://api.mcp.ai/api/everhour/get/timecard` — Tool to retrieve a specific timecard for a user on a date. Use when you need to get clock-in, clock-out, break time, and work time details for a team member on a particular day.
  - body: { date: string, user_id: integer }
- `POST https://api.mcp.ai/api/everhour/get/user/profile` — Tool to retrieve profile information of the authenticated user. Use after providing API key to fetch current user's profile details.
- `POST https://api.mcp.ai/api/everhour/get/webhook` — Retrieve details of a specific webhook by its ID. Returns the webhook's configuration including target URL, subscribed events, active status, and timestamps. Use this to inspect a webhook's settings o
  - body: { hook_id: integer }
- `POST https://api.mcp.ai/api/everhour/list/expense/categories` — Lists all expense categories available in your Everhour account. Returns category IDs needed to create or filter expenses.
- `POST https://api.mcp.ai/api/everhour/list/hooks` — Lists all webhooks configured for the Everhour account. Returns details about each webhook including its target URL, subscribed events, active status, and timestamps. Use this to review existing webho
- `POST https://api.mcp.ai/api/everhour/list/invoices` — Retrieves all invoices from your Everhour workspace. Returns a list of invoice objects with details such as invoice number, client, project, amount, currency, status, and dates. Use this action to get
- `POST https://api.mcp.ai/api/everhour/list/projects` — List all Everhour projects accessible by the authenticated user. Use this tool to: - Retrieve all projects in the workspace - Search for projects by name using the 'query' parameter - Filter projects 
  - body: { limit?: integer, query?: string, status?: string, platform?: string }
- `POST https://api.mcp.ai/api/everhour/list/sections` — Lists all sections within a specific Everhour project. Sections help organize tasks within a project. Returns section details including id, name, position, and status. Use this tool when you need to v
  - body: { projectId: string }
- `POST https://api.mcp.ai/api/everhour/list/tags` — List all tags in the Everhour workspace. Returns an array of all tags available in the workspace. Each tag contains: - id: Unique numeric identifier for the tag - name: Display name of the tag (e.g., 
- `POST https://api.mcp.ai/api/everhour/list/team/members` — Retrieves all team members in the authenticated Everhour workspace. Returns detailed information for each member including their ID, name, email, role (admin/member/owner), status, avatar URLs, cost/b
- `POST https://api.mcp.ai/api/everhour/list/teams` — Retrieves information about the authenticated team/workspace in Everhour. Returns comprehensive team details including: - Team ID and name - Owner information - Working days and hours configuration - 
- `POST https://api.mcp.ai/api/everhour/list/timecards` — Tool to retrieve all team timecards with optional date filtering. Use when you need to get clock-in/out data and work hours for team members.
  - body: { to?: string, from?: string }
- `POST https://api.mcp.ai/api/everhour/list/user/timecards` — Tool to retrieve timecards for a specific user with optional date filtering. Use when you need to get clock-in/out data and work hours for a particular team member.
  - body: { to?: string, from?: string, user_id: integer }
- `POST https://api.mcp.ai/api/everhour/list/user/timesheets` — Tool to retrieve timesheets for a specific user. Use to get weekly time tracking data including daily time entries, task time, approvals, timecards, and time-off records. First use EVERHOUR_LIST_TEAM_
  - body: { limit?: integer, user_id: integer }
- `POST https://api.mcp.ai/api/everhour/project/create` — Tool to create a new project in Everhour. Use after gathering project details to persist a new project.
  - body: { name: string, client?: integer }
- `POST https://api.mcp.ai/api/everhour/project/delete` — Tool to delete a project. Use when you need to permanently remove a project from Everhour after confirming the project ID.
  - body: { project_id: string }
- `POST https://api.mcp.ai/api/everhour/request/timesheet/approval` — Tool to request approval for a timesheet or approve a week (for admins). Use when you need to submit a timesheet for review or when an admin needs to approve submitted timesheets. Regular users can re
  - body: { comment?: string, reviewer?: integer, timesheetId: integer, sendNotification?: boolean }
- `POST https://api.mcp.ai/api/everhour/section/create` — Tool to create a new section in a project. Use when you need to organize tasks under an existing project after confirming the project ID.
  - body: { name: string, project_id: string }
- `POST https://api.mcp.ai/api/everhour/section/delete` — Tool to delete a section. Use when you need to permanently remove a section from Everhour after confirming the section ID.
  - body: { section_id: string }
- `POST https://api.mcp.ai/api/everhour/task/create` — Creates a new task in an Everhour project. Use this to add tasks for time tracking. Requires a valid project ID (get from EVERHOUR_LIST_PROJECTS) and a task name. Example: Create a task named 'Write u
  - body: { name: string, tags?: integer[], parent?: string, section?: string, assignee?: integer, estimate?: integer, projectId: string }
- `POST https://api.mcp.ai/api/everhour/timer/start` — Tool to start a new timer for a task. Use when you need to begin tracking time on a specific task.
  - body: { task: string }
- `POST https://api.mcp.ai/api/everhour/update/client` — Tool to update an existing client in Everhour. Use this to modify client details such as name, business details, or status (active/archived). First use 'List Clients' to obtain the client ID.
  - body: { id: integer, name?: string, status?: string, businessDetails?: string }
- `POST https://api.mcp.ai/api/everhour/update/project` — Updates an existing Everhour project's settings. Use this to modify project name, budget, billing configuration, or notes. Requires a valid project_id (format: 'ev:XXXXXXXXX') - obtain from list_proje
  - body: { name?: string, note?: string, budget?: number, billable?: boolean, budgetType?: string, hourlyRate?: number, project_id: string, budgetReset?: string, billingMethod?: string, budgetIncludeExpenses?: boolean }
- `POST https://api.mcp.ai/api/everhour/update/timecard` — Tool to update a timecard for a user on a specific date. Use when you need to set or modify clock-in, clock-out times, or break duration for a user's timecard.
  - body: { date: string, clockIn?: string, user_id: integer, clockOut?: string, breakTime?: integer }
- `POST https://api.mcp.ai/api/everhour/update/webhook` — Tool to update an existing webhook configuration in Everhour. Use this to modify the target URL, subscribed events, or project filter of an existing webhook. First use 'List Webhooks' to obtain the we
  - body: { events: string[], hook_id: integer, project?: string, targetUrl: string }

## Example prompts
- "What can I do in Everhour?"
- "Show me a summary of my Everhour account"

## More
- Page: https://mcp.ai/everhour
- Agent spec (llms.txt): https://mcp.ai/everhour/llms.txt
- Postman collection: https://mcp.ai/everhour/postman.json
