Motion MCP Server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Motion MCP ServerCreate a high priority task to review the Q3 budget due tomorrow"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Motion MCP Server
Motion is an AI-powered calendar and task management app that auto-schedules your work. This MCP server bridges Motion's API with LLMs like Claude and ChatGPT via the Model Context Protocol, so you can manage tasks, search projects, check your schedule, and more — all through natural conversation. It works on desktop, web, and mobile.
Preview
Click the image above to view full size
Related MCP server: Motion MCP Server
Getting Started
Prerequisites: Node.js 18+ and a Motion API key.
Local Setup (npx)
For desktop MCP clients — Claude Desktop, Claude Code, Cursor, and similar.
Add to your claude_desktop_config.json:
{
"mcpServers": {
"motion": {
"command": "npx",
"args": ["motionmcp"],
"env": {
"MOTION_API_KEY": "your_api_key"
}
}
}
}Test from the command line:
MOTION_API_KEY=your_api_key npx motionmcpTip:
npxalways runs the latest published version — no install needed.
Remote Setup (Cloudflare Workers)
For mobile and web clients — Claude mobile/web, ChatGPT mobile/web, or any HTTP MCP client.
One-click deploy
After deploy, set your secrets in the Cloudflare dashboard (Workers > your worker > Settings > Variables):
MOTION_API_KEY— your Motion API keyMOTION_MCP_SECRET— a random string (generate withopenssl rand -hex 16)
Manual deploy
# Set secrets
npx wrangler secret put MOTION_API_KEY
npx wrangler secret put MOTION_MCP_SECRET # use: openssl rand -hex 16
# Deploy
npm run worker:deployYour MCP URL will be:
https://motion-mcp-server.YOUR_SUBDOMAIN.workers.dev/mcp/YOUR_SECRETConnecting from Claude
Go to claude.ai > Settings > Connectors
Add your MCP URL
The server syncs automatically to the Claude mobile app
Connecting from ChatGPT
Go to ChatGPT Settings > Connectors
Add your MCP URL
Security: The secret in the URL prevents casual discovery. Treat the full URL like a password — don't share it publicly.
Tool configuration works the same as the local server. Set MOTION_MCP_TOOLS in wrangler.toml under [vars], or override via wrangler secret put MOTION_MCP_TOOLS.
For local Worker development, see DEVELOPER.md.
API Key
The server reads your Motion API key from the MOTION_API_KEY environment variable.
Inline (npx):
MOTION_API_KEY=your-key npx motionmcp.env file (when running from source via npm):
MOTION_API_KEY=your-keyWhen using
npx, prefer the inline environment variable sincenpxwon't read a local.envfile.
Tool Configuration
All 10 tools are enabled by default. If you run multiple MCP servers and want to reduce tool selection noise, you can limit which tools are exposed via the MOTION_MCP_TOOLS environment variable:
Level | Tools | Description |
minimal | 3 | Tasks, projects, workspaces only |
essential | 7 | Adds users, search, comments, schedules |
complete (default) | 10 | Full API access including custom fields, recurring tasks, statuses |
custom | varies | Pick exactly the tools you need |
Custom example:
MOTION_MCP_TOOLS=custom:motion_tasks,motion_projects,motion_search npx motionmcpTools Reference
motion_tasks
Operations: create, list, get, update, delete, move, unassign
The primary tool for task management. Supports all Motion API parameters including name, description, priority, dueDate, duration, labels, assigneeId, and autoScheduled. You can reference workspaces and projects by name — the server resolves them automatically.
{
"operation": "create",
"name": "Complete API integration",
"workspaceName": "Development",
"projectName": "Release Cycle Q2",
"dueDate": "2025-06-15T09:00:00Z",
"priority": "HIGH",
"labels": ["api", "release"]
}motion_projects
Operations: create, list, get
Manage Motion projects. Workspace and project names are fuzzy-matched, and the server auto-selects your "Personal" workspace if none is specified.
{"operation": "create", "name": "New Project", "workspaceName": "Personal"}motion_workspaces
Operations: list, get
List and inspect workspaces.
motion_users
Operations: list, current
List users in a workspace or get the current authenticated user.
motion_search
Operations: content
Search tasks and projects by query across a workspace.
{"operation": "content", "query": "API integration", "workspaceName": "Development"}motion_comments
Operations: list, create
Read and add comments on tasks and projects.
{"operation": "create", "taskId": "task_123", "content": "Updated the API endpoints as discussed"}motion_schedules
Operations: list
Retrieve user schedules and time zones. Supports prioritized scheduling with conflict detection and workload breakdowns by status, priority, and project.
motion_custom_fields
Operations: list, create, delete, add_to_project, remove_from_project, add_to_task, remove_from_task
Define and manage custom fields across workspaces, projects, and tasks.
{
"operation": "create",
"name": "Sprint",
"type": "DROPDOWN",
"options": ["Sprint 1", "Sprint 2", "Sprint 3"],
"workspaceName": "Development"
}motion_recurring_tasks
Operations: list, create, delete
Manage recurring task templates.
{
"operation": "create",
"name": "Weekly Team Standup",
"recurrence": "WEEKLY",
"projectName": "Team Meetings",
"daysOfWeek": ["MONDAY", "WEDNESDAY", "FRIDAY"],
"duration": 30
}motion_statuses
Operations: list
List available statuses for a workspace.
Advanced Configuration
Minimal setup (3 tools only):
{
"mcpServers": {
"motion": {
"command": "npx",
"args": ["motionmcp"],
"env": {
"MOTION_API_KEY": "your_api_key",
"MOTION_MCP_TOOLS": "minimal"
}
}
}
}Custom tools selection:
{
"mcpServers": {
"motion": {
"command": "npx",
"args": ["motionmcp"],
"env": {
"MOTION_API_KEY": "your_api_key",
"MOTION_MCP_TOOLS": "custom:motion_tasks,motion_projects,motion_search"
}
}
}
}Using your local workspace (npm):
{
"mcpServers": {
"motion": {
"command": "npm",
"args": ["run", "mcp:dev"],
"cwd": "/absolute/path/to/your/MotionMCP",
"env": {
"MOTION_API_KEY": "your_api_key"
}
}
}
}See the full developer setup in DEVELOPER.md.
Debugging
Logs output to
stderrin JSON formatCheck for missing keys, workspace/project names, and permissions
Use
motion_workspaces(list) andmotion_projects(list) to validate IDs
{
"level": "info",
"msg": "Task created successfully",
"method": "createTask",
"taskId": "task_789",
"workspace": "Development"
}License
Apache-2.0 License
For more information, see the full Motion API docs or Model Context Protocol docs.
Available Tools
10 toolsmotion_commentsC
Manage comments on tasks
| Name | Required | Description | Default |
|---|---|---|---|
| operation | Yes | Operation to perform | |
| taskId | Yes | Task ID to comment on or fetch comments from (required) | |
| content | No | Comment content (required for create operation) | |
| cursor | No | Pagination cursor for list operation (optional) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fails to disclose behavioral traits such as idempotency, rate limits, or auth requirements; it only states the tool manages comments without further detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is too terse ('Manage comments on tasks'), lacking essential detail; this is under-specification, not conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Without annotations or output schema, the description provides no context on behavior, return values, or side effects; it is insufficient for a tool with four parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3; the description does not add meaning beyond the schema, but the schema itself documents parameters adequately.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Manage comments on tasks' is vague; it does not specify which operations (list/create) are available, nor does it distinguish this tool from sibling tools like motion_tasks.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives, and no mention of prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
motion_custom_fieldsA
Manage custom fields for tasks and projects. Required params per operation: list: workspaceId or workspaceName. create: workspaceId/workspaceName + name + field (type); options[] also required for select/multiSelect. delete: workspaceId/workspaceName + fieldId. add_to_project: projectId + fieldId. remove_from_project: projectId + valueId. add_to_task: taskId + fieldId. remove_from_task: taskId + valueId.
| Name | Required | Description | Default |
|---|---|---|---|
| operation | Yes | Operation to perform | |
| fieldId | No | Custom field definition ID. Required for: delete, add_to_project, add_to_task. For remove operations, use valueId instead. | |
| valueId | No | Custom field value assignment ID (not the field definition ID). Required for: remove_from_project, remove_from_task. | |
| workspaceId | No | Workspace ID. Required for: list, create, delete. | |
| workspaceName | No | Workspace name (alternative to workspaceId). Required for: list, create, delete. | |
| name | No | Field name. Required for: create. | |
| field | No | Field type. Required for: create. Also needed for add_to_project/add_to_task when providing a non-null value. | |
| options | No | Option labels. Required for: create when field is select or multiSelect. | |
| required | No | Whether field is required on tasks/projects. | |
| projectId | No | Project ID. Required for: add_to_project, remove_from_project. | |
| taskId | No | Task ID. Required for: add_to_task, remove_from_task. | |
| value | No | Field value to set. Optional for add_to_project/add_to_task. When provided and non-null, the field param (type) is also required. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full responsibility for behavioral disclosure. It mentions mutating operations (create, delete, add/remove) but does not describe side effects, reversibility, permissions, rate limits, or the nature of changes. The description focuses on parameter requirements rather than behavioral traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured: a short purpose statement followed by operation-specific requirements listed clearly. It is relatively long due to the number of operations, but every sentence adds necessary information. Could be slightly more concise by reducing redundancy (e.g., repeating 'workspaceId/workspaceName' in multiple operations).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description thoroughly covers input parameter requirements for all operations. However, it does not explain return values (e.g., list operations return custom fields, create returns a field object) or error conditions. Given the complexity (12 parameters, 7 operations) and lack of output schema, some output/error context would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage, the schema already documents each parameter. The description adds significant value by grouping required parameters per operation (e.g., 'list: workspaceId or workspaceName'), which is not captured in the schema's flat 'required' array. This organized presentation greatly aids agent understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Manage custom fields for tasks and projects' and enumerates seven specific operations (list, create, delete, etc.), making the tool's purpose unambiguous and distinguishing it from sibling tools that handle other entities.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit 'Required params per operation' for each of the seven operations, guiding the agent on when to use each operation and what parameters are necessary. It does not, however, indicate when not to use the tool or suggest alternative tools, but within the scope of custom fields management it is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
motion_projectsC
Manage Motion projects - supports create, list, and get operations
| Name | Required | Description | Default |
|---|---|---|---|
| operation | Yes | Operation to perform | |
| projectId | No | Project ID (required for get operation) | |
| workspaceId | No | Workspace ID | |
| workspaceName | No | Workspace name (alternative to ID) | |
| name | No | Project name (required for create) | |
| description | No | Project description | |
| allWorkspaces | No | List projects from all workspaces (for list operation only). When true and no workspace is specified, returns projects from all workspaces. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose behavioral traits such as side effects, required permissions, rate limits, or error handling. For a tool that performs mutations (create), this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is concise and front-loaded with the resource and operations. However, it could be slightly expanded to improve clarity without much bloat.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (7 parameters, multiple operations) and no output schema, the description is insufficient. It does not explain return values for each operation, state changes (e.g., created project is persisted), or prerequisites (e.g., workspaceId for create).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters. The description adds no additional meaning beyond stating the supported operations, which is already encoded in the 'operation' enum. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the resource (Motion projects) and the supported operations (create, list, get). It distinguishes from sibling tools like motion_tasks or motion_workspaces by focusing on projects. However, it does not specify the exact nature of 'get' (e.g., whether it returns a single project by ID or details).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description only lists operations without explaining context or exclusions. For instance, it does not clarify when to use create vs list vs get, or when to prefer motion_projects over motion_tasks.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
motion_recurring_tasksA
Manage recurring tasks. Required params per operation: list: workspaceId or workspaceName. create: workspaceId/workspaceName + name + assigneeId + frequency (with frequency.type). delete: recurringTaskId.
| Name | Required | Description | Default |
|---|---|---|---|
| operation | Yes | Operation to perform | |
| recurringTaskId | No | Recurring task ID. Required for: delete. | |
| workspaceId | No | Workspace ID. Required for: list, create. | |
| workspaceName | No | Workspace name (alternative to workspaceId). Required for: list, create. | |
| name | No | Task name. Required for: create. | |
| description | No | Task description. | |
| projectId | No | Project ID. | |
| assigneeId | No | User ID to assign the recurring task to. Required for: create. | |
| frequency | No | Frequency configuration (required for create) | |
| deadlineType | No | Deadline type (default: SOFT) | |
| duration | No | Task duration in minutes or REMINDER | |
| startingOn | No | Start date (ISO 8601 format) | |
| idealTime | No | Ideal time in HH:mm format | |
| schedule | No | Schedule name (default: Work Hours) | |
| priority | No | Task priority (default: MEDIUM) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose side effects, authorization requirements, rate limits, or other behavioral traits. It only states parameter requirements, leaving significant gaps for an agent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is exceptionally concise: three sentences front-loading the purpose and then listing operation-specific requirements. Every sentence is essential with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (15 parameters, nested objects, multiple operations) and the absence of an output schema, the description omits important context such as return values, error handling, and behavior nuances, making it incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already describes all parameters. The description groups required params by operation, adding marginal value over the schema but no deeper semantic insights.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Manage recurring tasks' and enumerates three operations (list, create, delete) with required parameters, distinguishing it from sibling tools like motion_tasks which handle one-off tasks.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly lists required parameters per operation, guiding the agent on mandatory inputs. However, it lacks explicit comparison to sibling tools like motion_tasks to clarify when to use each.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
motion_schedulesA
Get all schedules showing weekly working hours and time zones. The Motion API returns all schedules with no filtering options.
| Name | Required | Description | Default |
|---|---|---|---|
| operation | No | Operation to perform |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses that the tool returns all schedules and has no filtering, but does not mention if it's read-only, requires authentication, or handles pagination. Basic transparency but missing behavioral details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, each adding value: first defines the core functionality, second adds the constraint of no filtering. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no annotations, the description covers the essential aspects: what the tool does, what data it returns (working hours, time zones), and its limitation (no filtering). Missing potential details like response format or error conditions, but adequate for a simple tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the only parameter ('operation'), which is fully described in the schema as an enum with value 'list'. The description adds no additional meaning beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'Get all schedules showing weekly working hours and time zones', which specifies the verb (get), resource (schedules), and output scope. It distinguishes from siblings by noting no filtering, making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states 'no filtering options', implying this tool is for unfiltered retrieval of all schedules. However, it does not explicitly mention when not to use it or provide alternatives among sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
motion_searchA
Search Motion tasks and projects by query
| Name | Required | Description | Default |
|---|---|---|---|
| operation | Yes | Operation to perform | |
| query | No | Search query (required) | |
| searchScope | No | What to search (default: both) | |
| workspaceId | No | Workspace ID to limit search | |
| workspaceName | No | Workspace name (alternative to workspaceId) | |
| limit | No | Maximum number of results |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. 'Search' implies a read-only operation, but the description doesn't disclose whether the search is limited to accessible workspaces or any side effects. Minimal but adequate for a search tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no extraneous information. Every word is necessary and earned.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 6 parameters, required operation enum ('content' unexplained), and no output schema, the description is adequate but leaves gaps such as result format, pagination, and the meaning of 'content' operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with each parameter described in the schema. The description adds no additional parameter information, so baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Search' and the resources 'Motion tasks and projects', with the method 'by query'. It distinctly separates from sibling tools like motion_tasks and motion_projects which are CRUD operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for searching tasks and projects but lacks explicit guidance on when to use this tool versus alternatives like motion_tasks or motion_projects for retrieval. No exclusion criteria or context about when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
motion_statusesB
Get available task/project statuses for a workspace
| Name | Required | Description | Default |
|---|---|---|---|
| workspaceId | No | Workspace ID to get statuses for (optional, returns all statuses if not specified) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It only says 'Get available statuses', implying a read operation, but does not disclose any behavioral traits such as pagination, rate limiting, or scope (e.g., workspace-specific vs. global).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no fluff. The description is front-loaded and efficiently conveys the core action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity (1 optional param, no output schema), the description is largely sufficient. However, it would benefit from including the return value format or behavior when workspaceId is omitted.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the parameter is well-documented. The description adds the phrase 'task/project statuses', which provides context beyond the schema. No additional depth is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves task/project statuses for a workspace. It is specific enough to differentiate from sibling tools like motion_projects or motion_tasks, but could be more explicit about the scope (list vs. get).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. The description does not provide any context about prerequisites or cases where it should be avoided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
motion_tasksC
Manage Motion tasks - supports create, list, get, update, delete, move, unassign, and list_all_uncompleted operations
| Name | Required | Description | Default |
|---|---|---|---|
| operation | Yes | Operation to perform | |
| taskId | No | Task ID (required for get/update/delete/move/unassign) | |
| workspaceId | No | Filter by workspace (for list) | |
| workspaceName | No | Filter by workspace name (for list) | |
| projectId | No | Filter by project (for list) | |
| projectName | No | Project name (alternative to projectId) | |
| status | No | Filter by status (for list). Single string or array of strings (e.g., ["Todo", "Completed"]). Without status or includeAllStatuses, only active (non-resolved) tasks are returned. Use motion_statuses to list valid values per workspace. | |
| includeAllStatuses | No | When true, returns tasks across all statuses including completed/resolved (for list). Cannot be combined with status filter. | |
| assigneeId | No | Filter by assignee (for list/list_all_uncompleted), set assignee (for create/update), or reassign (for move) | |
| assignee | No | Filter by assignee name, email, or 'me' shortcut (for list and list_all_uncompleted). Resolved to an ID automatically | |
| priority | No | Filter by priority level (for list, filtered client-side): ASAP, HIGH, MEDIUM, LOW | |
| dueDate | No | Due date (for create/update) or filter (for list, filtered client-side — returns tasks due on or before this date). Date-only values are stored as end-of-day UTC. Format: YYYY-MM-DD or relative like 'today', 'tomorrow' | |
| labels | No | Filter by labels (for list). Array of label names | |
| name | No | Task name (required for create, optional for list as case-insensitive substring search) | |
| description | No | Task description | |
| duration | No | Minutes (as number) or 'NONE'/'REMINDER' (as string) | |
| autoScheduled | No | Auto-scheduling configuration. Can be either: - A schedule name string: "Work Hours" (simple, no start date) - An object for full control: {"schedule": "Work Hours", "startDate": "2025-03-05", "deadlineType": "SOFT"} When the user specifies a start date, you MUST use the object form. Use motion_schedules to see available schedule names. | |
| targetWorkspaceId | No | Target workspace ID (required for move operation). Move transfers a task between workspaces — project-level targeting is not supported by the Motion API. | |
| limit | No | Maximum number of tasks to return (for list and list_all_uncompleted) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description should disclose side effects, permissions, or limitations. It only names operations without explaining behavior (e.g., update modifies existing tasks, delete is irreversible). The parameter descriptions in the schema provide some detail but the top-level description lacks transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, which is concise but too brief for a tool with 19 parameters and 8 operations. It lacks structure (e.g., bullet points or sections) that would improve readability and scannability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex tool with many parameters and no output schema, the description is incomplete. It does not explain expected outputs, error handling, or usage patterns. The schema descriptions help but the overall description is insufficient for an AI agent to use the tool effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description adds no extra meaning beyond the schema; it merely lists operations. The schema already documents all parameters thoroughly, so no additional value from the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it manages Motion tasks and lists the supported operations (create, list, get, update, delete, move, unassign, list_all_uncompleted). It distinguishes from sibling tools which handle other Motion entities (comments, projects, etc.), so the purpose is clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs. alternatives (e.g., motion_search for advanced search). It does not mention when not to use it or any prerequisites. The description assumes the agent knows the context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
motion_usersC
Manage users and get current user information
| Name | Required | Description | Default |
|---|---|---|---|
| operation | Yes | Operation to perform | |
| workspaceId | No | Workspace ID (optional for list operation, ignored for current) | |
| workspaceName | No | Workspace name (alternative to workspaceId, ignored for current) | |
| teamId | No | Team ID to filter users by (optional for list operation) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not clarify behavioral traits such as read-only vs. write operations, authentication requirements, or side effects. The term 'manage' misleadingly suggests mutation, while the schema only includes read operations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (one sentence, 8 words) with no fluff. However, it achieves conciseness at the expense of completeness, losing some informative power.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 4 parameters, no output schema, and no annotations, the description is incomplete. It does not explain how operations relate to parameters, expected return formats, or error handling. A more detailed description would improve agent understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema itself documents all parameters adequately. The description adds no significant meaning beyond what the schema provides, but it does not contradict or confuse.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Manage users and get current user information', which indicates a broad scope. However, the schema only supports 'list' and 'current' operations, so 'manage' is too vague and not fully aligned with actual functionality.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives (e.g., motion_workspaces). The sibling tools cover different resources, but there is no explicit context about which operation to choose or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
motion_workspacesC
Manage Motion workspaces - supports list and get operations
| Name | Required | Description | Default |
|---|---|---|---|
| operation | Yes | Operation to perform | |
| workspaceId | No | Workspace ID (required for get operation) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description lacks details on behavioral aspects such as whether operations are read-only, required permissions, or error conditions. Since no annotations exist, the description carries full burden but falls short.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise and front-loaded, stating the resource and operations in one sentence. No wasted words, though it could be slightly more informative without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list/get tool, the description covers the basic functionality but omits details about return values (no output schema) and potential edge cases, leaving the agent with gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds minimal value beyond the schema, merely restating the operations and hinting at workspaceId requirement already present in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the resource ('Motion workspaces') and the supported operations ('list and get'), distinguishing it from sibling tools that handle different entities like tasks or users.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use list vs. get, nor any context about alternatives or prerequisites. The description is purely declarative without usage advice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
10 tool updates
v2.8.0- First observed
motion_comments - First observed
motion_custom_fields - First observed
motion_projects - First observed
motion_recurring_tasks - First observed
motion_schedules - First observed
motion_search - First observed
motion_statuses - First observed
motion_tasks - First observed
motion_users - First observed
motion_workspaces
TDQS
Each tool targets a distinct Motion resource (comments, custom fields, projects, recurring tasks, schedules, search, statuses, tasks, users, workspaces). Descriptions clearly differentiate their purposes, leaving no ambiguity for an agent to select the wrong tool.
All tool names follow a consistent pattern: motion_<resource> in snake_case. This makes the tool set predictable and easy to navigate.
With 10 tools covering core resources like tasks, projects, comments, and users, the count is well-scoped for a project management server. Each tool contributes meaningfully without unnecessary bloat.
The set provides comprehensive CRUD and lifecycle operations for tasks, projects, custom fields, and more. Minor gaps exist (e.g., no update for projects, limited user management), but core workflows are well-supported.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Manage Superlist tasks and lists in plain language from any MCP-compatible AI agent.
Manage projects, tasks, time tracking, and team collaboration through natural language.
Share one project context across ChatGPT, Claude, Telegram and any MCP client.
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
Related MCP Servers
- AlicenseAqualityBmaintenanceBridges Motion's API with LLMs like Claude and ChatGPT via the Model Context Protocol, enabling task management, project search, schedule viewing, and more through natural conversation.10Apache 2.0
- AlicenseBqualityCmaintenanceBridges Motion's API with LLMs via the Model Context Protocol, enabling natural language task, project, and schedule management.10Apache 2.0
- AlicenseBqualityCmaintenanceEnables managing tasks, projects, schedules, users, comments, and more in Motion via natural language through the Model Context Protocol.10Apache 2.0
- AlicenseBqualityCmaintenanceEnables natural language management of Motion tasks, projects, schedules, and more by bridging the Motion API with LLMs through the Model Context Protocol.10Apache 2.0
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/jsardinia/motion-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server