Free, open-source time tracking and invoicing for freelancers, with an MCP server for any AI assistant.
Setup
Choose your client, copy the config, then fill in any required environment variables.
Local
claude mcp add usehourly --env USEHOURLY_API_TOKEN='<USEHOURLY_API_TOKEN>' -- npx -y usehourly-mcp~/.codex/config.toml
[mcp_servers.usehourly]
command = "npx"
args = ["-y", "usehourly-mcp"]
env = { USEHOURLY_API_TOKEN = "<USEHOURLY_API_TOKEN>" }
# codex mcp add usehourly --env USEHOURLY_API_TOKEN='<USEHOURLY_API_TOKEN>' -- npx -y usehourly-mcp~/.cursor/mcp.json
{
"mcpServers": {
"usehourly": {
"command": "npx",
"args": [
"-y",
"usehourly-mcp"
],
"env": {
"USEHOURLY_API_TOKEN": "<USEHOURLY_API_TOKEN>"
}
}
}
}.vscode/mcp.json
{
"servers": {
"usehourly": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"usehourly-mcp"
],
"env": {
"USEHOURLY_API_TOKEN": "<USEHOURLY_API_TOKEN>"
}
}
}
}~/.gemini/settings.json
{
"mcpServers": {
"usehourly": {
"command": "npx",
"args": [
"-y",
"usehourly-mcp"
],
"env": {
"USEHOURLY_API_TOKEN": "<USEHOURLY_API_TOKEN>"
}
}
}
}claude_desktop_config.json
{
"mcpServers": {
"usehourly": {
"command": "npx",
"args": [
"-y",
"usehourly-mcp"
],
"env": {
"USEHOURLY_API_TOKEN": "<USEHOURLY_API_TOKEN>"
}
}
}
}.trae/mcp.json
{
"mcpServers": {
"usehourly": {
"command": "npx",
"args": [
"-y",
"usehourly-mcp"
],
"env": {
"USEHOURLY_API_TOKEN": "<USEHOURLY_API_TOKEN>"
}
}
}
}Remote
claude mcp add --transport http usehourly https://usehourly.app/api/mcp --header 'Authorization: <AUTHORIZATION>'~/.codex/config.toml
[mcp_servers.usehourly]
url = "https://usehourly.app/api/mcp"
http_headers = { Authorization = "<AUTHORIZATION>" }
# codex mcp add usehourly --url https://usehourly.app/api/mcp~/.cursor/mcp.json
{
"mcpServers": {
"usehourly": {
"url": "https://usehourly.app/api/mcp",
"headers": {
"Authorization": "<AUTHORIZATION>"
}
}
}
}.vscode/mcp.json
{
"servers": {
"usehourly": {
"type": "http",
"url": "https://usehourly.app/api/mcp",
"headers": {
"Authorization": "<AUTHORIZATION>"
}
}
}
}~/.gemini/settings.json
{
"mcpServers": {
"usehourly": {
"httpUrl": "https://usehourly.app/api/mcp",
"headers": {
"Authorization": "<AUTHORIZATION>"
}
}
}
}claude_desktop_config.json · Customize › Connectors › Add custom connector
{
"mcpServers": {
"usehourly": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://usehourly.app/api/mcp",
"--header",
"Authorization:<AUTHORIZATION>"
]
}
}
}.trae/mcp.json
{
"mcpServers": {
"usehourly": {
"url": "https://usehourly.app/api/mcp",
"headers": {
"Authorization": "<AUTHORIZATION>"
}
}
}
}Environment variables
USEHOURLY_API_TOKEN
Replace the placeholders with your own credentials and keep them out of version control.