Unofficial Model Context Protocol (MCP) server for Motion - the AI-powered calendar, task management, and project planning app that automatically schedules your work.
Note: This is a community-built integration, not an official Motion product. We created this MCP server because there was no official implementation available, enabling AI assistants like Claude to interact with Motion's powerful scheduling and task management features.
Important: There are two different Claude applications that can use this MCP server:
- 🖥️ Claude Desktop: The desktop application you download and install on your computer
- ⌨️ Claude Code: A command-line interface (CLI) tool for developers
Each has different installation procedures - make sure you follow the correct instructions for your application!
- Log into Motion
- Navigate to Settings → API
- Create a new API key
- Copy the key immediately (it's only shown once!)
Important: This MCP server works with both Claude applications, but they have different installation methods:
- Claude Desktop (Desktop App): Requires manual JSON configuration
- Claude Code (CLI Tool): Has built-in MCP installation commands
Choose the installation method below based on which Claude application you're using.
-
Find your Claude Desktop configuration file:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json - Linux:
~/.config/claude/claude_desktop_config.json
- macOS:
-
Add the following to your configuration file:
{
"mcpServers": {
"motion": {
"command": "npx",
"args": ["-y", "@rf-d/motion-mcp"],
"env": {
"MOTION_API_KEY": "your_motion_api_key_here",
"MOTION_RATE_LIMIT_PER_MINUTE": "12"
}
}
}
}- Replace
your_motion_api_key_herewith your actual Motion API key - Restart Claude Desktop for the changes to take effect
First, install the Claude Code CLI if you haven't already:
npm install -g @anthropic-ai/claude-codeRun this command to add the Motion MCP server to Claude Code:
claude mcp add motion npx -- -y @rf-d/motion-mcpSet your Motion API key as an environment variable:
export MOTION_API_KEY="your_motion_api_key_here"Or create a .env file in your project directory:
echo "MOTION_API_KEY=your_motion_api_key_here" > .envFor development installation, we recommend using mjaskolski's fork which is up-to-date, has fewer errors, full documentation, and comprehensive tests:
git clone https://github.com/mjaskolski/motion-mcp.git
cd motion-mcp
npm install
npm run build
# Create a .env file with your API key
echo "MOTION_API_KEY=your_motion_api_key_here" > .env
# Run in development mode
npm run devFor Claude Desktop (development version):
{
"mcpServers": {
"motion": {
"command": "npm",
"args": [
"--prefix",
"/path/to/your/motion-mcp",
"--silent",
"run",
"start"
],
"env": {
"MOTION_API_KEY": "YOUR_API_KEY"
}
}
}
}For Claude Code (development version):
claude mcp add motion-dev npm -- --prefix /path/to/your/motion-mcp --silent run startReplace /path/to/your/motion-mcp with the actual path to your cloned repository.
- Task Management: Create, update, delete, and organize tasks with full support for Motion's auto-scheduling
- Project Management: Create and view projects across workspaces (Note: Projects are read-only once created)
- Workspace Organization: Access and manage multiple workspaces
- Team Collaboration: User management, task assignment, and team coordination
- Comments: Add and manage task comments for better collaboration
- Scheduling: View and manage schedules with Motion's intelligent scheduling
- Custom Fields: Create and manage custom fields for tasks and projects
- Recurring Tasks: Set up and manage recurring tasks with flexible patterns
The server includes automatic rate limiting to comply with Motion's API limits:
- Individual accounts: 12 requests per minute
- Team accounts: 120 requests per minute
- Enterprise accounts: Custom limits
motion_list_tasks- List tasks with filtering and paginationmotion_get_task- Get detailed task informationmotion_create_task- Create new tasks with auto-schedulingmotion_update_task- Update task propertiesmotion_delete_task- Delete tasksmotion_move_task- Move tasks between workspacesmotion_unassign_task- Remove assignee from task
motion_list_projects- List all projectsmotion_get_project- Get project detailsmotion_create_project- Create new projects
motion_list_workspaces- List accessible workspacesmotion_get_workspace- Get workspace details
- User management (3 tools)
- Schedule management (1 tool)
- Comment management (5 tools)
- Custom field management (5 tools)
- Recurring task management (4 tools)
- Schedule management (2 tools)
- Status management (1 tool)
Create a new task called "Review Q4 reports" due tomorrow with high priority
List all my incomplete tasks in the "Development" project and move any bug fixes to high priority
Show me all tasks assigned to the team this week and add a comment to each one about the sprint goals
Create a weekly recurring task for team standup meetings every Monday at 9 AM
- Node.js >= 20.0.0
- npm or yarn
- Motion API key
# Clone the repository
git clone https://github.com/RF-D/motion-mcp.git
cd motion-mcp
# Install dependencies
npm install
# Set up environment
cp .env.example .env
# Edit .env with your API key
# Run in development mode
npm run devnpm run build- Build for productionnpm run dev- Development mode with hot reloadnpm run typecheck- TypeScript type checkingnpm run lint- ESLint code lintingnpm run format- Prettier code formatting
src/
├── api/
│ └── client.ts # Motion API client with rate limiting
├── tools/
│ ├── task.ts # Task management tools
│ ├── project.ts # Project management tools
│ ├── workspace.ts # Workspace tools
│ └── ... # Other tool categories
├── types/
│ ├── motion.ts # Motion API type definitions
│ └── tool.ts # MCP tool type definitions
├── config.ts # Configuration management
└── index.ts # Main server entry point
Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Please ensure:
- All tests pass
- Code follows the existing style
- TypeScript types are properly defined
- Documentation is updated
This project is licensed under the MIT License - see the LICENSE file for details.
This is an unofficial integration and is not affiliated with, officially maintained, or endorsed by Motion. Use at your own discretion.
"Motion API key not found" error
- Claude Desktop: Make sure you've added the
MOTION_API_KEYto yourclaude_desktop_config.jsonconfiguration - Claude Code: Ensure your API key is set as an environment variable or in a
.envfile - Verify the key is correct and hasn't expired
- Restart the application after adding the key
"Rate limit exceeded" error
- Individual accounts are limited to 12 requests per minute
- Team accounts get 120 requests per minute
- The server automatically handles rate limiting, but very heavy usage may still hit limits
"Command not found" error
- Make sure you have Node.js >= 20.0.0 installed
- Claude Desktop: Try running with the full path:
npx @rf-d/motion-mcp - Claude Code: Ensure the Claude Code CLI is installed:
npm install -g @anthropic-ai/claude-code
Claude Desktop configuration file not found
- The configuration file is created automatically when you first run Claude Desktop
- If it doesn't exist, create it manually at the correct location for your operating system
- Ensure the JSON syntax is valid (no trailing commas, proper brackets)
Claude Code MCP server not loading
- Run
claude mcp listto see if the server is properly registered - Check that your API key environment variable is set correctly
- Try removing and re-adding the server:
claude mcp remove motion && claude mcp add motion npx -- -y @rf-d/motion-mcp
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- NPM Package: npmjs.com/package/@rf-d/motion-mcp
- Claude Desktop: If you downloaded and installed a desktop app from claude.ai
- Claude Code: If you installed it with
npm install -g @anthropic-ai/claude-codeand run it with theclaudecommand
Built with love for the Motion and MCP communities