Skip to main content
ClaudeWave

Free, open-source time tracking and invoicing for freelancers, with an MCP server for any AI assistant.

MCP ServersRegistry oficial0 estrellas0 forks● TypeScriptMITActualizado today
ClaudeWave Trust Score
95/100
✓ Verified
Passed
  • ✓Open-source license (MIT)
  • ✓Actively maintained (<30d)
  • ✓Clear description
  • ✓Topics declared
  • ✓Documented (README)
Last scanned: 10/17/2026
Install in Claude Code / Claude Desktop
Method: NPX · biome
Claude Code CLI
claude mcp add usehourly -- npx -y biome
claude_desktop_config.json (Claude Desktop)
{
  "mcpServers": {
    "usehourly": {
      "command": "npx",
      "args": ["-y", "biome"],
      "env": {
        "AUTH_SECRET": "<auth_secret>",
        "AUTH_URL": "<auth_url>",
        "NEXT_PUBLIC_APP_URL": "<next_public_app_url>"
      }
    }
  }
}
1. Run the command above in your terminal (Claude Code), or paste the JSON config into claude_desktop_config.json (Claude Desktop).
2. Replace any <placeholder> values with your API keys or paths.
3. Restart Claude. The MCP server and its tools appear automatically.
Detected environment variables
AUTH_SECRETAUTH_URLNEXT_PUBLIC_APP_URL
Casos de uso

Resumen de MCP Servers

# UseHourly

**A simple timesheet for freelancers.** Log your day in seconds: type `1.5`, `1:30` or `90m`, press Enter, done.

**Live:** https://usehourly.app · Free to use, no paywall, no ads.

![The weekly timesheet](public/landing/week.webp)

## What it does

- **Quick entry.** Pick a project, type the time the way you would say it, add a note. Or press Start and let the timer count.
- **Weekly timesheet.** Every project and every day in one editable grid. Fill several days at once, add more entries to a day, move an entry to another date.
- **Month calendar** with per-project totals.
- **Invoices.** Turn billable hours into a PDF invoice, track paid and unpaid, re-download any time.
- **Annual report.** Hours, earnings, invoiced and received by quarter and month, ready for your accountant.
- **Export.** Excel for any week, month or custom date range (for example March 3 to April 20), and one zip with everything: every client, all time.
- **Try it first.** "Try it with sample data" on the home page opens a throwaway account filled with a month of work. No sign-up; keep it with one click if you like it.
- **Switching from Toggl or Clockify?** Import their CSV export from the Account page. Clients and projects are created for you, and importing the same file twice adds nothing.
- **Works with AI assistants (MCP).** Any MCP client (Claude, Cursor, VS Code, ChatGPT, your own agent) can log time, start timers and create invoices for you. See below.
- **Free calculator.** [Hours calculator](https://usehourly.app/tools/hours-calculator): add up times and get decimal hours, no account needed.
- **Your data is yours.** Per-user isolation; everything you log can be exported at any time.

## Use it from any AI assistant (MCP server)

UseHourly runs a remote [Model Context Protocol](https://modelcontextprotocol.io) server at `https://usehourly.app/api/mcp` (Streamable HTTP). It has 30 tools for projects, clients, time entries, timers, invoices and reports; each one runs as you, so it only sees your own data. Create a token on Account > AI assistants (read-only or read and write, with an expiry), then:

```bash
claude mcp add --transport http usehourly https://usehourly.app/api/mcp --header "Authorization: Bearer <your token>"
```

That example is for Claude Code. Other clients just need the URL and an `Authorization: Bearer <token>` header in their MCP settings.

Cursor (`~/.cursor/mcp.json`):

```json
{ "mcpServers": { "usehourly": { "url": "https://usehourly.app/api/mcp", "headers": { "Authorization": "Bearer <your token>" } } } }
```

VS Code (`.vscode/mcp.json`):

```json
{ "servers": { "usehourly": { "type": "http", "url": "https://usehourly.app/api/mcp", "headers": { "Authorization": "Bearer <your token>" } } } }
```

Then ask: "Log 2 hours on the Acme website for yesterday" or "Make an invoice for Acme for September."

## Stack

Next.js 16 (App Router) · React 19 · Tailwind CSS v4 · shadcn/ui · NextAuth v5 (credentials) · tRPC v11 · Prisma 7 with Cloudflare D1 · Vitest · Biome · deployed to Cloudflare Workers with OpenNext.

## Run it locally

You need Node 22+.

```bash
npm install                 # also runs `prisma generate`

cp wrangler.example.jsonc wrangler.jsonc   # then set account_id and database_id (see Deploy)

# .env.local and .dev.vars (keep the two in sync):
#   AUTH_SECRET=<a long random string, e.g. `openssl rand -base64 32`>
#   AUTH_URL=http://localhost:3028

npm run d1:migrate:local    # create the local D1 database
npm run dev                 # http://localhost:3028
```

Register an account on the sign-up page and you are in.

```bash
npm test                    # scenario tests (Vitest)
npx biome check             # lint and format
npx tsc --noEmit            # type check
```

## Deploy

It runs on Cloudflare Workers with a D1 database:

1. `cp wrangler.example.jsonc wrangler.jsonc` and fill in your Cloudflare account id and a D1 database
   (`npx wrangler d1 create usehourly-db`). `wrangler.jsonc` is git-ignored, so your ids stay out of the repo.
2. Put your public address in `.env.production.local`: `NEXT_PUBLIC_APP_URL=https://app.example.com`
   (it is baked into the build) and set the same value as `AUTH_URL` in `wrangler.jsonc`.
3. `npm run d1:migrate:remote`
4. `npx wrangler secret put AUTH_SECRET`
5. `npm run deploy`

### Email (optional)

Password reset and email confirmation need an email service. UseHourly sends through
[Resend](https://resend.com): verify your sending domain there, then set two values on the Worker:

```bash
npx wrangler secret put RESEND_API_KEY
npx wrangler secret put EMAIL_FROM        # for example: UseHourly <noreply@your-domain.com>
```

Without them the app works as before, and the forgot-password page says email isn't set up.

### Deploy from CircleCI

`.circleci/config.yml` runs the checks on every push and, on `main`, applies the D1 migrations and
deploys. In the CircleCI project settings add these environment variables:

| Variable | Value |
|---|---|
| `CLOUDFLARE_API_TOKEN` | a token with Workers Scripts: Edit and D1: Edit |
| `CLOUDFLARE_ACCOUNT_ID` | your Cloudflare account id |
| `D1_DATABASE_ID` | the id of your D1 database |
| `APP_URL` | your public address, for example `https://app.example.com` |

Optional: `WORKER_NAME`, `D1_DATABASE_NAME`, `CUSTOM_DOMAIN`. `AUTH_SECRET` stays a Worker secret
(`npx wrangler secret put AUTH_SECRET`, once); CI never sees it. `scripts/ci-wrangler-config.mjs`
writes `wrangler.jsonc` from these variables, so no account ids live in the repository.

## Support

UseHourly is free. If it saves you time you can [sponsor it on GitHub](https://github.com/sponsors/Zontak-LLC).

### Supporters

Thank you to everyone who helps keep UseHourly free:

<!-- supporters:start -->
_Be the first: [sponsor UseHourly on GitHub](https://github.com/sponsors/Zontak-LLC)._
<!-- supporters:end -->

## Credits and license

Built on the excellent [next-shadcn-admin-dashboard](https://github.com/arhamkhnz/next-shadcn-admin-dashboard) template by Mohammed Arham Khan.

Released under the [MIT License](LICENSE). The code is open; the name "UseHourly" and its logo are not part of the license.
claudecloudflare-workersfreelancerfreelancersinvoicingmcpmcp-servermodel-context-protocolnextjsopen-sourcetime-trackingtimesheet

Lo que la gente pregunta sobre usehourly

¿Qué es Zontak-LLC/usehourly?

+

Zontak-LLC/usehourly es mcp servers para el ecosistema de Claude AI. Free, open-source time tracking and invoicing for freelancers, with an MCP server for any AI assistant. Tiene 0 estrellas en GitHub y su última actualización registrada es del 2026-10-17.

¿Cómo se instala usehourly?

+

Puedes instalar usehourly clonando el repositorio (https://github.com/Zontak-LLC/usehourly) o siguiendo las instrucciones del README en GitHub. ClaudeWave también te ofrece bloques de instalación rápida en esta misma página.

¿Es seguro usar Zontak-LLC/usehourly?

+

Nuestro agente de seguridad ha analizado Zontak-LLC/usehourly y le ha asignado un Trust Score de 95/100 (tier: Verified). Revisa el desglose completo de comprobaciones superadas y flags en esta página.

¿Quién mantiene Zontak-LLC/usehourly?

+

Zontak-LLC/usehourly es mantenido por Zontak-LLC. La última actividad registrada en GitHub es del 2026-10-17, con 0 issues abiertos.

¿Hay alternativas a usehourly?

+

Sí. En ClaudeWave puedes explorar mcp servers similares en /categories/mcp, ordenados por popularidad o actividad reciente.

Despliega usehourly en tu cloud

Lleva este repo a producción en minutos. Cada plataforma genera su propio entorno con variables de entorno editables.

¿Mantienes este repo? Añade un badge a tu README

Pega el badge en tu README de GitHub para mostrar que está auditado por ClaudeWave. Cada badge enlaza de vuelta a esta página y muestra el Trust Score actual.

Featured on ClaudeWave: Zontak-LLC/usehourly
[![Featured on ClaudeWave](https://claudewave.com/api/badge/zontak-llc-usehourly)](https://claudewave.com/repo/zontak-llc-usehourly)
<a href="https://claudewave.com/repo/zontak-llc-usehourly"><img src="https://claudewave.com/api/badge/zontak-llc-usehourly" alt="Featured on ClaudeWave: Zontak-LLC/usehourly" width="320" height="64" /></a>

Más MCP Servers

Alternativas a usehourly