ConnectWise Manage查询服务器

一个用于ConnectWise Manage的只读模型上下文协议(MCP)服务器,可从任何兼容MCP的AI客户端查询票据、公司、协议、时间条目、项目等数据。

  • by Npab19
  • TypeScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 Npab19/cw-manage-mcp

使用说明


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
  1. About The Project
  2. Available Tools
  3. Available Prompts
  4. Getting Started
  5. Usage
  6. Roadmap
  7. Contributing
  8. License

关于项目

此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隧道。

(back to top)


可用工具

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错误时崩溃。

(back to top)


可用提示

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 技能评估:清单、工作概况、差距、培训建议。

(back to top)


入门指南

看 docs/setup.md 获取完整的首次设置指南。 它穿过:

  1. 先决条件(Docker、ConnectWise管理员访问、OAuth IdP、Cloudflare隧道)
  2. 正在生成ConnectWise API凭据+客户端ID
  3. 注册OAuth应用程序(Microsoft Entra ID演练)
  4. 配置Cloudflare隧道
  5. 克隆仓库+填充 .env
  6. 跑步 docker compose up
  7. 在以下位置完成首次运行安装向导 /admin/setup
  8. 连接Claude.ai或其他MCP客户端
  9. 常见问题排查

如果你已经知道运动部件,简短的版本是:

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

(back to top)


用法

连接Claude.ai

  1. claude.ai → 简介→ 设置 → 集成 → 添加集成
  2. 粘贴MCP URL--无查询参数:
    https://cw-mcp.yourdomain.com/mcp
    
  3. 保存。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流。

(back to top)


路线图

  • [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备份、管理员健康页面

看 问题 对于提出的特征和已知问题。

(back to top)


贡献

欢迎捐款。分叉、分支、提交、PR:

  1. 分叉项目
  2. git checkout -b feature/your-feature
  3. git commit -m 'Add your feature'
  4. git push origin feature/your-feature
  5. 打开拉取请求

(back to top)


许可证

MIT。看 LICENSE.

(back to top)


致谢

(back to top)