Autotask MCP Server
使用说明内容(Markdown格式)
- 项目简介
- 该仓库实现了一个 Autotask 的 MCP 服务器,提供对 Autotask 数据的资源读取、工具执行,以及基于 MCP 的提示渲染能力,方便将 Autotask 集成到各类 LLM 应用中。
- 主要功能点
- MCP 协议实现:支持 MCP 的核心请求与响应,包括列出资源、读取资源、列出工具、调用工具等 JSON-RPC 交互。
- 资源托管与只读访问:提供企业级资源的注册、读取和简易描述,方便 LLM 获取上下文数据。
- 工具注册与执行:暴露多组 Autotask 相关工具,允许运行外部功能并返回结构化结果,支持数据增强(如名称映射)。
- 提示模板与上下文:提供服务器端的指令与说明,便于渲染给 LLM 的对话提示。
- 支持多传输协议:默认 stdio 传输,亦可通过 HTTP 的 Streamable 模式对接远程/云端客户端。
- 安全与运维:日志、错误处理、健康检查及简易的重启/停止逻辑,便于在容器化环境中部署。
- 安装步骤
- 依赖准备:需要 Node.js 18+ 环境。
- 构建与运行(从源码方法):
- 安装依赖并构建:
- 安装依赖并打包后端代码(通常通过 npm install、npm run build 完成)。
- 直接从源码启动(stdio 传输):
- 配置环境变量 AUTOTASK_USERNAME、AUTOTASK_SECRET、AUTOTASK_INTEGRATION_CODE(以及可选的 AUTOTASK_API_URL、MCP_SERVER_NAME、MCP_TRANSPORT、日志设置等)。
- 运行命令:node dist/entry.js(或通过 docker 容器执行 dist/entry.js)。
- 通过 Docker 部署:
- 使用提供的分发镜像,设置 AUTOTASK_USERNAME、AUTOTASK_SECRET、AUTOTASK_INTEGRATION_CODE 等环境变量,默认传输为 HTTP。
- 健康检查端点可用 http://host:8080/health。
- 安装依赖并构建:
- 生产打包(MCP Bundle,MCPB):
- 使用脚本进行打包,生成 .mcpb 文件,可在 Claude Desktop 等客户端直接使用(阅读仓库的 pack-mcpb 脚本及相关说明)。
- 服务器配置(给 MCP 客户端的配置信息描述)
- 服务器名称(server.name): 默认 autotask-mcp,可通过 MCP 客户端参数覆盖。
- 启动命令(command)与参数(args)示例注释说明(请以 JSON 结构在客户端配置中填写,不在此处直接给代码块):
- server.name: autotask-mcp
- command: node
- args: ["/path/to/your/project/dist/entry.js"]
- 还需要在环境变量中提供 Autotask 的凭证:AUTOTASK_USERNAME、AUTOTASK_SECRET、AUTOTASK_INTEGRATION_CODE
- MCP 传输类型:
- stdio(本地/桌面使用,默认)
- http(远程/云端使用,需设置 MCP_TRANSPORT=http、MCP_HTTP_PORT、MCP_HTTP_HOST)
- 其他备注:
- 服务器会话与能力声明会通过 MCP 协议与客户端协商,支持资源、工具的列表与调用。
- 客户端可以通过提供的配置启动服务器并建立连接,后续可通过 MCP 客户端调用资源与工具。
- 基本使用方法
- 启动服务器后,客户端可以:
- 请求资源列表,读取指定资源的内容。
- 获取工具列表,并调用具体工具以获取任务结果(包含数据增强与自动映射名称)。
- 使用工具返回的文本内容作为 LLM 的上下文输入。
- 常见工作流:
- 使用 Autotask 账户凭证初始化客户端并连接 MCP 服务器。
- 客户端请求工具执行,服务器返回格式化文本(JSON),其中可能包含 _enhanced 字段用于 ID 昳示(如公司名、负责人名)。
- 如需浏览资源或执行查询,使用相应的 MCP 请求即可。
- 使用注意
- 如在某些 Autotask 环境中资源/字段访问存在权限限制,服务器会进行合理降级处理,尽量提供可用的数据或错误信息,避免崩溃。
- 生产环境建议通过 HTTP 传输对接远程客户端并开启健康检查端点。
- 参考与扩展
- 本实现包含单元测试、集成测试及多脚本辅助工具,便于本地验证与持续集成。
- 未来可扩展更多 Autotask 实体、更多工具及更丰富的提示模板。