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.
- 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".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":true}; The name "servicefusion_get_availability" says "get": a word for reading.
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".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":true}; The name "servicefusion_list_payment_types" says "list": a word for reading.
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".
What this check looks forMatched text
description: "The Service Fusion user the API credentials belong to: id, name and email. Use it t..."
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.
- Reads private data8
- Reads files, mail, messages, databases, secrets, calendars or repositories.
- Reads text others write26
- Brings in text someone else can write: web pages, inbound email, messages, issues and comments.
- servicefusion_create_customer
- servicefusion_create_estimate
- servicefusion_create_job
- servicefusion_get_availability
- servicefusion_get_calendar_task
- servicefusion_get_crew
- servicefusion_get_customer
- servicefusion_get_customer_equipment
- servicefusion_get_estimate
- servicefusion_get_invoice
- servicefusion_get_job
- servicefusion_get_me
- and 14 more
- 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.
The server marks "servicefusion_get_availability" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":true}; The name "servicefusion_get_availability" says "get": a word for reading.
The server marks "servicefusion_list_payment_types" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":true}; The name "servicefusion_list_payment_types" says "list": a word for reading.
The description mentions "credentials".
What this check looks forMatched text
description: "The Service Fusion user the API credentials belong to: id, name and email. Use it t..."
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/mcpclaude mcp add --transport http service-fusion https://service-fusion.usefulapi.io/mcpRun 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.
{
"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.xmlAn Atom feed. Works in any feed reader or Slack's RSS app.
Badge
[](https://anlyon.dev/servers/io.usefulapi/service-fusion)Source: MCP Registry · repository. Synced Oct 23, 2026, 08:19 UTC.