Skip to main content
The Everhour MCP server works with any client that speaks the MCP Streamable HTTP transport. The server URL is the same everywhere:
Clients connect with OAuth 2.1. You don’t register an application or manage a client ID and secret — the first time a client connects, Everhour registers it automatically (Dynamic Client Registration) and opens your browser to approve access. Pick your client below.

Claude Code

Claude Desktop

Cursor

VS Code

Codex CLI

ChatGPT / Codex Desktop

Devin

This page covers the mechanics. For what to ask Claude once it’s connected — example prompts and the interactive cards — see Everhour in Claude.

Prerequisites

  • An active Everhour account. You can sign in with Google, SAML SSO, or email and password.
There’s nothing to set up in Everhour ahead of time — no app to create, no credentials to copy, no redirect URL to register. Authorization happens in your browser when you connect.

Claude Code

Claude Code supports remote MCP servers with OAuth natively.

Prerequisites

Complete the prerequisites. No API key or app registration needed — Claude Code handles the OAuth flow for you.

Add the server

Add the server with one command:

Authorize

  1. Run /mcp in Claude Code and select everhour.
  2. Choose Authenticate. Your browser opens Everhour’s sign-in.
  3. Sign in to Everhour, review the consent screen, and click Allow.
  4. Return to Claude Code — /mcp now shows everhour as connected.

Connecting Everhour in Claude Code

Verify

Ask Claude: “What’s my Everhour timesheet this week?” A correct answer means the tools are wired up.

Claude Desktop

The Claude desktop app and claude.ai add Everhour as a custom connector. The steps are the same in both, and in the mobile apps.

The whole flow: adding the connector, approving access in Everhour, then asking for the running timer

Prerequisites

Complete the prerequisites. No API key or app registration needed. Which path you take depends on your Claude plan:

Add the connector

  1. Open Customize → Connectors in the left sidebar, then click + next to Connectors.
  2. Give it a name — Everhour — and enter the server URL:
  3. Click Continue. Claude checks the URL and fills in the authentication it finds, marked Detected — for Everhour that’s Sign in now and Register automatically. Leave both as detected; there’s no client ID or secret to paste, because Everhour registers your client itself.
  4. Click Add.
Older builds label this Settings → Connectors.The two-step dialog is still rolling out. If yours puts the name, URL, and Advanced settings on a single screen, leave Advanced settings alone and click Add — there’s nothing to change there either way.

If someone already added it

On a Team or Enterprise plan, your Owner adds Everhour once for everyone. When they have, open Customize → Connectors, find Everhour in the list, and click Connect — there’s no URL to paste and no name to pick. Then carry on with Authorize below.

Authorize

  1. Click Connect next to Everhour.
  2. Your browser opens Everhour’s sign-in. Sign in, review the consent screen, and click Allow.
  3. Everhour shows as connected.

Enable it in a chat

Connectors are switched on per conversation. Click + at the lower left of the chat box, choose Connectors, and turn Everhour on.

Switching Everhour on for a conversation

Verify

Ask: “What’s my Everhour timesheet this week?”

Cursor

Cursor connects to the Everhour MCP server using its built-in OAuth support.

Prerequisites

Complete the prerequisites. Cursor stores the connection globally or per project — no API key needed.

Configure Cursor

  1. Open Cursor Settings (⌘, on Mac, Ctrl+, on Windows/Linux) → Tools & MCP.
  2. Click + Add new global MCP server and add the following (this edits ~/.cursor/mcp.json):

Connect

  1. Back in Tools & MCP, find everhour in the list and click Connect.
  2. Your browser opens Everhour’s sign-in. Sign in, review the consent screen, and click Allow.
  3. The browser redirects back to Cursor via the cursor:// protocol handler.
  4. Return to Cursor — the server status changes to connected.

Adding the Everhour MCP server in Cursor

Test

Open a new agent window and ask: “Show my Everhour tasks I tracked this week.”

VS Code

VS Code supports MCP servers with OAuth natively (VS Code 1.102 or later).

Prerequisites

Complete the prerequisites. Requires VS Code 1.102 or later.

Register the server

  1. Open the Command Palette (⌘⇧P on Mac, Ctrl+Shift+P on Windows/Linux) and run MCP: Add Server.
  2. Choose HTTP, enter the URL https://api.everhour.com/mcp, and name it everhour. You can also add it directly to .vscode/mcp.json — note VS Code uses the servers key:

Authorize

  1. Start the server — use the Start action shown above the entry in mcp.json, or accept the prompt when it appears.
  2. Your browser opens Everhour’s sign-in. Sign in, review the consent screen, and click Allow.
  3. Return to VS Code — the server shows as running.

Adding the Everhour MCP server in VS Code

Test

Open Chat in Agent mode and ask: “What Everhour projects do I have?”

Codex CLI

Codex CLI supports remote MCP servers with OAuth natively.

Prerequisites

Complete the prerequisites. No API key needed — Codex handles the OAuth flow for you.

Install the CLI

Install the Codex CLI, then verify it’s on your PATH:

Add the server

Sign in

Log in to start the OAuth flow:
Your browser opens Everhour’s sign-in. Sign in, review the consent screen, and click Allow — then return to the terminal.

Connecting Everhour in Codex CLI

Test

Run codex, then /mcp — confirm everhour is listed and authenticated. Ask: “What did I track in Everhour today?”

ChatGPT / Codex Desktop

OpenAI’s desktop app — which combines ChatGPT and Codex — supports custom MCP servers over OAuth.

Prerequisites

Complete the prerequisites. No API key needed — the app handles the OAuth flow for you.

Add a custom MCP

  1. Open Settings → Plugins → MCPs and click Add server.
  2. In the Connect to a custom MCP dialog, set:
    • Type: Streamable HTTP
    • Name: everhour
    • URL: https://api.everhour.com/mcp
  3. Click Save. everhour now appears in the MCP list.

Authenticate

  1. Next to everhour in the MCP list, click Authenticate.
  2. Your browser opens Everhour’s sign-in. Sign in, review the consent screen, and click Allow.
  3. Return to the app — everhour shows as connected.

Connecting Everhour in ChatGPT / Codex Desktop

Test

Ask: “What’s my Everhour timesheet this week?”

Devin (Windsurf)

Devin supports remote MCP servers with OAuth natively.

Prerequisites

Complete the prerequisites. No API key or bridge needed — Devin handles the OAuth flow for you.

Configure Devin

  1. Open the Command Palette (⌘⇧P on Mac, Ctrl+Shift+P on Windows/Linux) and run Devin MCP Registry.
  2. On the MCP Marketplace, click the gear icon in the top-right of the Installed MCP area to open mcp.json, then add:

Authorize

  1. Save the config. Devin loads the server and opens your browser to Everhour’s sign-in.
  2. Sign in, review the consent screen, and click Allow.
  3. Return to Devin — everhour shows as connected.

Connecting Everhour in Devin

Verify

Ask: “What’s my Everhour timesheet this week?”

Other clients

Any MCP client that supports remote servers with OAuth — including Claude connectors — works with the same URL. Add https://api.everhour.com/mcp as a remote/HTTP server and complete the sign-in and click Allow when prompted. Clients that only speak stdio can use the mcp-remote bridge — run npx -y mcp-remote@latest https://api.everhour.com/mcp (needs Node.js).

Troubleshooting

Make sure pop-ups aren’t blocked and that you finish the Allow step in the browser tab your client opened. If the consent page reports an expired request, start the connection again from your client.
The server isn’t authenticated yet. Run codex mcp login everhour to (re)authorize, then check again with /mcp.
Restart your client. The server registers 28 tools; a lower count usually means your client cached an older list.
Your client cached a registration from an earlier connection that Everhour no longer recognizes, so authorization keeps failing. Clear the cached client, then add the server again:
  • Claude Desktop and claude.ai: open Customize → Connectors, remove Everhour, then add it again. On Team and Enterprise an Owner has to do this under Organization settings → Connectors.
  • Claude Code: claude mcp logout everhour, then claude mcp remove everhour, then re-run claude mcp add --transport http everhour https://api.everhour.com/mcp.
  • Codex CLI: codex mcp logout everhour, then codex mcp remove everhour, then codex mcp add everhour --url https://api.everhour.com/mcp.
  • Cursor / VS Code / Devin: remove the everhour block from the config (and clear any stored authorization), then add it again to force a fresh registration.

Disconnecting

  • Remove the server in your client. This discards its stored tokens and stops it refreshing them.
    • Claude Code: claude mcp logout everhour, then claude mcp remove everhour.
    • Cursor / VS Code / Devin: delete the everhour block from the config and restart.
    • Codex CLI: codex mcp logout everhour, then codex mcp remove everhour.
  • In a desktop or chat app: ChatGPT / Codex Desktop — Settings → Plugins → MCPs and remove everhour; Claude Desktop and claude.ai — Customize → Connectors and remove the Everhour connector.
Access tokens are short-lived and refresh automatically while a client stays connected. Removing the server stops the refresh, so access ends once the current token expires — within an hour, not instantly. Everhour has no revocation endpoint yet; see Data, privacy, and permissions.

Connect with an API key

If a client can’t do OAuth — or you’re wiring up automation and want a headless connection — you can authenticate with an Everhour API key in an X-Api-Key header instead.
An API key never expires on its own and grants full access to your account. Prefer OAuth wherever your client supports it, and never commit the key to a repository.
  1. Copy your key from My Profile → API key.
  2. Add the server with the header (replace YOUR_API_KEY):
    Codex uses TOML instead:
  3. Restart the client. To revoke access, regenerate the key in your profile — every client using the old key loses access at once.

How authorization works

You don’t need this to connect, but if you’re building or debugging a client, the OAuth 2.1 section walks through the whole flow — discovery, Dynamic Client Registration, the authorization code + PKCE exchange, and token refresh — with a sequence diagram. The OAuth 2.1 reference lists every endpoint and parameter. MCP clients request the https://api.everhour.com/mcp resource, so their token is audience-bound to this server.