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 for team meeting notes"
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 |
|---|---|---|---|
| cursor | No | Pagination cursor for list operation (optional) | |
| taskId | Yes | Task ID to comment on or fetch comments from (required) | |
| content | No | Comment content (required for create operation) | |
| operation | Yes | Operation to perform |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of disclosing behavioral traits, but it reveals nothing beyond the vague 'manage' phrase. There is no mention of side effects, return behavior, pagination, permissions, or operation-specific effects.
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, using only five words with no wasted content. However, it is under-specified for a tool with two operations and four parameters, and the single phrase lacks structural separation between concerns.
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 four parameters, no output schema, and no annotations, this description is almost entirely inadequate. It does not explain what the tool returns, how pagination works, or what the 'create' operation requires beyond the schema fields, leaving the agent without essential execution context.
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 adequately. The description adds no additional meaning about parameters, such as examples or dependencies, but also doesn't mislead.
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' identifies the resource (comments on tasks) but uses the vague verb 'manage' without specifying the concrete operations (list, create) available in the schema. It distinguishes the tool from siblings by resource type but lacks a clear action scope.
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 no guidance on when to use this tool versus alternatives, nor does it explain how to choose between the 'list' and 'create' operations. It gives no context about prerequisites, workflows, 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 |
|---|---|---|---|
| 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. | |
| 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. | |
| taskId | No | Task ID. Required for: add_to_task, remove_from_task. | |
| fieldId | No | Custom field definition ID. Required for: delete, add_to_project, add_to_task. For remove operations, use valueId instead. | |
| options | No | Option labels. Required for: create when field is select or multiSelect. | |
| valueId | No | Custom field value assignment ID (not the field definition ID). Required for: remove_from_project, remove_from_task. | |
| required | No | Whether field is required on tasks/projects. | |
| operation | Yes | Operation to perform | |
| projectId | No | Project ID. Required for: add_to_project, remove_from_project. | |
| workspaceId | No | Workspace ID. Required for: list, create, delete. | |
| workspaceName | No | Workspace name (alternative to workspaceId). Required for: list, create, delete. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It explains parameter requirements and the distinction between fieldId and valueId, but does not disclose the effects of destructive operations (e.g., deletion) or any side effects. The operational mechanics are clear, but behavioral outcomes beyond invocation are not fully covered.
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 compact, single-sentence, and uses a semicolon-separated list to convey operation-specific requirements without fluff. It is front-loaded with the tool's purpose and uses every word to convey actionable information.
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 multi-operation tool with 12 parameters, the description is highly complete in guiding correct invocation by stating required params per operation. It does not cover return values or error handling, but given the complexity and the absence of an output schema, the coverage is strong.
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% and each parameter already includes descriptions like 'Required for: create.' The description adds a consolidated operation-required summary, which is convenient but does not significantly go beyond the schema's own semantics. It repeats rather than deepens the existing parameter meaning.
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 begins with 'Manage custom fields for tasks and projects,' which clearly states the verb 'Manage' and the resource 'custom fields' for tasks/projects. It enumerates specific operations (list, create, delete, add_to_project, etc.), distinguishing it from sibling tools that handle tasks, schedules, etc.
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 parameters for each operation, effectively serving as usage instructions. It does not mention when to avoid using this tool or alternatives, but the operation-specific guidance is clear and actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
motion_projectsA
Manage Motion projects - supports create, list, and get operations
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Project name (required for create) | |
| operation | Yes | Operation to perform | |
| projectId | No | Project ID (required for get operation) | |
| description | No | Project description | |
| workspaceId | No | Workspace ID | |
| allWorkspaces | No | List projects from all workspaces (for list operation only). When true and no workspace is specified, returns projects from all workspaces. | |
| workspaceName | No | Workspace name (alternative to ID) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only lists operations without revealing side effects (e.g., create is destructive, get is read-only), permissions, rate limits, or return values. The description adds no behavioral context beyond what the operation enum already implies.
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 front-loaded with the resource and operations. It contains no filler or redundant information, making it highly efficient and easy to parse.
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 multi-operation tool with 7 parameters and no output schema, the description is minimal. It does not clarify how parameters relate to specific operations (e.g., get requires projectId) or what the return format is. However, the rich schema compensates for parameter details, making the description adequate but not comprehensive.
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%, and each parameter has a descriptive comment. The description itself does not elaborate on parameters beyond naming the operations, which is already captured in the enum. The baseline score of 3 applies because the schema does the heavy lifting.
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 identifies the resource ('Motion projects') and explicitly lists supported operations ('create, list, and get'). This specific verb-resource combination distinguishes it from sibling tools like motion_tasks and motion_schedules.
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 project management via the resource name and operation list, but it does not explicitly state when to use this tool instead of alternatives, nor does it mention exclusions or prerequisites. Usage is inferred rather than directly guided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
motion_recurring_tasksB
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 |
|---|---|---|---|
| name | No | Task name. Required for: create. | |
| duration | No | Task duration in minutes or REMINDER | |
| priority | No | Task priority (default: MEDIUM) | |
| schedule | No | Schedule name (default: Work Hours) | |
| frequency | No | Frequency configuration (required for create) | |
| idealTime | No | Ideal time in HH:mm format | |
| operation | Yes | Operation to perform | |
| projectId | No | Project ID. | |
| assigneeId | No | User ID to assign the recurring task to. Required for: create. | |
| startingOn | No | Start date (ISO 8601 format) | |
| description | No | Task description. | |
| workspaceId | No | Workspace ID. Required for: list, create. | |
| deadlineType | No | Deadline type (default: SOFT) | |
| workspaceName | No | Workspace name (alternative to workspaceId). Required for: list, create. | |
| recurringTaskId | No | Recurring task ID. Required for: delete. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations to cover safety/read-only hints, and the description only lists required params; it does not disclose side effects (e.g., creating a recurring task schedules it; deletion is permanent) or return values.
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 with a compact list, front-loading the verb+resource and providing essential per-operation requirements without any fluff.
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 params, nested frequency object, no output schema), this description is too terse. It doesn't explain how to construct a valid frequency configuration or any behavioral expectations, leaving the agent reliant on the schema for most details.
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?
All 15 parameters have schema descriptions (100% coverage), so the description adds only an operation-to-parameter mapping, which is already embedded in each parameter's 'Required for' notes. 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 states the tool manages recurring tasks and enumerates three operations (list, create, delete) with required params. The term 'recurring' distinguishes it from regular task tools like motion_tasks, though 'manage' is somewhat generic.
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?
Provides explicit required-parameter sets per operation, giving clear context for when to use each operation. However, it lacks an explicit comparison to sibling tools (e.g., when to use motion_tasks instead).
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?
No annotations are present, so the description must disclose behavior. It explains that the API returns all schedules with no filtering options, which is useful. However, it doesn't mention pagination, response structure, or other potential behaviors like rate limits.
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 with no unnecessary words; the essential information is front-loaded in the first sentence, and the second sentence adds meaningful context about the lack of filtering.
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 provides the core purpose, the data content, and the no-filtering behavior, which is sufficient for a simple list tool. However, it could be slightly more explicit about the response format since there is no output schema.
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?
The single parameter (operation) is fully described in the schema with a description and enum. The tool description does not add further parameter-level details, but since schema coverage is 100%, the baseline score 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 tool retrieves all schedules, specifying the contents (weekly working hours and time zones). It distinguishes itself from siblings like motion_search by explicitly noting there are no filtering options.
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 indicates this is for retrieving unfiltered schedule data, implying that any filtered schedule needs would require another tool. However, it doesn't explicitly name alternative tools, so it falls short of full guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
motion_searchB
Search Motion tasks and projects by query
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of results | |
| query | No | Search query (required) | |
| operation | Yes | Operation to perform | |
| searchScope | No | What to search (default: both) | |
| workspaceId | No | Workspace ID to limit search | |
| workspaceName | No | Workspace name (alternative to workspaceId) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only states the action and target, with no information about return format, pagination, rate limits, or side effects. This is insufficient for a tool with no annotation support.
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 concise sentence ('Search Motion tasks and projects by query') with no wasted words. It is front-loaded and immediately conveys the core function.
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 tool with 6 parameters and no output schema or annotations, this description is quite minimal. It does not indicate how results are returned, how to use searchScope, or any behavioral constraints. The schema provides parameter details, but the description lacks overarching context needed for effective tool selection and invocation.
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?
The schema provides descriptions for all 6 parameters, covering 100% of them, so the baseline is 3. The description itself adds no parameter-specific meaning beyond what the schema already states, but it does not need to compensate due to high schema coverage.
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 'Search Motion tasks and projects by query' clearly identifies the verb (search), the resource (Motion tasks and projects), and the scope (by query). It distinguishes this tool from siblings like motion_tasks and motion_projects by indicating a cross-resource search capability.
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 the tool is for searching tasks and projects, but it does not provide explicit guidance on when to use search versus browsing alternatives. No alternatives or exclusions are mentioned, leaving usage somewhat implied rather than clearly instructed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
motion_statusesA
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?
No annotations are provided, so the description carries the full burden. The verb 'Get' clearly indicates a read-only operation, and the schema adds the optional workspaceId behavior. However, the description itself does not disclose safety details like auth requirements or response format beyond the schema.
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?
A single, front-loaded sentence that is direct and waste-free. It conveys the primary action and scope immediately.
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 getter with one optional parameter and no output schema, the description is mostly complete. It tells you the resource type and scope. However, it doesn't mention the return shape (e.g., list of strings) or any default behavior if workspaceId is omitted, though the schema covers the latter.
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% with the parameter fully explained ('optional, returns all statuses if not specified'). The description adds no additional parameter semantics beyond what the schema already provides, so 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 uses a specific verb 'Get' with a specific resource 'available task/project statuses' and scope 'for a workspace'. This clearly distinguishes it from sibling tools like motion_tasks or motion_projects.
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 usage context is implied: you would use this tool when you need statuses for tasks/projects in a workspace. However, there is no explicit when-to-use, when-not-to-use, or mention of alternatives among the sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
motion_tasksB
Manage Motion tasks - supports create, list, get, update, delete, move, unassign, and list_all_uncompleted operations
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Task name (required for create, optional for list as case-insensitive substring search) | |
| limit | No | Maximum number of tasks to return (for list and list_all_uncompleted) | |
| labels | No | Filter by labels (for list). Array of label names | |
| 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. | |
| taskId | No | Task ID (required for get/update/delete/move/unassign) | |
| 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' | |
| assignee | No | Filter by assignee name, email, or 'me' shortcut (for list and list_all_uncompleted). Resolved to an ID automatically | |
| duration | No | Minutes (as number) or 'NONE'/'REMINDER' (as string) | |
| priority | No | Filter by priority level (for list, filtered client-side): ASAP, HIGH, MEDIUM, LOW | |
| operation | Yes | Operation to perform | |
| projectId | No | Filter by project (for list) | |
| assigneeId | No | Filter by assignee (for list/list_all_uncompleted), set assignee (for create/update), or reassign (for move) | |
| description | No | Task description | |
| projectName | No | Project name (alternative to projectId) | |
| workspaceId | No | Filter by workspace (for list) | |
| 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. | |
| workspaceName | No | Filter by workspace name (for list) | |
| 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. | |
| includeAllStatuses | No | When true, returns tasks across all statuses including completed/resolved (for list). Cannot be combined with status filter. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description was expected to disclose behavioral traits, but it only lists operation names without explaining side effects, permissions, rate limits, or results. Destructive operations like delete or move are not given any cautionary or contextual 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 a single, front-loaded sentence that concisely names the resource and the supported operations. Every element is informative, and there is no redundancy or filler.
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?
This is a complex, 8-operation tool with 19 parameters and no annotations or output schema. The brief description leaves operation-specific behaviors, return formats, and safety warnings entirely to the schema, which is insufficient for a tool this broad.
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?
The input schema covers 100% of the 19 parameters with detailed descriptions, so the baseline of 3 applies. The description itself adds no parameter semantics beyond saying operations are supported, which does not exceed the schema's coverage.
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 manages Motion tasks and lists all eight supported operations (create, list, get, update, delete, move, unassign, list_all_uncompleted). This distinguishes it from sibling tools focused on schedules, statuses, projects, and other domains.
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 use for task operations via 'Manage Motion tasks' and the operation list, but it does not explicitly address when to prefer this tool over siblings like motion_search or motion_schedules, nor does it state exclusions or prerequisites. Guidance is implied rather than explicit.
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 |
|---|---|---|---|
| teamId | No | Team ID to filter users by (optional for list operation) | |
| 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) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It fails to mention that the tool is read-only (only list/current) and gives no information about permissions, side effects, or return format. The word 'manage' falsely implies mutating behavior.
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 concise sentence with no redundancy. It is front-loaded with the key resource, but the brevity sacrifices necessary detail. As conciseness, it earns a high score, though clarity suffers.
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 tool has two distinct operations with multiple optional parameters, but the description does not explain how to choose between them, how filters apply, or what the return value looks like. With no output schema and a minimal description, the agent lacks sufficient context to use the tool correctly.
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 and their meanings. However, the description adds no additional context about how parameters interact or which are required for specific operations, leaving the agent to infer from schema alone.
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 identifies the resource (users) and a general action ('manage' and 'get current user'), but 'manage' is vague and misleading since the tool only supports 'list' and 'current' operations, not full CRUD. It does not clearly distinguish the two operations or their scopes.
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, or when to use 'list' versus 'current'. The description does not mention any prerequisites, filters, or context that would help an agent decide to invoke it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
motion_workspacesB
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?
With no annotations provided, the description carries the full burden of behavioral disclosure. It does disclose that only list and get operations are supported, which implies read-only capabilities, but it does not mention potential side effects, permission requirements, or response formats. The scope is disclosed, but not deeply.
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 that conveys the essential purpose and supported operations without any wasted words. It is extremely concise and well-structured.
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 tool is simple with two parameters and no output schema, so the description is somewhat adequate. However, it does not explain what list returns (e.g., all workspaces) or what get returns, nor any error conditions, leaving gaps for an agent unfamiliar with Motion APIs.
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?
The schema already provides 100% coverage for the two parameters, with clear descriptions for 'operation' and 'workspaceId'. The description adds no additional meaning beyond what the schema states, so the baseline of 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 tool manages Motion workspaces and supports list and get operations, which distinguishes it from sibling tools like motion_tasks or motion_projects. However, the verb 'Manage' is somewhat generic, and the exact behavior of list/get is not fully elaborated.
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 no explicit guidance on when to use this tool versus alternatives, nor any exclusions or prerequisites. Usage is only implied by the resource name 'workspaces' and the operations listed, which does not sufficiently help an agent decide between this and sibling tools.
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 (tasks, schedules, statuses, projects, workspaces, users, search, comments, custom fields, recurring tasks). No two tools appear to do the same thing, and recurring tasks are clearly distinguished from general tasks.
All tool names follow a consistent pattern: motion_ followed by a plural noun (e.g., motion_tasks, motion_projects). This makes the API predictable and easy to navigate.
10 tools is well-scoped for the breadth of Motion's API, covering core resources (tasks, projects, workspaces, users), cross-cutting features (search, comments, custom fields), and specialized entities (recurring tasks) without being bloated.
The tool surface covers the main task lifecycle comprehensively (create, list, get, update, delete, move, unassign). Minor gaps exist: projects lack update/delete operations, and user management is vaguely described, but these are workable for most workflows.
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 projects, tasks, time tracking, and team collaboration through natural language.
- DartOAuthcom.dartai
AI-native project management for tasks, docs, collaboration, and agents.
- DazbenchOAuthapp.dazbench
Task management your AI agents can actually run. One line becomes a context-ready task over MCP.
Task management for people and AI agents, with scoped OAuth access to issues, projects, and docs.
130
Related MCP Servers
- AlicenseNot gradedqualityNot gradedmaintenanceBridges Motion's AI-powered calendar and task management API with LLMs via the Model Context Protocol. It enables users to manage tasks, projects, schedules, and custom fields through natural language conversation.-
- 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
- AlicenseAqualityCmaintenanceBridges Motion's AI-powered calendar and task management API with LLMs, enabling natural language management of tasks, projects, schedules, and more via the Model Context Protocol.10Apache 2.0
- AlicenseBqualityCmaintenanceBridges Motion's API with LLMs via the Model Context Protocol, so you can manage tasks, search projects, check your schedule, and more — all through natural conversation.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/mattdkonig/motion-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server