{
  "markdown": "# Jobkeepr MCP server\n\nConnect [Jobkeepr](https://jobkeepr.com) to Claude, ChatGPT, or any other MCP client, so an AI assistant can read and manage your field service business: jobs, customers, scheduling, estimates, invoices and payments.\n\nJobkeepr is field service management software for small contractor crews — handymen, TV installers, plumbers, electricians, HVAC techs — running one to ten people.\n\n```\n\"What's on my schedule tomorrow?\"\n\"Which service made me the most money last month?\"\n\"Book Sarah Chen for a TV mount Thursday at 2pm.\"\n\"Mark today's jobs complete.\"\n```\n\n## Two ways to connect\n\n**Remote (recommended).** If your client supports remote MCP servers, point it straight at the hosted endpoint and skip this package entirely:\n\n```\nhttps://jobkeepr.com/mcp\n```\n\nIt supports OAuth, so you sign in with your normal Jobkeepr login and approve access in the browser. Nothing to install.\n\n**stdio (this package).** For clients that only speak stdio, this bridges to the same server using an API key.\n\n> **This package is not on npm.** Install it straight from GitHub using the\n> `github:dandyer/jobkeepr-mcp` specifier shown below. Plain `npx jobkeepr-mcp` will not\n> resolve. npm compiles the TypeScript for you on install, so there is nothing extra to run.\n\n## Setup\n\nCreate an API key in Jobkeepr under **Settings → API Keys**. It's shown once, so copy it then.\n\n### Claude Desktop\n\nAdd to `claude_desktop_config.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"jobkeepr\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"github:dandyer/jobkeepr-mcp\"],\n      \"env\": {\n        \"JOBKEEPR_API_KEY\": \"jk_live_your_key_here\"\n      }\n    }\n  }\n}\n```\n\n### Claude Code\n\n```bash\nclaude mcp add jobkeepr --env JOBKEEPR_API_KEY=jk_live_your_key_here -- npx -y github:dandyer/jobkeepr-mcp\n```\n\nOr connect to the remote endpoint directly:\n\n```bash\nclaude mcp add --transport http jobkeepr https://jobkeepr.com/mcp\n```\n\n## Tools\n\n### Reading\n\n| Tool | What it does |\n|---|---|\n| `get_business_context` | Business name, timezone, working hours, and today's date with resolved ranges for \"this week\", \"last month\" and so on |\n| `get_jobs` | Jobs filtered by date, status, customer, type or source |\n| `get_customers` | Search customers, optionally with job counts and totals |\n| `get_schedule` | Scheduled jobs and open time slots |\n| `get_estimates` | Estimates and their status |\n| `get_invoices` | Invoices and unpaid balances |\n| `get_payments` | Payments received |\n| `get_line_items` | Line items across jobs, for margin and mix analysis |\n| `get_reference_data` | Job types, job sources, and the price catalog |\n\n### Writing\n\n| Tool | What it does |\n|---|---|\n| `create_job` | Book a job for a customer |\n| `create_customer` | Add a customer |\n| `create_estimate` | Create an estimate |\n| `create_catalog_item` | Add a service or product to the price catalog |\n| `add_line_items` | Add billable line items to a job |\n| `set_job_source` | Record where a job came from |\n| `reschedule_job` | Move a job to a new date or time |\n| `cancel_job` | Cancel a scheduled job |\n| `close_jobs` | Mark jobs complete |\n\nThe financial tools require the `VIEW_FINANCIALS` permission, and each write tool requires its matching permission. Tools you cannot use are not listed to you.\n\n## What it will not do\n\n**No tool here can text your customers.** Sending SMS is deliberately excluded: it is the one action that reaches a real person and cannot be undone. Ask your assistant to draft a message and send it yourself from Jobkeepr.\n\nWrites take effect immediately. There is no staging step and no undo, which is why `cancel_job` and `close_jobs` are marked destructive so your client prompts before running them. `close_jobs` can act on many jobs at once, so check the set before approving it.\n\n## Configuration\n\n| Variable | Required | Default | Notes |\n|---|---|---|---|\n| `JOBKEEPR_API_KEY` | yes | — | From Settings → API Keys. Starts with `jk_live_`. |\n| `JOBKEEPR_URL` | no | `https://jobkeepr.com` | Override only for self-hosted or staging. |\n\nAn API key acts on one account and carries owner-level access. Revoke it any time in Settings → API Keys. To give an assistant narrower, per-user access instead, use the remote endpoint with OAuth.\n\n## How it works\n\nThis package is a proxy, not a reimplementation. The tools live on the hosted server; this bridges stdio to it. That means the tool set here is always current and this package rarely needs a release.\n\n## Development\n\n```bash\nnpm install\nnpm run build\nJOBKEEPR_API_KEY=jk_live_... node dist/index.js\n```\n\nTest interactively with the MCP Inspector:\n\n```bash\nJOBKEEPR_API_KEY=jk_live_... npx @modelcontextprotocol/inspector node dist/index.js\n```\n\n## Links\n\n- [Jobkeepr](https://jobkeepr.com)\n- [Model Context Protocol](https://modelcontextprotocol.io)\n\nMIT licensed.\n",
  "bytes": 4816,
  "sha": "bb3b4a222498fe9191a7534f565bdf4feb8716d1a8519f8d355a3e8b200e8213",
  "repo_slug": "dandyer/jobkeepr-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_com_jobkeepr_jobkeepr_1bb200a7/readme"
}