ServiceBridge MCP by usefulapi
Read work orders, invoices and customers; add leads, tasks and notes in ServiceBridge.
사용해야 할까요
품질 및 안전성
발견 사항 (4)
- LOWservicebridge_list_activity_notes에서
- LOWservicebridge_list_payment_methods에서
- LOWservicebridge_get_invoice_statistics에서
- LOWservicebridge_add_activity_note에서
도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.
컨텍스트 비용
이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.
설치
원클릭 설치
`claude_desktop_config.json` 파일에 다음을 추가하세요:
{
"mcpServers": {
"servicebridge": {
"url": "https://servicebridge.usefulapi.io/mcp"
}
}
}원격 엔드포인트
https://servicebridge.usefulapi.io/mcpstreamable-http할 수 있는 일
도구 목록
도구 (26)
🟢servicebridge_whoami
Show the API user and the account profile the connection uses. ServiceBridge REST: GET /Users/Current.
입력 스키마
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢servicebridge_list_customers(nameFilter, searchText, includeInactiveCustomers, changeTime, page, ...)
List customers, with optional name or text search. ServiceBridge REST: GET /Customers.
입력 스키마
{
"type": "object",
"properties": {
"nameFilter": {
"description": "Customer name contains this text.",
"type": "string"
},
"searchText": {
"description": "Free-text search across customer fields.",
"type": "string"
},
"includeInactiveCustomers": {
"description": "Include inactive customers (default false).",
"type": "boolean"
},
"changeTime": {
"description": "Only customers changed since this time (ISO 8601).",
"type": "string"
},
"page": {
"description": "Page number, starting at 1.",
"type": "integer",
"minimum": 1,
"maximum": 9007199254740991
},
"pageSize": {
"description": "Rows per page (1-100).",
"type": "integer",
"minimum": 1,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢servicebridge_get_customer(id, includeCustomFields)
Get one customer by id. ServiceBridge REST: GET /Customers/{id}.
입력 스키마
{
"type": "object",
"properties": {
"id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Numeric ServiceBridge id."
},
"includeCustomFields": {
"description": "Include custom field values.",
"type": "boolean"
}
},
"required": [
"id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢servicebridge_list_contacts(nameFilter, customerFilter, locationFilter, includeLocations, includeInactiveCustomers, ...)
List customer contacts, optionally for one customer or location. ServiceBridge REST: GET /Contacts.
입력 스키마
{
"type": "object",
"properties": {
"nameFilter": {
"description": "Contact name contains this text.",
"type": "string"
},
"customerFilter": {
"description": "Only contacts of this customer id.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"locationFilter": {
"description": "Only contacts of this location id.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"includeLocations": {
"description": "Include the contact's locations.",
"type": "boolean"
},
"includeInactiveCustomers": {
"description": "Include inactive customers (default false).",
"type": "boolean"
},
"page": {
"description": "Page number, starting at 1.",
"type": "integer",
"minimum": 1,
"maximum": 9007199254740991
},
"pageSize": {
"description": "Rows per page (1-100).",
"type": "integer",
"minimum": 1,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢servicebridge_list_locations(locationNameFilter, customerFilter, branchFilter, includeContacts, includeInactiveCustomers, ...)
List service locations (job sites), optionally for one customer. ServiceBridge REST: GET /Locations.
입력 스키마
{
"type": "object",
"properties": {
"locationNameFilter": {
"description": "Location name contains this text.",
"type": "string"
},
"customerFilter": {
"description": "Only locations of this customer id.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"branchFilter": {
"description": "Only locations of this branch id.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"includeContacts": {
"description": "Include the location's contacts.",
"type": "boolean"
},
"includeInactiveCustomers": {
"description": "Include inactive customers (default false).",
"type": "boolean"
},
"page": {
"description": "Page number, starting at 1.",
"type": "integer",
"minimum": 1,
"maximum": 9007199254740991
},
"pageSize": {
"description": "Rows per page (1-100).",
"type": "integer",
"minimum": 1,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢servicebridge_list_work_orders(dateFromFilter, dateToFilter, customerFilter, locationFilter, branchFilter, ...)
List work orders, filtered by date range, customer, location or status. ServiceBridge REST: GET /WorkOrders.
입력 스키마
{
"type": "object",
"properties": {
"dateFromFilter": {
"description": "Work orders on or after this date.",
"type": "string"
},
"dateToFilter": {
"description": "Work orders on or before this date.",
"type": "string"
},
"customerFilter": {
"description": "Only work orders of this customer id.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"locationFilter": {
"description": "Only work orders of this location id.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"branchFilter": {
"description": "Only work orders of this branch id.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"statusFilter": {
"description": "Only work orders with this status (vendor status name).",
"type": "string"
},
"invoicedStatusFilter": {
"description": "Invoiced status filter (vendor value).",
"type": "string"
},
"page": {
"description": "Page number, starting at 1.",
"type": "integer",
"minimum": 1,
"maximum": 9007199254740991
},
"pageSize": {
"description": "Rows per page (1-100).",
"type": "integer",
"minimum": 1,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢servicebridge_get_work_order(id)
Get one work order by id, with its visits and lines. ServiceBridge REST: GET /WorkOrders/{id}.
입력 스키마
{
"type": "object",
"properties": {
"id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Numeric ServiceBridge id."
}
},
"required": [
"id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢servicebridge_list_estimates(dateFromFilter, dateToFilter, customerFilter, branchFilter, statusFilter, ...)
List estimates (quotes), filtered by date range, customer or status. ServiceBridge REST: GET /Estimates.
입력 스키마
{
"type": "object",
"properties": {
"dateFromFilter": {
"description": "Estimates on or after this date.",
"type": "string"
},
"dateToFilter": {
"description": "Estimates on or before this date.",
"type": "string"
},
"customerFilter": {
"description": "Only estimates of this customer id.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"branchFilter": {
"description": "Only estimates of this branch id.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"statusFilter": {
"description": "Only estimates with this status (vendor status name).",
"type": "string"
},
"page": {
"description": "Page number, starting at 1.",
"type": "integer",
"minimum": 1,
"maximum": 9007199254740991
},
"pageSize": {
"description": "Rows per page (1-100).",
"type": "integer",
"minimum": 1,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢servicebridge_get_estimate(id)
Get one estimate by id, with its visits and lines. ServiceBridge REST: GET /Estimates/{id}.
입력 스키마
{
"type": "object",
"properties": {
"id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Numeric ServiceBridge id."
}
},
"required": [
"id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢servicebridge_list_invoices(dateFromFilter, dateToFilter, customerFilter, statusFilter, includeDeleted, ...)
List invoices, filtered by date range, customer or status. ServiceBridge REST: GET /Invoices.
입력 스키마
{
"type": "object",
"properties": {
"dateFromFilter": {
"description": "Invoices on or after this date.",
"type": "string"
},
"dateToFilter": {
"description": "Invoices on or before this date.",
"type": "string"
},
"customerFilter": {
"description": "Only invoices of this customer id.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"statusFilter": {
"description": "Only invoices with this status (vendor status name).",
"type": "string"
},
"includeDeleted": {
"description": "Include deleted invoices (default false).",
"type": "boolean"
},
"page": {
"description": "Page number, starting at 1.",
"type": "integer",
"minimum": 1,
"maximum": 9007199254740991
},
"pageSize": {
"description": "Rows per page (1-100).",
"type": "integer",
"minimum": 1,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢servicebridge_get_invoice(id)
Get one invoice by id. ServiceBridge REST: GET /Invoices/{id}.
입력 스키마
{
"type": "object",
"properties": {
"id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Numeric ServiceBridge id."
}
},
"required": [
"id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢servicebridge_list_payments(dateFromFilter, dateToFilter, branchFilter, paymentStatusFilter, transactionStatusFilter, ...)
List customer payments, filtered by date range or status. ServiceBridge REST: GET /Payments.
입력 스키마
{
"type": "object",
"properties": {
"dateFromFilter": {
"description": "Payments on or after this date.",
"type": "string"
},
"dateToFilter": {
"description": "Payments on or before this date.",
"type": "string"
},
"branchFilter": {
"description": "Only payments of this branch id.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"paymentStatusFilter": {
"description": "Only payments with this status (vendor value).",
"type": "string"
},
"transactionStatusFilter": {
"description": "Only payments with this transaction status (vendor value).",
"type": "string"
},
"page": {
"description": "Page number, starting at 1.",
"type": "integer",
"minimum": 1,
"maximum": 9007199254740991
},
"pageSize": {
"description": "Rows per page (1-100).",
"type": "integer",
"minimum": 1,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢servicebridge_list_tasks(dateFromFilter, dateToFilter, branchFilter, teamFilter, statusFilter, ...)
List tasks, filtered by due date, branch, team, status or priority. ServiceBridge REST: GET /Tasks.
입력 스키마
{
"type": "object",
"properties": {
"dateFromFilter": {
"description": "Tasks due on or after this date.",
"type": "string"
},
"dateToFilter": {
"description": "Tasks due on or before this date.",
"type": "string"
},
"branchFilter": {
"description": "Only tasks of this branch id.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"teamFilter": {
"description": "Only tasks of this team id.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"statusFilter": {
"description": "Only tasks with this status (vendor status name).",
"type": "string"
},
"priorityFilter": {
"description": "Only tasks with this priority (vendor value).",
"type": "string"
},
"page": {
"description": "Page number, starting at 1.",
"type": "integer",
"minimum": 1,
"maximum": 9007199254740991
},
"pageSize": {
"description": "Rows per page (1-100).",
"type": "integer",
"minimum": 1,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢servicebridge_get_task(id)
Get one task by id. ServiceBridge REST: GET /Tasks/{id}.
입력 스키마
{
"type": "object",
"properties": {
"id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Numeric ServiceBridge id."
}
},
"required": [
"id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢servicebridge_list_leads(searchFilter, statusFilter, leadSourceFilter, dateFromUtcFilter, dateToUtcFilter, ...)
List sales leads, filtered by text, status, source or date. ServiceBridge REST: GET /Leads.
입력 스키마
{
"type": "object",
"properties": {
"searchFilter": {
"description": "Lead name, email or phone contains this text.",
"type": "string"
},
"statusFilter": {
"description": "Only leads with this status (vendor status name).",
"type": "string"
},
"leadSourceFilter": {
"description": "Only leads from this source (vendor value).",
"type": "string"
},
"dateFromUtcFilter": {
"description": "Leads created on or after this UTC date-time.",
"type": "string"
},
"dateToUtcFilter": {
"description": "Leads created on or before this UTC date-time.",
"type": "string"
},
"page": {
"description": "Page number, starting at 1.",
"type": "integer",
"minimum": 1,
"maximum": 9007199254740991
},
"pageSize": {
"description": "Rows per page (1-100).",
"type": "integer",
"minimum": 1,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢servicebridge_get_lead(id)
Get one sales lead by id. ServiceBridge REST: GET /Leads/{id}.
입력 스키마
{
"type": "object",
"properties": {
"id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Numeric ServiceBridge id."
}
},
"required": [
"id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢servicebridge_list_employees(firstNameFilter, lastNameFilter, branchFilter, teamFilter, statusFilter, ...)
List employees (technicians and staff), filtered by branch, team or status. ServiceBridge REST: GET /Employees.
입력 스키마
{
"type": "object",
"properties": {
"firstNameFilter": {
"description": "First name contains this text.",
"type": "string"
},
"lastNameFilter": {
"description": "Last name contains this text.",
"type": "string"
},
"branchFilter": {
"description": "Only employees of this branch id.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"teamFilter": {
"description": "Only employees of this team id.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"statusFilter": {
"description": "Only employees with this status (vendor value).",
"type": "string"
},
"page": {
"description": "Page number, starting at 1.",
"type": "integer",
"minimum": 1,
"maximum": 9007199254740991
},
"pageSize": {
"description": "Rows per page (1-100).",
"type": "integer",
"minimum": 1,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢servicebridge_list_activity_notes(searchFilter, customerId, jobId, invoiceId, locationId, ...)
List activity notes, filtered by customer, job, invoice, payment or location. ServiceBridge REST: GET /ActivityNote.
입력 스키마
{
"type": "object",
"properties": {
"searchFilter": {
"description": "Note text contains this text.",
"type": "string"
},
"customerId": {
"description": "Only notes of this customer id.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"jobId": {
"description": "Only notes of this job (work order) id.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"invoiceId": {
"description": "Only notes of this invoice id.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"locationId": {
"description": "Only notes of this location id.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"dateFromFilter": {
"description": "Notes on or after this date.",
"type": "string"
},
"dateToFilter": {
"description": "Notes on or before this date.",
"type": "string"
},
"page": {
"description": "Page number, starting at 1.",
"type": "integer",
"minimum": 1,
"maximum": 9007199254740991
},
"pageSize": {
"description": "Rows per page (1-100).",
"type": "integer",
"minimum": 1,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢servicebridge_list_teams(branchId)
List dispatch teams, optionally for one branch. ServiceBridge REST: GET /Teams.
입력 스키마
{
"type": "object",
"properties": {
"branchId": {
"description": "Only teams of this branch id.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢servicebridge_list_payment_methods
List the payment methods set up in the account. ServiceBridge REST: GET /PaymentMethods.
입력 스키마
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢servicebridge_get_invoice_statistics(dateFrom, dateTo, granularity, includeInactive, page, ...)
Get invoice totals for a period, grouped by granularity. ServiceBridge REST: GET /Statistics/Invoices.
입력 스키마
{
"type": "object",
"properties": {
"dateFrom": {
"type": "string",
"description": "Period start date."
},
"dateTo": {
"type": "string",
"description": "Period end date."
},
"granularity": {
"description": "Grouping period (vendor value, for example day, week or month).",
"type": "string"
},
"includeInactive": {
"description": "Include inactive customers (default false).",
"type": "boolean"
},
"page": {
"description": "Page number, starting at 1.",
"type": "integer",
"minimum": 1,
"maximum": 9007199254740991
},
"pageSize": {
"description": "Rows per page (1-100).",
"type": "integer",
"minimum": 1,
"maximum": 100
}
},
"required": [
"dateFrom",
"dateTo"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴servicebridge_create_customer(DisplayName, CompanyName, CustomerType, Notes, PrivateNotes)
Create a customer. Writes to the account. ServiceBridge REST: POST /Customers.
입력 스키마
{
"type": "object",
"properties": {
"DisplayName": {
"type": "string",
"minLength": 1,
"description": "Customer display name (required)."
},
"CompanyName": {
"description": "Company name.",
"type": "string"
},
"CustomerType": {
"description": "Customer type (vendor value).",
"type": "string"
},
"Notes": {
"description": "Customer-visible notes.",
"type": "string"
},
"PrivateNotes": {
"description": "Internal notes.",
"type": "string"
}
},
"required": [
"DisplayName"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴servicebridge_update_customer(id, DisplayName, CompanyName, CustomerType, Notes, ...)
Change a customer's name, type or notes. Only the fields you pass change. Writes to the account. ServiceBridge REST: PUT /Customers/{id}.
입력 스키마
{
"type": "object",
"properties": {
"id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Numeric ServiceBridge id."
},
"DisplayName": {
"description": "New display name.",
"type": "string",
"minLength": 1
},
"CompanyName": {
"description": "New company name.",
"type": "string"
},
"CustomerType": {
"description": "New customer type (vendor value).",
"type": "string"
},
"Notes": {
"description": "New customer-visible notes.",
"type": "string"
},
"PrivateNotes": {
"description": "New internal notes.",
"type": "string"
}
},
"required": [
"id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴servicebridge_create_lead(Name, Email, Phone, Address1, City, ...)
Create a sales lead. Writes to the account. ServiceBridge REST: POST /Leads.
입력 스키마
{
"type": "object",
"properties": {
"Name": {
"type": "string",
"minLength": 1,
"description": "Lead name (required)."
},
"Email": {
"description": "Lead email.",
"type": "string"
},
"Phone": {
"description": "Lead phone.",
"type": "string"
},
"Address1": {
"description": "Street address.",
"type": "string"
},
"City": {
"description": "City.",
"type": "string"
},
"State": {
"description": "State or region.",
"type": "string"
},
"ZipCode": {
"description": "Postal code.",
"type": "string"
},
"Country": {
"description": "Country.",
"type": "string"
},
"LeadSource": {
"description": "Lead source (vendor value).",
"type": "string"
},
"Notes": {
"description": "Notes.",
"type": "string"
}
},
"required": [
"Name"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴servicebridge_create_task(Description, CustomerId, DueDate, DueTime, Priority, ...)
Create a task, optionally for a customer. Writes to the account. ServiceBridge REST: POST /Tasks.
입력 스키마
{
"type": "object",
"properties": {
"Description": {
"type": "string",
"minLength": 1,
"description": "What the task is (required)."
},
"CustomerId": {
"description": "Customer id the task belongs to.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"DueDate": {
"description": "Due date.",
"type": "string"
},
"DueTime": {
"description": "Due time (vendor integer value).",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"Priority": {
"description": "Priority (vendor value).",
"type": "string"
},
"Notes": {
"description": "Notes.",
"type": "string"
}
},
"required": [
"Description"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴servicebridge_add_activity_note(Note, CustomerId, JobId, InvoiceId, LocationId, ...)
Add an activity note to a customer, job, invoice or location. Writes to the account. ServiceBridge REST: POST /ActivityNote.
입력 스키마
{
"type": "object",
"properties": {
"Note": {
"type": "string",
"minLength": 1,
"description": "Note text (required)."
},
"CustomerId": {
"description": "Customer id the note belongs to.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"JobId": {
"description": "Job (work order) id the note belongs to.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"InvoiceId": {
"description": "Invoice id the note belongs to.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"LocationId": {
"description": "Location id the note belongs to.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"Date": {
"description": "Note date (defaults to now on the vendor side).",
"type": "string"
},
"IsFlagged": {
"description": "Flag the note for follow-up.",
"type": "boolean"
}
},
"required": [
"Note"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}커뮤니티
증거