Jobber MCP服务器
用于Jobber现场服务管理平台的综合模型上下文协议(MCP)服务器。该服务器提供96个基于GraphQL的工具和15个基于React的应用程序,用于完整的业务运营管理。
目录
- 客户管理(7个工具) - 作业管理(8个工具) - 报价管理(8个工具) - 发票管理(7个工具) - 日程安排和访问(6个工具) - 团队管理(4个工具) - 费用跟踪(5个工具) - 产品目录(5个工具) - 服务请求(6个工具) - 报告和分析(3个工具) - 物业管理(6个工具) - 时间表管理(7个工具) - 行项目(8个工具) - 表单生成器(8个工具) - 税务管理(8个工具)
概述
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令牌,请执行以下操作:
- 登录您的Jobber帐户
- 导航到“设置”>“API访问”
- 生成具有适当权限的新API令牌
可用工具
客户管理
7工具 用于管理客户关系:
- list_clients -列出所有具有可选筛选功能的客户端
- 参数: isArchived, limit, cursor - 返回带联系人详细信息的分页客户列表
- get_client -按ID获取特定客户端
- 参数: clientId - 返回完整的客户详细信息,包括联系信息和账单地址
- 创建客户端 -创建新客户端
- 参数: firstName, lastName, companyName, email, phone, billingAddress - 返回新创建的客户端
- 更新客户端 -更新现有客户信息
- 参数: clientId, firstName, lastName, companyName, email, phone, billingAddress - 返回更新的客户端
- 建筑客户端 -将客户存档
- 参数: clientId - 返回已存档的客户端状态
- 搜索客户端 -按姓名、电子邮件或电话搜索客户
- 参数: query, limit - 返回匹配的客户端
- 列表_客户_属性 -列出客户端的所有属性
- 参数: clientId, limit, cursor - 返回分页属性列表
作业管理
8工具 为了实现完整的作业生命周期管理:
- list_jobs -列出所有具有筛选功能的作业
- 参数: status, clientId, limit, cursor - 返回带状态和详细信息的分页作业列表
- get_job -获取详细的工作信息
- 参数: jobId - 返回完整的工作详细信息,包括行项目和访问
- create_job -创建新作业
- 参数: title, description, clientId, propertyId, startAt, endAt - 返回新创建的作业
- update_job -更新作业信息
- 参数: jobId, title, description, startAt, endAt, status - 返回更新的作业
- close_job -将作业标记为已完成
- 参数: jobId - 返回已关闭的作业状态
- create_job_visit -安排一次工作访问
- 参数: jobId, title, startAt, endAt, assignedUserIds - 返回已创建的访问
- list_job_visits -列出某个工作的所有访问
- 参数: jobId, limit, cursor - 返回分页访问列表
- list_job_line_items -列出作业中的所有行项目
- 参数: jobId, limit, cursor - 返回带有定价的作业行项目
报价管理
8工具 用于创建和管理报价:
- list_quotes -列出所有报价
- 参数: status, clientId, limit, cursor - 返回分页报价列表
- get_quote -获取详细的报价信息
- 参数: quoteId - 返回包含行项目的完整报价
- create_quote -创建新报价
- 参数: title, message, clientId, propertyId - 返回新创建的报价
- update_quote -更新报价详细信息
- 参数: quoteId, title, message, status - 返回更新的报价
- send_quote -向客户发送报价
- 参数: quoteId, recipientEmail - 返回发送状态
- 批准_报价 -批准报价
- 参数: quoteId - 返回已批准的报价
- convert_quote_to_job -将批准的报价转换为工作
- 参数: quoteId - 返回创建的作业
- list_quote_line_items -列出报价单上的所有行项目
- 参数: quoteId, limit, cursor - 返回报价行项目
发票管理
7工具 账单和付款:
- list_invoices -列出所有发票
- 参数: status, clientId, limit, cursor - 返回分页发票列表
- get_invoice -获取详细的发票信息
- 参数: invoiceId - 返回包含行项目和付款的完整发票
- create_invoice -创建新发票
- 参数: jobId, subject, message, issueDate, dueDate - 返回新创建的发票
- send_invoice -向客户发送发票
- 参数: invoiceId, recipientEmail - 返回发送状态
- mark_invoice_paid -将发票标记为已付款
- 参数: invoiceId, amount, paymentDate, method - 返回付款记录
- 创建_付款 -记录付款
- 参数: invoiceId, amount, paymentDate, method, reference - 返回付款详细信息
- list_invoice_付款 -列出发票的付款
- 参数: invoiceId, limit, cursor - 返回付款历史记录
日程安排和参观
6工具 用于管理日程安排和实地考察:
- list_访问次数 -列出所有已安排的访问
- 参数: startDate, endDate, status, limit, cursor - 返回分页访问列表
- get_visit -获取详细的访问信息
- 参数: visitId - 返回完整的访问详细信息和任务
- 创建_访问 -创建新访问
- 参数: jobId, title, startAt, endAt, assignedUserIds - 返回已创建的访问
- update_visit -更新访问详细信息
- 参数: visitId, title, startAt, endAt, status - 返回更新的访问
- 完成_访问 -将访问标记为完成
- 参数: visitId, completionNotes - 返回已完成的访问
- list_visit_分配 -列出团队成员的访问任务
- 参数: visitId, limit - 返回分配的团队成员
团队管理
4工具 管理您的现场服务团队:
- list_users -列出所有团队成员
- 参数: isActive, limit, cursor - 返回分页用户列表
- get_user -获取详细的用户信息
- 参数: userId - 返回用户详细信息和角色信息
- get_team_utilization_report -获取团队利用率指标
- 参数: startDate, endDate, userIds - 退货利用率统计
- 用户时间表 -获取用户的时间表
- 参数: userId, startDate, endDate - 返回时间条目和总计
支出追踪
5工具 用于管理业务费用:
- list_费用 -列出所有费用
- 参数: status, userId, startDate, endDate, limit, cursor - 返回分页的费用列表
- get_expense -获取详细的费用信息
- 参数: expenseId - 返回带有附件的费用明细
- 创建_费用 -创建新支出
- 参数: description, amount, category, date, userId - 退货产生的费用
- 更新_费用 -更新费用明细
- 参数: expenseId, description, amount, category, status - 返回更新的费用
- 删除_费用 -删除费用
- 参数: expenseId - 返回删除确认
产品目录
5工具 用于管理产品和服务:
- 产品列表 -列出所有产品
- 参数: isActive, limit, cursor - 返回分页的产品列表
- get_产品 -获取详细的产品信息
- 参数: productId - 返回产品详细信息和定价
- 创建产品 -创建新产品
- 参数: name, description, unitPrice, unit, taxable - 返回已创建的产品
- update_product -更新产品详细信息
- 参数: productId, name, description, unitPrice, isActive - 返回更新的产品
- 删除产品 -删除产品
- 参数: productId - 返回删除确认
服务请求
6工具 用于管理传入的服务请求:
- list_requests -列出所有服务请求
- 参数: status, limit, cursor - 返回分页请求列表
- 获取请求 -获取详细的请求信息
- 参数: requestId - 返回请求详细信息和联系信息
- 创建请求 -创建新的服务请求
- 参数: title, description, clientName, clientEmail, clientPhone - 返回已创建的请求
- update_request -更新请求状态和详细信息
- 参数: requestId, status, notes - 返回更新的请求
- convert_request_to_quote -将请求转换为报价
- 参数: requestId - 返回已创建的报价
- convert_request_to_job -将请求直接转换为作业
- 参数: requestId - 返回创建的作业
报告和分析
3工具 对于商业智能:
- get_revenue_report -生成收入报告
- 参数: startDate, endDate, groupBy - 返回收入指标和趋势
- get_job_profit_report -获取工作盈利能力分析
- 参数: startDate, endDate, clientId - 利润率和成本回报
- get_team_utilization_report -分析团队生产力
- 参数: startDate, endDate, userIds - 返回利用率百分比和计费小时数
物业管理
6工具 用于管理服务地点:
- 列表_特性 -列出所有属性
- 参数: clientId, limit, cursor - 返回分页属性列表
- get_财产 -获取详细的房产信息
- 参数: propertyId - 返回物业详细信息和地址
- 创建属性 -创建新属性
- 参数: clientId, address, city, province, postalCode, country - 返回已创建的属性
- update_property -更新物业详细信息
- 参数: propertyId, address, city, province, postalCode - 返回更新的属性
- 删除属性 -删除属性
- 参数: propertyId - 返回删除确认
- set_default_属性 -为客户端设置默认属性
- 参数: clientId, propertyId - 返回更新的客户端
时间表管理
7工具 用于跟踪团队时间:
- list_time_entrys -列出所有时间条目
- 参数: userId, startDate, endDate, limit, cursor - 返回分页时间条目列表
- get_time_entry -获取详细的时间输入信息
- 参数: timeEntryId - 返回包含作业详细信息的时间条目
- create_time_entry -创建新的时间条目
- 参数: userId, jobId, startTime, endTime, description - 返回创建的时间条目
- update_time_entry -更新时间条目详细信息
- 参数: timeEntryId, startTime, endTime, description - 返回更新的时间条目
- delete_time_entry -删除时间条目
- 参数: timeEntryId - 返回删除确认
- stop_time_entry -停止运行时间条目
- 参数: timeEntryId - 返回已停止的时间输入
- 用户时间表 -获取用户的完整时间表
- 参数: userId, startDate, endDate - 返回所有时间条目和总计
系列商品
8工具 用于管理报价/作业/发票行项目:
- create_job_line_item -将行项目添加到作业中
- 参数: jobId, name, description, quantity, unitPrice - 返回已创建的行项目
- create_quote_line_item -在报价中添加行项目
- 参数: quoteId, name, description, quantity, unitPrice - 返回已创建的行项目
- create_invoice_line_item -将行项目添加到发票
- 参数: invoiceId, name, description, quantity, unitPrice - 返回已创建的行项目
- update_line_item -更新行项目详细信息
- 参数: lineItemId, name, description, quantity, unitPrice - 返回更新的行项目
- delete_line_item -删除行项目
- 参数: lineItemId - 返回删除确认
- 重新排序_行_项 -更改行项目顺序
- 参数: lineItemIds (有序数组) - 退回重新订购的商品
- 复制行项目 -复制行项目
- 参数: lineItemId - 返回重复项
- bulk_update_line_items -更新多行项目
- 参数: updates (更新数组) - 返回更新的项目
表单构建器
8工具 用于创建和管理自定义表单:
- list_forms -列出所有表单
- 参数: limit, cursor - 返回分页表单列表
- get_form -获取表单定义
- 参数: formId - 返回包含所有字段的表单
- create_form -创建新表单
- 参数: name, fields (数组) - 返回已创建的表单
- update_form -更新表单定义
- 参数: formId, name, fields - 返回更新的表单
- delete_form -删除表单
- 参数: formId - 返回删除确认
- 提交表单 -提交表单数据
- 参数: formId, data (字段值) - 返回提交记录
- list_form_submissions -列出表单的所有提交内容
- 参数: formId, limit, cursor - 返回分页提交
- get_form_submission -获取详细提交
- 参数: submissionId - 返回包含所有字段值的提交
税务管理
8工具 用于管理税务和税务计算:
- list_taxs -列出所有税率
- 参数: isActive, limit, cursor - 返回分页税务清单
- get_tax -获取税务详细信息
- 参数: taxId - 退货税率和设置
- create_tax -创建新税
- 参数: name, rate, isCompound - 纳税申报单
- update_tax -更新税务详细信息
- 参数: taxId, name, rate, isActive - 返回更新的税款
- delete_tax -删除税款
- 参数: taxId - 返回删除确认
- 应用_税务_在线项目 -对行项目征税
- 参数: lineItemId, taxId - 返回更新的行项目
- remove_tax_from_line_item -从行项目中删除税款
- 参数: lineItemId, taxId - 返回更新的行项目
- 计算最大值总计 -计算总税额
- 参数: 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 devTypeScript编译
# 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贡献
欢迎投稿!拜托:
- 克隆该仓库
- 创建要素分支
- 进行更改
- 如果适用,添加测试
- 提交拉取请求
许可证
MIT许可证-有关详细信息,请参阅许可证文件
______________________________________________________________________
内置于❤️ 使用:
- 模型上下文协议
- Jobber GraphQL API
- TypeScript 5.7+
- 反应18+
- Zod用于验证
MCPEngine项目的一部分 -用于业务平台的MCP服务器的全面集合。
有关问题和支持,请访问:https://github.com/BusyBee3333/mcpengine/issues
