现场服务管理服务器

Jobber MCP服务器是一个全面的现场服务管理平台,提供96个GraphQL工具和15个基于React的应用程序,用于完整的业务运营管理。

  • by BusyBee3333
  • TypeScript
  • 本地部署
  • 5 星标
  • 更新于
在 GitHub 查看 BusyBee3333/jobber-mcp-2026-complete

使用说明

Jobber MCP服务器

用于Jobber现场服务管理平台的综合模型上下文协议(MCP)服务器。该服务器提供96个基于GraphQL的工具和15个基于React的应用程序,用于完整的业务运营管理。

目录

概述

Jobber MCP服务器使人工智能助手和自动化工具能够与Jobber的完整现场服务管理平台进行交互。它支持:

  • 客户与物业管理:跟踪客户、物业和服务历史
  • 作业生命周期:从报价到完成,提供完整的工作流程支持
  • 调度:管理访问、任务和团队日历
  • 开具发票:创建、发送和跟踪付款
  • 团队管理:监控团队绩效、时间表和利用率
  • 表单:构建自定义表单并捕获提交内容
  • 报告:生成业务见解和分析

安装

npm install @mcpengine/jobber-server

或者从源代码安装:

git clone https://github.com/BusyBee3333/mcpengine.git
cd mcpengine/servers/jobber
npm install
npm run build

配置

将Jobber API令牌设置为环境变量:

export JOBBER_API_TOKEN="your_api_token_here"

要获取API令牌,请执行以下操作:

  1. 登录您的Jobber帐户
  2. 导航到“设置”>“API访问”
  3. 生成具有适当权限的新API令牌

可用工具

客户管理

7工具 用于管理客户关系:

  1. list_clients -列出所有具有可选筛选功能的客户端

    • 参数: isArchived, limit, cursor
    • 返回带联系人详细信息的分页客户列表
  2. get_client -按ID获取特定客户端

    • 参数: clientId
    • 返回完整的客户详细信息,包括联系信息和账单地址
  3. 创建客户端 -创建新客户端

    • 参数: firstName, lastName, companyName, email, phone, billingAddress
    • 返回新创建的客户端
  4. 更新客户端 -更新现有客户信息

    • 参数: clientId, firstName, lastName, companyName, email, phone, billingAddress
    • 返回更新的客户端
  5. 建筑客户端 -将客户存档

    • 参数: clientId
    • 返回已存档的客户端状态
  6. 搜索客户端 -按姓名、电子邮件或电话搜索客户

    • 参数: query, limit
    • 返回匹配的客户端
  7. 列表_客户_属性 -列出客户端的所有属性

    • 参数: clientId, limit, cursor
    • 返回分页属性列表

作业管理

8工具 为了实现完整的作业生命周期管理:

  1. list_jobs -列出所有具有筛选功能的作业

    • 参数: status, clientId, limit, cursor
    • 返回带状态和详细信息的分页作业列表
  2. get_job -获取详细的工作信息

    • 参数: jobId
    • 返回完整的工作详细信息,包括行项目和访问
  3. create_job -创建新作业

    • 参数: title, description, clientId, propertyId, startAt, endAt
    • 返回新创建的作业
  4. update_job -更新作业信息

    • 参数: jobId, title, description, startAt, endAt, status
    • 返回更新的作业
  5. close_job -将作业标记为已完成

    • 参数: jobId
    • 返回已关闭的作业状态
  6. create_job_visit -安排一次工作访问

    • 参数: jobId, title, startAt, endAt, assignedUserIds
    • 返回已创建的访问
  7. list_job_visits -列出某个工作的所有访问

    • 参数: jobId, limit, cursor
    • 返回分页访问列表
  8. list_job_line_items -列出作业中的所有行项目

    • 参数: jobId, limit, cursor
    • 返回带有定价的作业行项目

报价管理

8工具 用于创建和管理报价:

  1. list_quotes -列出所有报价

    • 参数: status, clientId, limit, cursor
    • 返回分页报价列表
  2. get_quote -获取详细的报价信息

    • 参数: quoteId
    • 返回包含行项目的完整报价
  3. create_quote -创建新报价

    • 参数: title, message, clientId, propertyId
    • 返回新创建的报价
  4. update_quote -更新报价详细信息

    • 参数: quoteId, title, message, status
    • 返回更新的报价
  5. send_quote -向客户发送报价

    • 参数: quoteId, recipientEmail
    • 返回发送状态
  6. 批准_报价 -批准报价

    • 参数: quoteId
    • 返回已批准的报价
  7. convert_quote_to_job -将批准的报价转换为工作

    • 参数: quoteId
    • 返回创建的作业
  8. list_quote_line_items -列出报价单上的所有行项目

    • 参数: quoteId, limit, cursor
    • 返回报价行项目

发票管理

7工具 账单和付款:

  1. list_invoices -列出所有发票

    • 参数: status, clientId, limit, cursor
    • 返回分页发票列表
  2. get_invoice -获取详细的发票信息

    • 参数: invoiceId
    • 返回包含行项目和付款的完整发票
  3. create_invoice -创建新发票

    • 参数: jobId, subject, message, issueDate, dueDate
    • 返回新创建的发票
  4. send_invoice -向客户发送发票

    • 参数: invoiceId, recipientEmail
    • 返回发送状态
  5. mark_invoice_paid -将发票标记为已付款

    • 参数: invoiceId, amount, paymentDate, method
    • 返回付款记录
  6. 创建_付款 -记录付款

    • 参数: invoiceId, amount, paymentDate, method, reference
    • 返回付款详细信息
  7. list_invoice_付款 -列出发票的付款

    • 参数: invoiceId, limit, cursor
    • 返回付款历史记录

日程安排和参观

6工具 用于管理日程安排和实地考察:

  1. list_访问次数 -列出所有已安排的访问

    • 参数: startDate, endDate, status, limit, cursor
    • 返回分页访问列表
  2. get_visit -获取详细的访问信息

    • 参数: visitId
    • 返回完整的访问详细信息和任务
  3. 创建_访问 -创建新访问

    • 参数: jobId, title, startAt, endAt, assignedUserIds
    • 返回已创建的访问
  4. update_visit -更新访问详细信息

    • 参数: visitId, title, startAt, endAt, status
    • 返回更新的访问
  5. 完成_访问 -将访问标记为完成

    • 参数: visitId, completionNotes
    • 返回已完成的访问
  6. list_visit_分配 -列出团队成员的访问任务

    • 参数: visitId, limit
    • 返回分配的团队成员

团队管理

4工具 管理您的现场服务团队:

  1. list_users -列出所有团队成员

    • 参数: isActive, limit, cursor
    • 返回分页用户列表
  2. get_user -获取详细的用户信息

    • 参数: userId
    • 返回用户详细信息和角色信息
  3. get_team_utilization_report -获取团队利用率指标

    • 参数: startDate, endDate, userIds
    • 退货利用率统计
  4. 用户时间表 -获取用户的时间表

    • 参数: userId, startDate, endDate
    • 返回时间条目和总计

支出追踪

5工具 用于管理业务费用:

  1. list_费用 -列出所有费用

    • 参数: status, userId, startDate, endDate, limit, cursor
    • 返回分页的费用列表
  2. get_expense -获取详细的费用信息

    • 参数: expenseId
    • 返回带有附件的费用明细
  3. 创建_费用 -创建新支出

    • 参数: description, amount, category, date, userId
    • 退货产生的费用
  4. 更新_费用 -更新费用明细

    • 参数: expenseId, description, amount, category, status
    • 返回更新的费用
  5. 删除_费用 -删除费用

    • 参数: expenseId
    • 返回删除确认

产品目录

5工具 用于管理产品和服务:

  1. 产品列表 -列出所有产品

    • 参数: isActive, limit, cursor
    • 返回分页的产品列表
  2. get_产品 -获取详细的产品信息

    • 参数: productId
    • 返回产品详细信息和定价
  3. 创建产品 -创建新产品

    • 参数: name, description, unitPrice, unit, taxable
    • 返回已创建的产品
  4. update_product -更新产品详细信息

    • 参数: productId, name, description, unitPrice, isActive
    • 返回更新的产品
  5. 删除产品 -删除产品

    • 参数: productId
    • 返回删除确认

服务请求

6工具 用于管理传入的服务请求:

  1. list_requests -列出所有服务请求

    • 参数: status, limit, cursor
    • 返回分页请求列表
  2. 获取请求 -获取详细的请求信息

    • 参数: requestId
    • 返回请求详细信息和联系信息
  3. 创建请求 -创建新的服务请求

    • 参数: title, description, clientName, clientEmail, clientPhone
    • 返回已创建的请求
  4. update_request -更新请求状态和详细信息

    • 参数: requestId, status, notes
    • 返回更新的请求
  5. convert_request_to_quote -将请求转换为报价

    • 参数: requestId
    • 返回已创建的报价
  6. convert_request_to_job -将请求直接转换为作业

    • 参数: requestId
    • 返回创建的作业

报告和分析

3工具 对于商业智能:

  1. get_revenue_report -生成收入报告

    • 参数: startDate, endDate, groupBy
    • 返回收入指标和趋势
  2. get_job_profit_report -获取工作盈利能力分析

    • 参数: startDate, endDate, clientId
    • 利润率和成本回报
  3. get_team_utilization_report -分析团队生产力

    • 参数: startDate, endDate, userIds
    • 返回利用率百分比和计费小时数

物业管理

6工具 用于管理服务地点:

  1. 列表_特性 -列出所有属性

    • 参数: clientId, limit, cursor
    • 返回分页属性列表
  2. get_财产 -获取详细的房产信息

    • 参数: propertyId
    • 返回物业详细信息和地址
  3. 创建属性 -创建新属性

    • 参数: clientId, address, city, province, postalCode, country
    • 返回已创建的属性
  4. update_property -更新物业详细信息

    • 参数: propertyId, address, city, province, postalCode
    • 返回更新的属性
  5. 删除属性 -删除属性

    • 参数: propertyId
    • 返回删除确认
  6. set_default_属性 -为客户端设置默认属性

    • 参数: clientId, propertyId
    • 返回更新的客户端

时间表管理

7工具 用于跟踪团队时间:

  1. list_time_entrys -列出所有时间条目

    • 参数: userId, startDate, endDate, limit, cursor
    • 返回分页时间条目列表
  2. get_time_entry -获取详细的时间输入信息

    • 参数: timeEntryId
    • 返回包含作业详细信息的时间条目
  3. create_time_entry -创建新的时间条目

    • 参数: userId, jobId, startTime, endTime, description
    • 返回创建的时间条目
  4. update_time_entry -更新时间条目详细信息

    • 参数: timeEntryId, startTime, endTime, description
    • 返回更新的时间条目
  5. delete_time_entry -删除时间条目

    • 参数: timeEntryId
    • 返回删除确认
  6. stop_time_entry -停止运行时间条目

    • 参数: timeEntryId
    • 返回已停止的时间输入
  7. 用户时间表 -获取用户的完整时间表

    • 参数: userId, startDate, endDate
    • 返回所有时间条目和总计

系列商品

8工具 用于管理报价/作业/发票行项目:

  1. create_job_line_item -将行项目添加到作业中

    • 参数: jobId, name, description, quantity, unitPrice
    • 返回已创建的行项目
  2. create_quote_line_item -在报价中添加行项目

    • 参数: quoteId, name, description, quantity, unitPrice
    • 返回已创建的行项目
  3. create_invoice_line_item -将行项目添加到发票

    • 参数: invoiceId, name, description, quantity, unitPrice
    • 返回已创建的行项目
  4. update_line_item -更新行项目详细信息

    • 参数: lineItemId, name, description, quantity, unitPrice
    • 返回更新的行项目
  5. delete_line_item -删除行项目

    • 参数: lineItemId
    • 返回删除确认
  6. 重新排序_行_项 -更改行项目顺序

    • 参数: lineItemIds (有序数组)
    • 退回重新订购的商品
  7. 复制行项目 -复制行项目

    • 参数: lineItemId
    • 返回重复项
  8. bulk_update_line_items -更新多行项目

    • 参数: updates (更新数组)
    • 返回更新的项目

表单构建器

8工具 用于创建和管理自定义表单:

  1. list_forms -列出所有表单

    • 参数: limit, cursor
    • 返回分页表单列表
  2. get_form -获取表单定义

    • 参数: formId
    • 返回包含所有字段的表单
  3. create_form -创建新表单

    • 参数: name, fields (数组)
    • 返回已创建的表单
  4. update_form -更新表单定义

    • 参数: formId, name, fields
    • 返回更新的表单
  5. delete_form -删除表单

    • 参数: formId
    • 返回删除确认
  6. 提交表单 -提交表单数据

    • 参数: formId, data (字段值)
    • 返回提交记录
  7. list_form_submissions -列出表单的所有提交内容

    • 参数: formId, limit, cursor
    • 返回分页提交
  8. get_form_submission -获取详细提交

    • 参数: submissionId
    • 返回包含所有字段值的提交

税务管理

8工具 用于管理税务和税务计算:

  1. list_taxs -列出所有税率

    • 参数: isActive, limit, cursor
    • 返回分页税务清单
  2. get_tax -获取税务详细信息

    • 参数: taxId
    • 退货税率和设置
  3. create_tax -创建新税

    • 参数: name, rate, isCompound
    • 纳税申报单
  4. update_tax -更新税务详细信息

    • 参数: taxId, name, rate, isActive
    • 返回更新的税款
  5. delete_tax -删除税款

    • 参数: taxId
    • 返回删除确认
  6. 应用_税务_在线项目 -对行项目征税

    • 参数: lineItemId, taxId
    • 返回更新的行项目
  7. remove_tax_from_line_item -从行项目中删除税款

    • 参数: lineItemId, taxId
    • 返回更新的行项目
  8. 计算最大值总计 -计算总税额

    • 参数: lineItemIds, taxIds
    • 返回计算所得税明细

React应用程序

15交互式Web应用程序

所有应用程序都是用React 18、TypeScript和Tailwind CSS构建的。每个应用程序都已准备就绪,功能齐全。

1.客户端仪表板

路径: src/ui/react-app/src/apps/client-dashboard/

通过收入和工作统计数据查看和管理所有客户。特征:

  • 具有搜索和过滤功能的客户端列表
  • 每个客户的收入跟踪
  • 作业计数和状态概述
  • 快速访问客户详细信息

2.客户详细信息

路径: src/ui/react-app/src/apps/client-detail/

全面的客户资料视图,包括:

  • 完整的联系方式
  • 属性列表
  • 工作经历
  • 收入指标
  • 创建报价/作业的快速操作

3.费用经理

路径: src/ui/react-app/src/apps/expense-manager/

跟踪和批准团队费用:

  • 按状态筛选(待定/批准/拒绝)
  • 基于类别的组织
  • 附件支持
  • 审批工作流程

4.财务仪表板

路径: src/ui/react-app/src/apps/financial-dashboard/

业务财务概述:

  • 总收入和支出
  • 净利润计算
  • 未付发票与已付发票
  • 月度增长指标
  • 收款率跟踪

5.表单生成器

路径: src/ui/react-app/src/apps/form-builder/

视觉形式设计师:

  • 拖放字段管理
  • 多种字段类型(文本、选择、文本区域、复选框、日期)
  • 必填字段配置
  • 实时预览
  • 表单提交处理

6.发票仪表板

路径: src/ui/react-app/src/apps/invoice-dashboard/

发票管理界面:

  • 带状态过滤的发票列表
  • 付款跟踪
  • 快速发送和付款操作
  • 客户和金额详细信息

7.工作板

路径: src/ui/react-app/src/apps/job-board/

可视化作业管理板:

  • 看板式作业组织
  • 基于状态的筛选(已报价、已计划、正在进行、已完成)
  • 带有关键指标的工作卡
  • 快速状态更新

8.工作细节

路径: src/ui/react-app/src/apps/job-detail/

全面的工作视图:

  • 工作信息和时间表
  • 行项目和定价
  • 访问日程表
  • 客户和物业详细信息
  • 状态管理

9.房产地图

路径: src/ui/react-app/src/apps/property-map/

地理属性可视化:

  • 交互式地图视图
  • 带有作业计数的属性标记
  • 属性列表面板
  • 客户信息
  • 单击以选择和查看详细信息

10.报价生成器

路径: src/ui/react-app/src/apps/quote-builder/

创建和编辑报价:

  • 客户选择
  • 行项目管理
  • 定价计算器
  • 税务申请
  • 报价预览

11.请求收件箱

路径: src/ui/react-app/src/apps/request-inbox/

服务请求管理:

  • 请求状态工作流(新、已联系、已报价、已转换)
  • 优先级指标
  • 客户联系信息
  • 快速操作(联系、报价、转换)

12.日程表

路径: src/ui/react-app/src/apps/schedule-calendar/

可视化调度界面:

  • 日/周日历视图
  • 访问时间线可视化
  • 团队成员分配
  • 状态跟踪(已计划、正在进行、已完成)
  • 时隙管理

13.团队概述

路径: src/ui/react-app/src/apps/team-overview/

团队绩效仪表板:

  • 团队成员列表
  • 活动和已完成的作业计数
  • 每周小时跟踪
  • 可用性状态
  • 性能指标

14.时间表网格

路径: src/ui/react-app/src/apps/timesheet-grid/

时间录入管理:

  • 表格时间表视图
  • 审批工作流程
  • 按状态筛选(待定/批准)
  • 员工和工作详细信息
  • 工时计算

15.访问跟踪器

路径: src/ui/react-app/src/apps/visit-tracker/

实地考察跟踪:

  • 就诊状态工作流程(已安排、正在途中、正在进行、已完成)
  • 客户和位置详细信息
  • 团队作业
  • 备注和完成跟踪
  • 快速状态更新

使用示例

基本连接

import { JobberServer } from '@mcpengine/jobber-server';

const server = new JobberServer();
await server.run();

创建客户和作业

// Create a new client
const client = await tools.create_client({
  firstName: "John",
  lastName: "Doe",
  companyName: "Doe Enterprises",
  email: "john@doeenterprises.com",
  phone: "555-0123"
});

// Create a job for the client
const job = await tools.create_job({
  title: "HVAC Installation",
  description: "Install new heating system",
  clientId: client.id,
  startAt: "2024-02-20T09:00:00Z",
  endAt: "2024-02-20T17:00:00Z"
});

生成报价并转换为工作

// Create a quote
const quote = await tools.create_quote({
  title: "Kitchen Renovation",
  message: "As discussed, here is your quote",
  clientId: "client_123"
});

// Add line items
await tools.create_quote_line_item({
  quoteId: quote.id,
  name: "Cabinet Installation",
  quantity: 1,
  unitPrice: 2500
});

// Send to client
await tools.send_quote({
  quoteId: quote.id,
  recipientEmail: "client@example.com"
});

// After approval, convert to job
const job = await tools.convert_quote_to_job({
  quoteId: quote.id
});

追踪团队时间

// Start time entry
const timeEntry = await tools.create_time_entry({
  userId: "user_123",
  jobId: "job_456",
  startTime: "2024-02-15T09:00:00Z",
  description: "Installation work"
});

// Stop when complete
await tools.stop_time_entry({
  timeEntryId: timeEntry.id
});

// Get user timesheet
const timesheet = await tools.get_user_timesheet({
  userId: "user_123",
  startDate: "2024-02-12",
  endDate: "2024-02-18"
});

生成报告

// Revenue report
const revenue = await tools.get_revenue_report({
  startDate: "2024-01-01",
  endDate: "2024-01-31",
  groupBy: "week"
});

// Team utilization
const utilization = await tools.get_team_utilization_report({
  startDate: "2024-02-01",
  endDate: "2024-02-29",
  userIds: ["user_1", "user_2", "user_3"]
});

GraphQL API

此服务器使用Jobber的GraphQL API。所有工具都对Jobber平台执行GraphQL查询和突变。

认证

API请求需要通过 JOBBER_API_TOKEN 环境变量。

速率限制

Jobber对API请求实现速率限制。此服务器遵守这些限制。对于大批量操作,请考虑:

  • 批处理请求
  • 实现重试逻辑
  • 使用分页光标

API 文档

有关完整的Jobber GraphQL API文档,请访问: https://developer.getjobber.com/docs/

发展

从源代码构建

# Clone repository
git clone https://github.com/BusyBee3333/mcpengine.git
cd mcpengine/servers/jobber

# Install dependencies
npm install

# Build TypeScript
npm run build

# Run in development mode
npm run dev

TypeScript编译

# Type check without emitting
npx tsc --noEmit

# Build with source maps
npm run build

项目结构

jobber/
├── src/
│   ├── index.ts              # Entry point
│   ├── server.ts             # MCP server implementation
│   ├── clients/
│   │   └── jobber.ts         # GraphQL client
│   ├── tools/                # 15 tool modules (96 total tools)
│   │   ├── clients-tools.ts
│   │   ├── jobs-tools.ts
│   │   ├── quotes-tools.ts
│   │   ├── invoices-tools.ts
│   │   ├── scheduling-tools.ts
│   │   ├── team-tools.ts
│   │   ├── expenses-tools.ts
│   │   ├── products-tools.ts
│   │   ├── requests-tools.ts
│   │   ├── reporting-tools.ts
│   │   ├── properties-tools.ts
│   │   ├── timesheets-tools.ts
│   │   ├── line-items-tools.ts
│   │   ├── forms-tools.ts
│   │   └── taxes-tools.ts
│   └── ui/
│       └── react-app/
│           └── src/
│               └── apps/      # 15 React applications
│                   ├── client-dashboard/
│                   ├── client-detail/
│                   ├── expense-manager/
│                   ├── financial-dashboard/
│                   ├── form-builder/
│                   ├── invoice-dashboard/
│                   ├── job-board/
│                   ├── job-detail/
│                   ├── property-map/
│                   ├── quote-builder/
│                   ├── request-inbox/
│                   ├── schedule-calendar/
│                   ├── team-overview/
│                   ├── timesheet-grid/
│                   └── visit-tracker/
├── dist/                      # Compiled JavaScript
├── package.json
├── tsconfig.json
└── README.md

贡献

欢迎投稿!拜托:

  1. 克隆该仓库
  2. 创建要素分支
  3. 进行更改
  4. 如果适用,添加测试
  5. 提交拉取请求

许可证

MIT许可证-有关详细信息,请参阅许可证文件


内置于❤️ 使用:

MCPEngine项目的一部分 -用于业务平台的MCP服务器的全面集合。

有关问题和支持,请访问:https://github.com/BusyBee3333/mcpengine/issues