使用说明
ConnectWise Manage MCP Server
A read-only Model Context Protocol (MCP) server for ConnectWise Manage — query tickets, companies, agreements, time entries, projects, and more from any MCP-compatible AI client.
First-time setup guide
·
Report Bug
·
Request Feature
Table of Contents
关于项目
此MCP服务器通过以下方式将ConnectWise Manage数据暴露给AI助手和自动化管道 模型上下文协议确实如此 只读 和 报道重点 --不会创建、修改或删除任何记录。
关键设计决策:
- OAuth 2.1身份验证 --用户通过您的IdP(Entra ID、谷歌等)登录。MCP服务器在每个节点上验证承载JWT
/mcp请求。CW API凭证位于服务器端,从不在URL中。 - 管理员仪表板位于
/admin-设置向导,设置,审核日志,用户+权限,分层上下文文档,董事会别名,公司排除,服务帐户API密钥,运行状况,备份。Postgres后退了。 - 按用户工具筛选 --每个用户的工具界面都按照他们的CW安全角色进行过滤;管理员看到一切。
- 无状态流式HTTP传输 --与任何支持HTTP的MCP客户端兼容。
- Docker+Cloudflare隧道 --无需打开入站防火墙端口即可将其运送到任何地方。
内置: TypeScript、Node.js、Express、Postgres、Docker、Cloudflare隧道。
可用工具
101个工具——89个单端点CW工具,10个复合报告工具,外加2个实用工具(describe_entity, get_context).
单端点工具
| 模块 | 工具 |
|---|---|
| 服务 | get_service_tickets, get_service_ticket_by_id, get_service_ticket_notes, get_service_ticket_time_entries, get_service_ticket_tasks, get_service_ticket_count, get_service_ticket_configurations, get_service_ticket_documents, get_service_ticket_products, get_service_ticket_links, get_service_boards, get_service_board_statuses, get_service_board_types, get_service_board_subtypes, get_service_board_teams, get_service_priorities, get_service_slas, get_service_impacts, get_service_sources, get_service_severities, get_service_teams |
| 知识库 | get_knowledge_base_articles, get_knowledge_base_article_by_id, get_knowledge_base_categories, get_knowledge_base_subcategories |
| 调查 | get_service_surveys, get_service_survey_questions, get_service_survey_results |
| 公司 | get_companies, get_company_by_id, get_company_sites, get_company_notes, get_contacts, get_contact_by_id, get_contact_communications, get_contact_notes, get_company_configurations, get_company_configuration_by_id |
| 金融 | get_agreements, get_agreement_by_id, get_agreement_additions, get_agreement_adjustments, get_agreement_sites, get_agreement_recap, get_agreement_types |
| 时间 | get_time_entries, get_time_entry_by_id, get_time_sheets, get_time_sheet_by_id, get_work_roles, get_work_types, get_charge_codes |
| 项目 | get_projects, get_project_by_id, get_project_phases, get_project_tickets, get_project_team_members, get_project_notes, get_project_statuses |
| 系统 | get_members, get_member_by_id, get_member_skills, get_departments, get_audit_trail, get_system_info |
| 日程 | get_schedule_entries, get_schedule_entry_by_id, get_schedule_calendars |
| 销售 | get_opportunities, get_opportunity_by_id, get_opportunity_forecast, get_opportunity_notes, get_sales_activities |
| 支出 | get_expense_entries, get_expense_entry_by_id, get_expense_types, get_expense_reports |
| 采购 | get_products, get_product_by_id, get_catalog_items, get_catalog_item_by_id, get_purchase_orders, get_purchase_order_by_id, get_rma_actions, get_rma_action_by_id |
| 营销 | get_marketing_campaigns, get_marketing_groups |
| 网络钩子 | get_callbacks, get_callback_by_id |
所有列表工具都支持ConnectWise的完整查询语法: conditions, childConditions, customFieldConditions, orderBy, fields, page, pageSize, pageId.
实用工具
| 工具 | 说明 |
|---|---|
describe_entity |
返回ConnectWise实体的字段列表、类型和示例条件。当不确定存在哪些字段或如何筛选时,调用列表前工具。 |
get_context |
返回由全局、角色和用户上下文层组成的调用用户的合并组织特定上下文——董事会、团队、业务规则、查询模式。在会话开始时呼叫一次。 |
复合报告工具
这些将多个API调用合并为单个响应,用于MSP报告工作流:
| 工具 | 说明 |
|---|---|
get_ticket_summary |
完整的票视图——详细信息、注释、时间条目、任务。包括计算总数。 |
get_member_utilization |
技术利用率——某一日期范围内的记录小时数与计划小时数。 |
get_agreement_profitability |
协议财务——补充、调整、账单回顾。 |
get_board_overview |
服务板仪表板——详细信息、状态、每个状态的未结工单计数。 |
get_tech_skills_report |
技术技能评估——个人资料、技能、最近的门票、时间条目。 |
get_recurring_issues_report |
重复问题分析——按类型/子类型分组,按频率排序。 |
get_ticket_tone_analysis |
音调/情绪数据——带有元数据的票+笔记,用于人工智能情绪分析。 |
get_common_issues_by_company |
按公司发行模式——公开与封闭比率、频率排名。 |
get_helpdesk_team_report |
团队表现——每个成员的统计数据加上主要问题类型。 |
get_sla_compliance_report |
按优先级与SLA目标划分的SLA响应/解决时间。 |
复合工具返回部分结果 _errors 数组,如果任何子调用失败-永远不要在单个API错误时崩溃。
可用提示
10个MCP提示为常见的MSP任务提供了预构建的AI工作流。
操作提示
| 提示 | 参数 | 描述 |
|---|---|---|
daily_standup |
-- | 早间简报:未结票据、SLA风险、时间记录、行动项目。 |
escalation_check |
-- | 升级检查表:SLA违规、未分配的高优先级、过期的票证。 |
helpdesk_manager_weekly |
-- | 周报:团队绩效、工单指标、SLA合规性、重复出现的问题。 |
分析提示
| 提示 | 参数 | 描述 |
|---|---|---|
recurring_issue_analysis |
boardName (可选) |
模式检测、知识库缺口、根本原因分类、预防建议。 |
ticket_tone_review |
ticketId |
情绪分析:基调时间线、升级风险水平、建议行动。 |
common_issues_by_client |
companyIdentifier |
每个客户端模式:异常检测、一次性与系统性、预防。 |
sla_compliance_review |
-- | SLA审查:合规率、最严重违规、董事会比较、改进。 |
人们提示
| 提示 | 参数 | 描述 |
|---|---|---|
client_review |
companyIdentifier |
客户健康状况:未结门票、协议、最近的参与、建议。 |
tech_productivity |
memberIdentifier |
生产率报告:利用率、吞吐量、解决时间、技能覆盖率。 |
tech_skills_report |
memberIdentifier |
技能评估:清单、工作概况、差距、培训建议。 |
入门指南
看 docs/setup.md 获取完整的首次设置指南。 它穿过:
- 先决条件(Docker、ConnectWise管理员访问、OAuth IdP、Cloudflare隧道)
- 正在生成ConnectWise API凭据+客户端ID
- 注册OAuth应用程序(Microsoft Entra ID演练)
- 配置Cloudflare隧道
- 克隆仓库+填充
.env - 跑步
docker compose up - 在以下位置完成首次运行安装向导
/admin/setup - 连接Claude.ai或其他MCP客户端
- 常见问题排查
如果你已经知道运动部件,简短的版本是:
git clone https://github.com/npab19/cw-manage-mcp.git
cd cw-manage-mcp
cp .env.example .env
# edit .env — fill in CW credentials, POSTGRES_PASSWORD, ADMIN_EMAILS, OAUTH_*, etc.
docker compose up --build -d
docker compose logs cw-manage-mcp | tail -30 # find the bootstrap URL
# Visit the bootstrap URL printed in the logs to complete setup
每次推送时,预构建的映像都会发布到GitHub容器注册表 master:
docker pull ghcr.io/npab19/cw-manage-mcp:latest
用法
连接Claude.ai
- claude.ai → 简介→ 设置 → 集成 → 添加集成
- 粘贴MCP URL--无查询参数:
https://cw-mcp.yourdomain.com/mcp - 保存。Claude根据您的IdP遍历OAuth流程,然后列出您的帐户被授予的工具。
示例--列出特定板上的未结票证
{
"tool": "get_service_tickets",
"arguments": {
"conditions": "board/name=\"Service Desk\" and closedFlag=false",
"orderBy": "lastUpdated desc",
"pageSize": 50
}
}
示例--获取成员本月的时间条目
{
"tool": "get_time_entries",
"arguments": {
"conditions": "member/identifier=\"jsmith\" and timeStart>[2026-05-01T00:00:00Z]",
"orderBy": "timeStart desc"
}
}
MCP检验员测试
npx @modelcontextprotocol/inspector "https://cw-mcp.yourdomain.com/mcp"
Inspector在第一次连接时遍历OAuth流。
路线图
- [x] 核心CW模块(服务、公司、财务、时间、项目、系统、进度、销售)的只读工具
- [x] 费用、采购、营销、Webhook工具模块
- [x] MSP工作流的复合报告工具
- [x] MCP提示库
- [x] Docker+Cloudflare隧道部署
- [x] OAuth 2.1(资源服务器+授权服务器代理)
- [x] 带有设置向导、设置、MCP审核日志的管理仪表板
- [x] 自动将Docker镜像发布到GHCR
- [x] CW用户导入+权限镜像(按角色工具允许列表)
- [x] 作为MCP资源的分层上下文文档(全局/每个角色/每个用户)+
get_context工具 - [x] 管理内容(董事会别名、公司除外)
- [x] 用于CI/n8n/自定义集成的服务帐户API密钥
- [x] 缓存、每用户速率限制、每晚Postgres备份、管理员健康页面
看 问题 对于提出的特征和已知问题。
贡献
欢迎捐款。分叉、分支、提交、PR:
- 分叉项目
git checkout -b feature/your-featuregit commit -m 'Add your feature'git push origin feature/your-feature- 打开拉取请求
许可证
MIT。看 LICENSE.
