项目简介
Motion MCP 服务器是一个基于 Model Context Protocol (MCP) 构建的后端服务,旨在让大型语言模型 (LLM) 能够直接访问 Motion 应用的数据和功能。它通过标准化的 JSON-RPC 协议与 LLM 客户端通信,允许 LLM 调用 Motion API 来管理项目、任务、用户、评论、自定义字段和周期性任务等。该服务器用 TypeScript 编写,具有强大的验证功能和可配置的工具集,以优化 LLM 的工具调用体验。
主要功能点
- MCP 协议支持: 完全遵循 Model Context Protocol (MCP) 规范,确保与各类 LLM 客户端无缝集成。
- Motion API 集成: 提供了对 Motion API 的全面访问,涵盖项目、任务、用户、评论、自定义字段、周期性任务、工作区、日程和状态等核心实体。
- 可配置工具集: 支持“极简”、“常用”、“完整”或“自定义”等多种工具配置,帮助用户根据需求管理 LLM 可用的工具数量,避免工具列表过长。
- 上下文实用工具: 提供语义搜索和轻量级上下文摘要功能,帮助 LLM 理解和利用 Motion 数据。
- 安全与稳定性: 通过环境变量配置 API 密钥,支持结构化 JSON 日志,并采用 TypeScript 实现强类型、输入验证和健壮的错误处理。
- 智能默认值和解析: 具备工作区和项目自动检测、模糊匹配以及智能默认值(如选择“个人”工作区)的能力,提升用户体验。
安装步骤
- 获取 Motion API 密钥: 访问 'https://app.usemotion.com/settings/api' 获取您的 Motion API 密钥。
- 安装 Node.js: 确保您的系统已安装 Node.js 18 或更高版本。
- 命令行运行 (推荐使用 'npx'): 打开终端,设置 Motion API 密钥,然后运行服务器。例如: 'MOTION_API_KEY=您的MotionAPI密钥 npx motionmcp' 这将自动下载并运行最新版本的 Motion MCP 服务器。
- (可选)本地开发运行: 如果您希望从源代码运行或进行开发,请克隆仓库,安装依赖,并按照 'DEVELOPER.md' 中的说明运行。
服务器配置 (Claude Desktop 客户端示例)
MCP 客户端(如 Claude Desktop)需要配置 MCP 服务器的启动命令。以下是一个 'claude_desktop_config.json' 的配置示例,您需要将其添加到客户端的配置文件中。请注意,这里的 'env' 部分用于设置环境变量,'command' 和 'args' 定义了服务器的启动方式。
{ "mcpServers": { "motion": { "command": "npx", "args": ["motionmcp"], "env": { "MOTION_API_KEY": "您的MotionAPI密钥", "MOTION_MCP_TOOLS": "essential" }, "description": "Motion MCP 服务器,为LLM提供Motion任务、项目、用户等数据的上下文与工具访问。" } } }
- 'motion': 这是 MCP 服务器的名称,您可以在客户端中用它来指代此服务器。
- 'command': 指定启动服务器的命令。'npx' 是 Node.js 包执行器,用于运行 npm 仓库中的包而无需全局安装。
- 'args': 提供传递给 'command' 的参数。'motionmcp' 是要执行的包名。
- 'env': 设置环境变量,这些变量在服务器启动时可用。
- 'MOTION_API_KEY': 替换为您的 Motion API 密钥。这是服务器连接 Motion API 所必需的。
- 'MOTION_MCP_TOOLS': (可选)配置服务器暴露的工具集。可选值包括:
- 'minimal': 仅暴露 3 个核心工具(任务、项目、工作区)。
- 'essential': 暴露 7 个常用工具(在 'minimal' 基础上增加用户、搜索、评论、日程)。这是默认配置。
- 'complete': 暴露所有 10 个工具(在 'essential' 基础上增加自定义字段、周期性任务、状态)。
- 'custom:tool1,tool2,...': 暴露指定的工具,例如 'custom:motion_tasks,motion_projects,motion_search'。
- 'description': 对 MCP 服务器的简要描述,方便在客户端中识别。
基本使用方法
一旦 MCP 服务器在客户端中成功配置并运行,LLM 客户端将能够自动发现并使用其提供的工具。您可以通过自然语言向 LLM 提出请求,例如:
- “创建一个名为‘撰写报告’的任务,分配给 Alice。”
- “列出我的所有未完成任务。”
- “搜索关于‘项目启动’的所有项目和任务。”
- “获取 ID 为 ‘task_123’ 的任务详情。” LLM 将根据您的请求调用相应的 Motion 工具来执行操作或获取信息。
信息
分类
AI与计算