Skip to content

Service Fusion MCP by usefulapi

io.usefulapi/service-fusionusefulapi.iostreamable-httpv1.0.0Scanned

Read Service Fusion customers, jobs, estimates, invoices and schedule; create customers and jobs.

26 tools: 3 can delete or cancel things, 2 change things and 21 only read.

Tools: 3 delete, 0 irreversible, 2 write, 21 read.
  • Reads private data · 8
  • Reads text others write · 26
  • Can send data out · 0
  • 3 findings

Anlyon alternative

5 of these tools change something. Run those as governed actions.

Declare what an action changes, and Anlyon puts it under a shared limit, binds every approval to the exact request, and grades the outcome. It works on any HTTPS API you can describe as an action.

Anlyon does not run, proxy or govern this MCP server. A tool your own code calls directly is not routed through Anlyon and is not governed by it.

Import an OpenAPI spec →

Tools

Grouped by what each tool does, most consequential first. Open one for its reasons and full description; descriptions are the publisher's own words.

26 tools

Deletes or cancels 3Claude Code: deny
  • servicefusion_create_customerWRITE: create a customer in Service Fusion, optionally with contacts (phones, emails) and service locations.Reads text others writeNo findings

    Why it is in this group

    • The name "servicefusion_create_customer" says "create": a word for a change.
    • The server marks it destructive (destructiveHint: true).

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    WRITE: create a customer in Service Fusion, optionally with contacts (phones, emails) and service locations. It is visible to the whole team and cannot be deleted through this API; creating the same name twice makes two customers, so search with servicefusion_list_customers first. POST /customers.

    Annotations the server declares

    • title: Create customer
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: true
  • servicefusion_create_estimateWRITE: create an estimate (quote) for a customer, optionally with address, category, source, technicians, tasks, notes, products, services, other charges and tags.Reads text others writeNo findings

    Why it is in this group

    • The name "servicefusion_create_estimate" says "create": a word for a change.
    • The server marks it destructive (destructiveHint: true).

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    WRITE: create an estimate (quote) for a customer, optionally with address, category, source, technicians, tasks, notes, products, services, other charges and tags. It cannot be deleted through this API; creating twice makes two estimates. POST /estimates.

    Annotations the server declares

    • title: Create estimate
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: true
  • servicefusion_create_jobWRITE: create a job (work order) for a customer, optionally with address, category, source, assigned technicians, tasks, notes, products, services and other charges.Reads text others writeNo findings

    Why it is in this group

    • The name "servicefusion_create_job" says "create": a word for a change.
    • The server marks it destructive (destructiveHint: true).

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    WRITE: create a job (work order) for a customer, optionally with address, category, source, assigned technicians, tasks, notes, products, services and other charges. It appears on the team's schedule and cannot be deleted through this API; creating twice makes two jobs. Look up category, source and status names with the list tools first. POST /jobs.

    Annotations the server declares

    • title: Create job
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: true
Changes things 2Claude Code: ask
  • servicefusion_get_availabilityOpen time slots for technicians and/or crews over up to 8 days (end_date at most 7 days after start_date).Reads text others write1 finding

    Why it is in this group

    • The name "servicefusion_get_availability" says "get": a word for reading.
    • The description's first verb is "open": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.

    Findings

    • Warn

      The server marks "servicefusion_get_availability" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":true}; The name "servicefusion_get_availability" says "get": a word for reading.

      What this check looks for
    Description, as the server wrote it
    Open time slots for technicians and/or crews over up to 8 days (end_date at most 7 days after start_date). Filter by technician, crew, department, experience level and slot length. GET /availability.

    Annotations the server declares

    • title: Get technician availability
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • servicefusion_list_payment_typesThe payment types configured in the account.Reads text others write1 finding

    Why it is in this group

    • The name "servicefusion_list_payment_types" says "list": a word for reading.
    • The description's first verb is "type": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.

    Findings

    • Warn

      The server marks "servicefusion_list_payment_types" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":true}; The name "servicefusion_list_payment_types" says "list": a word for reading.

      What this check looks for
    Description, as the server wrote it
    The payment types configured in the account. GET /payment-types.

    Annotations the server declares

    • title: List payment types
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
Only reads 21Show 21 read-only tools
  • servicefusion_get_calendar_taskOne calendar task by id.Reads private dataReads text others writeNo findings

    Why it is in this group

    • The name "servicefusion_get_calendar_task" says "get": a word for reading.

    What it can reach

    • private-dataThe name "servicefusion_get_calendar_task" says "get" and "calendar": it reads calendars.
    • private-dataThe description's first sentence says "calendar": it reads calendars.
    • private-dataThe input names a calendar (input.calendar_task_id), and the tool reads: it reads calendars.
    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    One calendar task by id. GET /calendar-tasks/{id}.

    Annotations the server declares

    • title: Get calendar task
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • servicefusion_get_crewOne crew by id, optionally with its technicians.Reads text others writeNo findings

    Why it is in this group

    • The name "servicefusion_get_crew" says "get": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    One crew by id, optionally with its technicians. GET /crews/{id}.

    Annotations the server declares

    • title: Get crew
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • servicefusion_get_customerOne customer by id, optionally with contacts, phones, emails, locations and custom fields.Reads private dataReads text others writeNo findings

    Why it is in this group

    • The name "servicefusion_get_customer" says "get": a word for reading.

    What it can reach

    • private-dataThe description's first sentence says "contact": it reads contacts.
    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    • untrusted-inputThe description's first sentence says "email": it reads inbound email, which other people can write.
    Description, as the server wrote it
    One customer by id, optionally with contacts, phones, emails, locations and custom fields. GET /customers/{id}.

    Annotations the server declares

    • title: Get customer
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • servicefusion_get_customer_equipmentOne piece of equipment of a customer.Reads text others writeNo findings

    Why it is in this group

    • The name "servicefusion_get_customer_equipment" says "get": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    One piece of equipment of a customer. GET /customers/{customer_id}/equipment/{equipment_id}.

    Annotations the server declares

    • title: Get customer equipment
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • servicefusion_get_estimateOne estimate by id, optionally with line items, technicians, notes, tags and more.Reads private dataReads text others writeNo findings

    Why it is in this group

    • The name "servicefusion_get_estimate" says "get": a word for reading.

    What it can reach

    • private-dataThe description's first sentence says "note": it reads notes.
    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    One estimate by id, optionally with line items, technicians, notes, tags and more. GET /estimates/{id}.

    Annotations the server declares

    • title: Get estimate
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • servicefusion_get_invoiceOne invoice by id.Reads text others writeNo findings

    Why it is in this group

    • The name "servicefusion_get_invoice" says "get": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    One invoice by id. GET /invoices/{id}.

    Annotations the server declares

    • title: Get invoice
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • servicefusion_get_jobOne job by id, optionally with technicians, line items, labor, expenses, payments, invoices, notes, visits and more.Reads private dataReads text others writeNo findings

    Why it is in this group

    • The name "servicefusion_get_job" says "get": a word for reading.

    What it can reach

    • private-dataThe description's first sentence says "note": it reads notes.
    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    One job by id, optionally with technicians, line items, labor, expenses, payments, invoices, notes, visits and more. GET /jobs/{id}.

    Annotations the server declares

    • title: Get job
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • servicefusion_get_meThe Service Fusion user the API credentials belong to: id, name and email.Reads private dataReads text others write1 finding

    Why it is in this group

    • The name "servicefusion_get_me" says "get": a word for reading.

    What it can reach

    • private-dataThe description's first sentence says "credential": it reads secrets.
    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    • untrusted-inputThe description's first sentence says "email": it reads inbound email, which other people can write.

    Findings

    • Info

      The description mentions "credentials".

      Matched text

      description: "The Service Fusion user the API credentials belong to: id, name and email. Use it t..."

      What this check looks for
    Description, as the server wrote it
    The Service Fusion user the API credentials belong to: id, name and email. Use it to check the connection. GET /me.

    Annotations the server declares

    • title: Get current user
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • servicefusion_get_techOne technician by id.Reads text others writeNo findings

    Why it is in this group

    • The name "servicefusion_get_tech" says "get": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    One technician by id. GET /techs/{id}.

    Annotations the server declares

    • title: Get technician
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • servicefusion_list_calendar_tasksList calendar tasks (appointments and to-dos on the schedule) for one day (start_date or end_date alone), a date range (both) and/or given users.Reads private dataReads text others writeNo findings

    Why it is in this group

    • The name "servicefusion_list_calendar_tasks" says "list": a word for reading.

    What it can reach

    • private-dataThe name "servicefusion_list_calendar_tasks" says "list" and "calendar": it reads calendars.
    • private-dataThe description's first sentence says "list" and "calendar": it reads calendars.
    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    List calendar tasks (appointments and to-dos on the schedule) for one day (start_date or end_date alone), a date range (both) and/or given users. A task is returned when it overlaps the range. GET /calendar-tasks.

    Annotations the server declares

    • title: List calendar tasks
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • servicefusion_list_crewsList crews (named groups of technicians), optionally with their members.Reads text others writeNo findings

    Why it is in this group

    • The name "servicefusion_list_crews" says "list": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    List crews (named groups of technicians), optionally with their members. GET /crews.

    Annotations the server declares

    • title: List crews
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • servicefusion_list_customer_equipmentList the equipment on file for a customer (type, make, model, serial number, warranty and install dates).Reads private dataReads text others writeNo findings

    Why it is in this group

    • The name "servicefusion_list_customer_equipment" says "list": a word for reading.

    What it can reach

    • private-dataThe description's first sentence says "list" and "file": it reads files.
    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    List the equipment on file for a customer (type, make, model, serial number, warranty and install dates). GET /customers/{id}/equipment.

    Annotations the server declares

    • title: List customer equipment
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • servicefusion_list_customersList customers (newest id order unless sorted).Reads text others writeNo findings

    Why it is in this group

    • The name "servicefusion_list_customers" says "list": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    List customers (newest id order unless sorted). Filter by name, contact, address, city, postal code, phone, email, tags or last-serviced date. Add expand=contacts,locations,custom_fields to include them. GET /customers.

    Annotations the server declares

    • title: List customers
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • servicefusion_list_estimatesList estimates (quotes).Reads text others writeNo findings

    Why it is in this group

    • The name "servicefusion_list_estimates" says "list": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    List estimates (quotes). Filter by status, number, PO number, customer, contact, address, phone, email, category, source and start/end/requested dates. GET /estimates.

    Annotations the server declares

    • title: List estimates
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • servicefusion_list_invoicesList invoices with number, total, paid flag, dates and the customer.Reads text others writeNo findings

    Why it is in this group

    • The name "servicefusion_list_invoices" says "list": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    List invoices with number, total, paid flag, dates and the customer. The API has no invoice filters: sort and page instead (for example sort=-date). GET /invoices.

    Annotations the server declares

    • title: List invoices
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • servicefusion_list_job_categoriesThe job category names to use when creating or filtering jobs.Reads text others writeNo findings

    Why it is in this group

    • The name "servicefusion_list_job_categories" says "list": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    The job category names to use when creating or filtering jobs. GET /job-categories.

    Annotations the server declares

    • title: List job categories
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • servicefusion_list_job_statusesThe job status names (code, name, custom flag, category) to use when creating or filtering jobs.Reads text others writeNo findings

    Why it is in this group

    • The name "servicefusion_list_job_statuses" says "list": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    The job status names (code, name, custom flag, category) to use when creating or filtering jobs. GET /job-statuses.

    Annotations the server declares

    • title: List job statuses
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • servicefusion_list_jobsList jobs (work orders).Reads text others writeNo findings

    Why it is in this group

    • The name "servicefusion_list_jobs" says "list": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    List jobs (work orders). Filter by status, number, PO or invoice number, customer, contact, address, phone, email, category, source and start/end/updated/closed dates. Add expand (techs_assigned, services, products, payments, invoices, visits, notes, ...) for detail. GET /jobs.

    Annotations the server declares

    • title: List jobs
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • servicefusion_list_sourcesThe lead/referral sources (short and long names) to use when creating or filtering jobs and estimates.Reads text others writeNo findings

    Why it is in this group

    • The name "servicefusion_list_sources" says "list": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    The lead/referral sources (short and long names) to use when creating or filtering jobs and estimates. GET /sources.

    Annotations the server declares

    • title: List lead sources
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • servicefusion_list_tech_departmentsThe technician department names configured in the account (useful for availability filters).Reads text others writeNo findings

    Why it is in this group

    • The name "servicefusion_list_tech_departments" says "list": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    The technician department names configured in the account (useful for availability filters). GET /techs/departments.

    Annotations the server declares

    • title: List technician departments
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • servicefusion_list_techsList technicians and sales reps (name, contact details, department, title, color, field-worker and sales-rep flags).Reads private dataReads text others writeNo findings

    Why it is in this group

    • The name "servicefusion_list_techs" says "list": a word for reading.

    What it can reach

    • private-dataThe description's first sentence says "list" and "contact": it reads contacts.
    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    List technicians and sales reps (name, contact details, department, title, color, field-worker and sales-rep flags). GET /techs.

    Annotations the server declares

    • title: List technicians
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Exfil surface

Which tools read private data, which read text someone else can write, and which can send data out. One of each is a path a prompt injection can use.

No private-data, untrusted-input, outbound path in this server alone: no tool is tagged outbound.

Can send data out0
Can carry data to people or systems: it sends, posts or publishes, or takes a recipient, channel or URL.

Other servers in the same agent add their own tools to these paths. Audit your whole setup to see them together.

Findings

Matches of fixed checks, with the text they matched.

2 warn1 info
  • The server marks "servicefusion_get_availability" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":true}; The name "servicefusion_get_availability" says "get": a word for reading.

    What this check looks for
  • The server marks "servicefusion_list_payment_types" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":true}; The name "servicefusion_list_payment_types" says "list": a word for reading.

    What this check looks for
  • The description mentions "credentials".

    Matched text

    description: "The Service Fusion user the API credentials belong to: id, name and email. Use it t..."

    What this check looks for

History

Changes to its tool definitions and to its remote endpoint, newest first.

No change seen yet. Its tools are rescanned every day, and a remote endpoint is looked at once a week.

Install

Pinned to version 1.0.0. Values in angle brackets are yours to fill in.

claude mcp add --transport http service-fusion https://service-fusion.usefulapi.io/mcp
claude mcp add --transport http service-fusion https://service-fusion.usefulapi.io/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change or a way out, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__service-fusion__servicefusion_get_me",
      "mcp__service-fusion__servicefusion_list_customers",
      "mcp__service-fusion__servicefusion_get_customer",
      "mcp__service-fusion__servicefusion_list_customer_equipment",
      "mcp__service-fusion__servicefusion_get_customer_equipment",
      "mcp__service-fusion__servicefusion_list_jobs",
      "mcp__service-fusion__servicefusion_get_job",
      "mcp__service-fusion__servicefusion_list_estimates",
      "mcp__service-fusion__servicefusion_get_estimate",
      "mcp__service-fusion__servicefusion_list_invoices",
      "mcp__service-fusion__servicefusion_get_invoice",
      "mcp__service-fusion__servicefusion_list_calendar_tasks",
      "mcp__service-fusion__servicefusion_get_calendar_task",
      "mcp__service-fusion__servicefusion_list_techs",
      "mcp__service-fusion__servicefusion_get_tech",
      "mcp__service-fusion__servicefusion_list_tech_departments",
      "mcp__service-fusion__servicefusion_list_crews",
      "mcp__service-fusion__servicefusion_get_crew",
      "mcp__service-fusion__servicefusion_list_job_categories",
      "mcp__service-fusion__servicefusion_list_job_statuses",
      "mcp__service-fusion__servicefusion_list_sources"
    ],
    "ask": [
      "mcp__service-fusion__servicefusion_get_availability",
      "mcp__service-fusion__servicefusion_list_payment_types"
    ],
    "deny": [
      "mcp__service-fusion__servicefusion_create_customer",
      "mcp__service-fusion__servicefusion_create_job",
      "mcp__service-fusion__servicefusion_create_estimate"
    ]
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. A read that can send data out (it takes a URL, say) asks first too. It assumes the server is installed as service-fusion. Review it before you use it.

Capability tags behind 26 rules
  • mcp__service-fusion__servicefusion_get_me private-data, untrusted-input
  • mcp__service-fusion__servicefusion_list_customers untrusted-input
  • mcp__service-fusion__servicefusion_get_customer private-data, untrusted-input
  • mcp__service-fusion__servicefusion_list_customer_equipment private-data, untrusted-input
  • mcp__service-fusion__servicefusion_get_customer_equipment untrusted-input
  • mcp__service-fusion__servicefusion_list_jobs untrusted-input
  • mcp__service-fusion__servicefusion_get_job private-data, untrusted-input
  • mcp__service-fusion__servicefusion_list_estimates untrusted-input
  • mcp__service-fusion__servicefusion_get_estimate private-data, untrusted-input
  • mcp__service-fusion__servicefusion_list_invoices untrusted-input
  • mcp__service-fusion__servicefusion_get_invoice untrusted-input
  • mcp__service-fusion__servicefusion_list_calendar_tasks private-data, untrusted-input
  • mcp__service-fusion__servicefusion_get_calendar_task private-data, untrusted-input
  • mcp__service-fusion__servicefusion_get_availability untrusted-input
  • mcp__service-fusion__servicefusion_list_techs private-data, untrusted-input
  • mcp__service-fusion__servicefusion_get_tech untrusted-input
  • mcp__service-fusion__servicefusion_list_tech_departments untrusted-input
  • mcp__service-fusion__servicefusion_list_crews untrusted-input
  • mcp__service-fusion__servicefusion_get_crew untrusted-input
  • mcp__service-fusion__servicefusion_list_job_categories untrusted-input
  • mcp__service-fusion__servicefusion_list_job_statuses untrusted-input
  • mcp__service-fusion__servicefusion_list_payment_types untrusted-input
  • mcp__service-fusion__servicefusion_list_sources untrusted-input
  • mcp__service-fusion__servicefusion_create_customer untrusted-input
  • mcp__service-fusion__servicefusion_create_job untrusted-input
  • mcp__service-fusion__servicefusion_create_estimate untrusted-input

Pin

Keep the decision: fail CI when the tools change, follow every change, or show a badge.

Pin in CI

Fail a build when the tools you reviewed are not the tools the server serves today.

curl -s "https://anlyon.dev/api/v1/servers/io.usefulapi/service-fusion/verify?hash=465d669fd4f5d1a4e17f25e04d63113e6f71f25a210da42f73bf58139b749239" | jq -e '.changed == false'

Pinned hash 465d669fd4f5, from Oct 23, 2026, 08:19 UTC.

Watch

Get told when its tools change: a new tool, a new description, a new class.

https://anlyon.dev/servers/io.usefulapi/service-fusion/changes.xml

An Atom feed. Works in any feed reader or Slack's RSS app.

Badge

anlyon.dev badge for io.usefulapi/service-fusion
[![anlyon.dev](https://anlyon.dev/badge/io.usefulapi/service-fusion.svg)](https://anlyon.dev/servers/io.usefulapi/service-fusion)

Source: MCP Registry · repository. Synced Oct 23, 2026, 08:19 UTC.