Skip to main content
Glama
dandyer

jobkeepr-mcp

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
JOBKEEPR_URLNoOverride only for self-hosted or staging.https://jobkeepr.com
JOBKEEPR_API_KEYYesFrom Settings → API Keys. Starts with jk_live_.

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
get_business_contextA

Get this business's name, timezone, working hours, price catalog, lead sources, and — most importantly — today's date plus the resolved YYYY-MM-DD ranges for "today", "tomorrow", "this week", "last week", "this month", "last month", and "this year" in the business's own timezone and week-start convention. Call this FIRST when a request involves any relative date, and pass the returned values to the dateFrom/dateTo arguments of the other tools rather than computing dates yourself. Also call it BEFORE creating a job, estimate, or line items: the returned catalog supplies the catalogItemId and price for each line, and jobSources lists the only accepted values for create_job's required source.

get_jobsA

Fetch job records with filters. Use for any question about jobs, work performed, job types, job sources, or schedules. Returns raw job data - you calculate totals, counts, and comparisons.

get_paymentsA

Fetch payment records. Use for revenue questions, income tracking, payment history. Returns raw payment data - you sum and analyze.

get_customersA

Search or list customers. Use for customer lookups, finding contact info, or customer-related questions.

get_invoicesB

Fetch invoice records. Use for billing questions, unpaid balances, invoice status tracking.

get_estimatesA

Fetch estimates/quotes. Use for pending proposals, conversion tracking, estimate follow-ups.

get_line_itemsA

Fetch line items from jobs (services/products sold). Use for questions about which items make money, most popular services, item profitability, catalog usage.

get_reference_dataA

Fetch lookup tables: job types, job sources, catalog items. Use when you need to know what types/sources exist, catalog pricing, or to map IDs to names.

get_scheduleA

Get scheduled jobs, calendar events (time off, meetings, walkthroughs), and optionally available time slots. Use for 'what's on the calendar', 'when am I free', scheduling questions.

create_jobA

Schedule/create a new job for a customer. Pull the date and time from anywhere in the user's message, including pasted or forwarded text (e.g. 'scheduled for Wednesday the 24th at 9am'). Resolve relative dates like 'next monday' or 'the 24th' using the DATE REFERENCE in your instructions. Only ask for a date/time when none appears anywhere in the message — never re-ask for one the user already provided. If the customer is new (doesn't exist yet), pass their contact details here — do NOT call create_customer separately. This tool handles creating the customer AND the job in one step. When user says 'create customer X and schedule a job', use ONLY this tool.

create_eventA

Add a calendar event that is NOT a job: time off, a walkthrough, a meeting, a personal appointment, a block of time. Use this when the user says 'event', 'block off', 'time off', 'meeting', or describes something on the calendar that is not billable work. For scheduling billable work for a customer, use create_job instead. An event can optionally be linked to an existing customer and/or a crew member. Pull the date and time from anywhere in the message and resolve relative dates using the DATE REFERENCE.

close_jobsA

Mark jobs as complete/done. ALWAYS use this tool when user wants to: close jobs, complete jobs, mark jobs done, finish jobs. Examples: 'close today's jobs', 'mark the Smith job done', 'complete yesterday's jobs'. Do NOT use get_jobs first - this tool finds and closes jobs in one step.

reschedule_jobA

Change the date, time, or length of an existing job. Provide customerName (finds most recent scheduled job) OR jobId (exact match). Supply at least one of newDate, newTime, or durationMinutes. When moving the job, provide both newDate and newTime where possible. When the user only wants the appointment to block off more or less time (e.g. 'make Jon's appointment 3 hours', 'that job needs 90 minutes'), pass durationMinutes alone and leave the date and time out so the job stays where it is.

cancel_jobA

Cancel a scheduled job by setting its status to CANCELED. No data is deleted. Provide customerName (finds most recent scheduled job) OR jobId (exact match). Use customerName when user mentions a customer.

create_customerA

Add a new customer without scheduling a job. For new customers WITH a job, use create_job instead — it handles creating the customer inline. Extract ALL contact details the user provides (name, phone, email, address).

create_estimateA

Create an estimate/quote for a customer. When the user specifies a flat rate or custom price (e.g. 'total $250', 'charge $300 flat'), pass lineItems with that custom unitPrice — do NOT use catalog pricing. Only fall back to catalog pricing when no price is specified. For flat rates, use a single line item with the service name and the stated price.

add_line_itemsA

Add billable line items to an EXISTING job. Use when the user wants to add services/products to a job that's already scheduled (e.g., 'add a $50 cable management charge to the Smith job'). For brand-new jobs, use create_job with lineItems instead. Pass unitPrice when the user states a price; omit it to fall back to catalog matching by name.

create_catalog_itemA

Add a new service or product to the catalog with pricing. Use when user mentions pricing for services/products. This is the ONLY place to store pricing information.

set_customer_sourceA

Set or change how a customer found the business (their lead source). The source is stored on the customer, not on individual jobs, and every job they book counts toward it.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A3.8/5.0

Scored across 19 tools

Disambiguation4/5

Most tools have clearly distinct purposes (create_job vs create_event vs create_customer are explicitly differentiated, and add_line_items vs create_job+lineItems is clarified). Minor overlap exists between get_jobs and get_schedule and between get_business_context and get_reference_data, which both return catalog/lookup data, but the descriptions give workable guidance.

Naming Consistency5/5

Every tool follows a strict snake_case verb_noun convention (get_jobs, create_job, reschedule_job, close_jobs, cancel_job, add_line_items, set_customer_source). No camelCase or naming outliers, making the set highly predictable.

Tool Count4/5

19 tools is on the heavier side but reasonable for a multi-entity domain (jobs, customers, estimates, invoices, payments, catalog, scheduling). Each tool maps to a distinct operation, though a few could plausibly be consolidated (e.g. get_reference_data vs get_business_context).

Completeness3/5

Job lifecycle is well covered (create, read, reschedule, close, cancel) and estimates/catalog have creation paths, but notable gaps exist: no update_customer, no update/delete for estimates, invoices, or line items, and no way to record payments or convert estimates to jobs. Read-only surfaces for invoices/payments leave dead ends.

Maintenance

ActivityMaintained
ResponsivenessNo issues