Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
作者による説明(英語の原文)
Freelancer time tracking for AI assistants: log time, timers, timesheets, sign-off links, invoices.
この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。
このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。
使っているAIアプリを選んで、設定をコピーしてください。
USEHOURLY_API_TOKEN, Authorization「秘密」と表示された値は、あなたのアカウントの鍵です。絶対に人に教えたり、チャットに貼り付けたりしないでください。
必要なもの
どのアプリを使っていますか?
上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。
このアドレスはリクエストの header にキーが必要ですが、コネクタを追加するメニューでは設定できません。代わりにClaude Code、Cursor、VS Codeを使ってください。
Claude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます
{
"mcpServers": {
"usehourly": {
"command": "npx",
"args": [
"-y",
"usehourly-mcp"
],
"env": {
"USEHOURLY_API_TOKEN": "your-value"
}
}
}
}ターミナルでこれを実行します
claude mcp add --transport http usehourly https://usehourly.app/api/mcp --header 'Authorization: your-value'claude mcp add usehourly --env USEHOURLY_API_TOKEN=your-value -- npx -y usehourly-mcp動かす前に、空欄の値を入力してください。
プロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます
{
"mcpServers": {
"usehourly": {
"url": "https://usehourly.app/api/mcp",
"headers": {
"Authorization": "your-value"
}
}
}
}プロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます
{
"mcpServers": {
"usehourly": {
"command": "npx",
"args": [
"-y",
"usehourly-mcp"
],
"env": {
"USEHOURLY_API_TOKEN": "your-value"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
プロジェクトの .vscode/mcp.json に貼り付けます
{
"servers": {
"usehourly": {
"type": "http",
"url": "https://usehourly.app/api/mcp",
"headers": {
"Authorization": "your-value"
}
}
}
}プロジェクトの .vscode/mcp.json に貼り付けます
{
"servers": {
"usehourly": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"usehourly-mcp"
],
"env": {
"USEHOURLY_API_TOKEN": "your-value"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
このアドレスはリクエストの header にキーが必要ですが、コネクタを追加するメニューでは設定できません。代わりにClaude Code、Cursor、VS Codeを使ってください。
選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。
Authorization 秘密 HTTP headerこの設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。
このサーバーのツール一覧はまだ読み取っていません。エンドポイントは順番にチェックしています。
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月6日にチェック
レジストリ名はドメイン usehourly.app で確認済みです(レジストリがドメインの所有を確認しています)
このリポジトリはまだGitHubから読み取っていません
このリポジトリはまだGitHubから読み取っていません
まだチェックしていません。エンドポイントは順番にチェックしています
まだチェックしていません。エンドポイントは順番にチェックしています
まだチェックしていません。エンドポイントをチェックするときにツール一覧を読み取ります
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
入力が必要なもの:USEHOURLY_API_TOKEN, Authorization
どちらでも使えます。パソコンにインストールしても、クラウド版につないでもかまいません。
GitHubリポジトリの最終更新は–、最新バージョン(1.1.0)がレジストリに届いたのは17 日前です。
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。URLでつながるので、リモートMCPサーバーに対応したアプリ(開発者モードのChatGPTなど)でも使えます。
同じカテゴリには:Spec Driven Development, Remote Desktop Commander, Safe Fetch
同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。
カードの見方:★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
MCP server for fetching URLs, safe against SSRF, DNS rebinding, and redirect-to-internal attacks.
作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
The free, open-source time tracker your AI assistant can use. Connect Claude, ChatGPT, Cursor or any MCP assistant and say "log 3 hours on Acme, then make this week's timesheet for sign-off". Or log your day in seconds yourself: type 1.5, 1:30 or 90m, press Enter, done.
Live: https://usehourly.app · Free to use, no paywall, no ads.
https://github.com/Zontak-LLC/usehourly/raw/main/public/landing/assistant-demo.mp4
UseHourly runs a remote Model Context Protocol server at https://usehourly.app/api/mcp (Streamable HTTP). It has 32 tools for projects, clients, time entries, timers, timesheets, 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:
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 header in their MCP settings.
Cursor (~/.cursor/mcp.json):
{ "mcpServers": { "usehourly": { "url": "https://usehourly.app/api/mcp", "headers": { "Authorization": "Bearer <your token>" } } } }
VS Code (.vscode/mcp.json):
{ "servers": { "usehourly": { "type": "http", "url": "https://usehourly.app/api/mcp", "headers": { "Authorization": "Bearer <your token>" } } } }
For clients that can only run local (stdio) servers, such as Claude Desktop, there is a small bridge published on npm (usehourly-mcp): set the command to npx with args ["-y", "usehourly-mcp"] and USEHOURLY_API_TOKEN to your token.
Then ask: "Log 2 hours on the Acme website for yesterday" or "Make an invoice for Acme for September."
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.
You need Node 22+.
npm install # also runs `prisma generate`
cp wrangler.example.jsonc wrangler.jsonc # then set account_id and database_id (see Deploy)
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.
npm test # scenario tests (Vitest)
npx biome check # lint and format npx tsc --noEmit # type check
It runs on Cloudflare Workers with a D1 database:
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..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.npm run d1:migrate:remotenpx wrangler secret put AUTH_SECRETnpm run deployPassword reset and email confirmation need an email service. UseHourly sends through Resend: verify your sending domain there, then set two values on the Worker:
npx wrangler secret put RESEND_API_KEY
npx wrangler secret put EMAIL_FROM # for example: UseHourly
Without them the app works as before, and the forgot-password page says email isn't set up.
.circleci/config.yml runs the checks on every push and, on main, applies the D1 migrations and deploys. The deploy token is a secret, so keep it out of the project settings: create a context named usehourly-production (Organization Settings > Contexts), add an expression restriction pipeline.git.branch == "main", and put the token in it. Only the deploy job on main can read it.
| Context variable | Value |
|---|---|
CLOUDFLARE_API_TOKEN | a token with Workers Scripts: Edit and D1: Edit |
In the CircleCI project settings add these environment variables:
| Variable | Value |
|---|---|
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.
UseHourly is free. If it saves you time you can sponsor it on GitHub.
Thank you to everyone who helps keep UseHourly free:
_Be the first: sponsor UseHourly on GitHub._
Built on the excellent next-shadcn-admin-dashboard template by Mohammed Arham Khan.
Released under the MIT License. The code is open; the name "UseHourly" and its logo are not part of the license.