This skill should be used when the user asks to "check service fusion", "look up a customer", "create an estimate", "check the schedule", "morning briefing", "what jobs are open", "who's on call", "pull up customer", "update pricebook", "Rexel prices", "create invoice", "missed calls", "build a proposal", "draft a contract", or any Service Fusion / SF operations task. Provides complete operational control over Phoenix Electric's Service Fusion tenant.
Operational skill for Phoenix Electric's Service Fusion tenant. 23 active tools across 8 categories (CRM, Jobs, Estimates, Invoices, Technicians, Calendar, Lookups, Meta). 34 additional deprecated stubs exist for endpoints that returned 404 during API discovery — these are kept for backward compatibility but will error if called.
OAuth 2.0 client_credentials via POST https://api.servicefusion.com/oauth/access_token with JSON body:
{ "grant_type": "client_credentials", "client_id": "...", "client_secret": "..." }
Credentials sourced from Azure Key Vault (PhoenixaAiVault). Requires az login on the machine. The MCP server pulls:
SERVICEFUSION-CLIENT-ID → client_idSERVICEFUSION-SECRET → client_secretNo app key. No tenant ID. SF v1 API uses flat paths, not tenant-scoped.
Token is cached with 60-second expiry buffer. Refresh tokens supported ().
grant_type: "refresh_token"https://api.servicefusion.com/v1/{resource}?page=N&per-page=N (1-50, default 10)?sort=-name,description (prefix - for descending)?filters[field]=value?fields=name,email{ items: [...], _meta: { totalCount, pageCount, currentPage, perPage } }servicefusion_* (e.g. servicefusion_list_customers)SF_APPROVAL_TOKEN env var or ALLOW_SF_WRITES=true| Category | Count | Tools |
|---|---|---|
| CRM | 5 | servicefusion_list_customers, servicefusion_get_customer, servicefusion_get_customer_equipment, servicefusion_create_customer, servicefusion_search_customers |
| Jobs | 5 | servicefusion_list_jobs, servicefusion_get_job, servicefusion_create_job, servicefusion_list_job_statuses, servicefusion_list_job_categories |
| Estimates | 3 | servicefusion_list_estimates, servicefusion_get_estimate, servicefusion_create_estimate |
| Invoices | 2 | servicefusion_list_invoices, servicefusion_get_invoice |
| Technicians | 2 | servicefusion_list_technicians, servicefusion_get_technician |
| Calendar | 2 | servicefusion_list_calendar_tasks, servicefusion_create_calendar_task |
| Lookups | 2 | servicefusion_list_payment_types, servicefusion_list_sources |
| Meta | 2 | servicefusion_me, servicefusion_health |
These endpoints were confirmed unavailable during API discovery (2026-03-10). Calling them returns an error explaining the limitation. Use the SF web UI for these operations.
| Category | Tools |
|---|---|
| Dispatch | get_capacity, list_technician_shifts, get_on_call_technician, list_zones |
| Pricebook | list_services, list_materials, create_material, update_material, list_equipment, list_categories, compare_prices |
| Telecom | list_calls, get_call, get_missed_calls, get_calls_with_recordings |
| Memberships | list_membership_types, list_customer_memberships, list_recurring_services |
| Marketing | list_campaigns, list_campaign_categories, list_campaign_costs |
| Settings | list_employees, list_business_units, list_tag_types |
| CRM (sub) | list_locations, list_bookings, create_booking |
| Jobs (sub) | cancel_job, list_appointments, reschedule_appointment, list_job_types, get_daily_job_summary |
| Accounting (sub) | list_payments, sell_estimate |
servicefusion_list_jobs — today's jobs (filter by date if possible)servicefusion_list_estimates with filters[status]=Open — open estimatesservicefusion_list_technicians — who's availableservicefusion_search_customers with customer nameservicefusion_get_customer for full detailsservicefusion_get_customer_equipment for equipment historyservicefusion_list_jobs with filters[customer_id] for job historyservicefusion_search_customers to find customerservicefusion_list_jobs for customer's active jobs (or servicefusion_create_job)servicefusion_create_estimate with assembled dataservicefusion_get_customer for customer detailsservicefusion_get_job for scope of workreferences/api-reference.md — All 23 active tools with input schemasreferences/workflows.md — Detailed step-by-step operational workflowsreferences/financials.md — Invoice lifecycle, payment tracking, estimate pipelinereferences/rexel-integration.md — Rexel vendor pricing (browser-only currently)references/browser-fallback.md — Chrome automation for API-limited operationsreferences/future-gateway.md — Architecture for Studio/Gateway features/v1/customers, /v1/jobs — NO tenant ID in URLapi.servicefusion.com/oauth/access_token (NOT auth.servicefusion.com)Authorization: Bearer {token} headerreferences/browser-fallback.md for those.