Tell your AI client you are working. Janus tracks it.

Janus hosts a Model Context Protocol server for Claude Desktop, Claude Code, and compatible clients. The connection uses your personal API key and stays scoped to your own user and company.

Create a personal API key

Sign in to Janus, open API keys from the sidebar, name the key for the device or client, and copy the value beginning with janus_. It is shown only once.

Store the key in a password manager. It can perform the same Janus actions your account can perform.

Start free trial

Add the hosted server

Add this server entry to the MCP configuration used by your client. It uses mcp-remote through npx, which is included with Node.js. Replace janus_… with the key you just created.

{
  "mcpServers": {
    "janus": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://januskit.com/mcp/",
        "--header",
        "Authorization:${AUTH_HEADER}"
      ],
      "env": {
        "AUTH_HEADER": "Api-Key janus_…"
      }
    }
  }
}

The AUTH_HEADER environment value is intentional: it preserves the space in the authorization header when mcp-remote launches.

Claude Code: save the block as .mcp.json in a project root. For private local or user-wide configuration, add the same server object with claude mcp add-json and the appropriate scope.

Claude Desktop: open Settings → Developer → Edit Config. The file is ~/Library/Application Support/Claude/claude_desktop_config.json on macOS or %APPDATA%\Claude\claude_desktop_config.json on Windows.

Native Windows: local MCP commands that use npx may need cmd /c; set command to cmd and prepend /c, npx to the arguments.

Restart and talk

Restart the AI client so it reloads the MCP configuration, approve Janus when prompted, and use direct requests such as:

“Start tracking the API rewrite, non-billable.”

“Also track the launch project while that keeps running.”

“What did I log yesterday?”

“Create a milestone called Launch.”

“Submit today’s site Pulse.”

“Hours per client last month, split by person.”

Everything the server exposes

  • whoami
  • list_time_entries
  • list_projects
  • list_milestones
  • list_pulse_clients
  • list_pulse_tags
  • current_timer
  • start_timer
  • stop_timer
  • log_time
  • update_time_entry
  • create_milestone
  • set_vacation_mode
  • set_vacation_period
  • get_pulse_form
  • list_pulses
  • create_pulse
  • update_pulse
  • list_report_filters
  • report_summary
  • report_detailed
  • report_project

Read-only and scoped like the web reports. Summary and detailed reports are for admins. For CSV or PDF files, use the REST API.

Give Claude the Janus workflow

The optional /janus skill teaches Claude when to ask for missing fields and how to confirm changes. It is for Claude Code; Claude Desktop users can skip it.

mkdir -p ~/.claude/skills/janus
curl -fsSL https://januskit.com/skills/janus/SKILL.md \
  -o ~/.claude/skills/janus/SKILL.md

Run the command again whenever you want the current skill version from Janus.

Security and access

  • Every tool uses the company and permissions attached to the API-key owner.
  • The server does not grant an integration broader access than the user already has.
  • Revoke the key immediately when a device is replaced or access may have been exposed.

Building a custom integration? The same capabilities are documented in the OpenAPI, Swagger, and ReDoc reference.