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 Serveradd a high priority task to prepare the quarterly report by Friday"
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, set_default
List and inspect workspaces, or set a default workspace for subsequent calls.
motion_users
Operations: list, current
List users in a workspace or get the current authenticated user.
motion_search
Operations: content, context, smart
Cross-search tasks and projects by query with intelligent scope and priority boosting. The context operation returns a lightweight summary of your workspace (tasks, projects, schedules) — useful for giving an LLM situational awareness. The smart operation combines search with prioritized scheduling to surface what's most relevant.
{"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?
No annotations are provided, so the description carries full burden. 'Manage comments' implies both read and write capabilities, but it doesn't disclose behavioral traits like authentication needs, rate limits, pagination behavior for list operations, or side effects of create operations. The description is minimal and fails to add meaningful context beyond the basic operation verbs.
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—a single phrase—and front-loaded with the core purpose. However, it's arguably too brief, bordering on under-specified rather than efficiently informative. It earns points for zero waste but loses one point for lacking necessary elaboration given the tool's complexity.
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 annotations, no output schema, and a multi-operation tool with four parameters, the description is incomplete. It doesn't cover return values, error conditions, or operational nuances. The agent must rely heavily on the input schema and trial-and-error, making this inadequate for a tool with moderate complexity.
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 fully documents all parameters. The description adds no parameter semantics beyond what's in the schema—it doesn't explain relationships (e.g., content is only for create), constraints, or examples. Baseline 3 is appropriate as the schema does the heavy lifting, but the description doesn't compensate or enhance 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 'Manage comments on tasks' states the general purpose (verb+resource) but is vague about what 'manage' entails. It doesn't distinguish this tool from potential sibling comment tools (though none are listed), and 'manage' could encompass various operations beyond just list/create. The description provides basic orientation but lacks specificity.
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 doesn't mention prerequisites, context for choosing between list/create operations, or how it relates to sibling tools like motion_tasks. Usage is implied through parameter names but not explicitly stated, leaving the agent to infer from the schema alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
motion_custom_fieldsB
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?
With no annotations provided, the description carries the full burden of behavioral disclosure. It describes the required parameters per operation, which gives some behavioral context, but fails to disclose critical traits like whether operations are read-only or destructive, authentication needs, rate limits, error handling, or what the tool returns. For a tool with 7 operations including create/delete, 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 appropriately sized but poorly structured as a single run-on sentence with comma-separated operation lists. It's front-loaded with the core purpose, but the parameter requirements could be better organized (e.g., bullet points or clearer separation). Some redundancy exists with schema 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?
Given the tool's complexity (12 parameters, 7 operations, no annotations, no output schema), the description is incomplete. It covers parameter requirements but misses behavioral context, return values, error conditions, and operational constraints. For a multi-operation tool managing custom fields, this leaves significant gaps for an AI agent.
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 description coverage is 100%, so the schema already documents all 12 parameters thoroughly. The description adds minimal value by listing required parameters per operation, but doesn't provide additional semantic context beyond what's in the schema descriptions (e.g., explaining what 'field' types mean in practice or how 'valueId' differs from 'fieldId'). Baseline 3 is appropriate when 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 states the tool's purpose as 'Manage custom fields for tasks and projects' with a specific verb ('manage') and resource ('custom fields'), distinguishing it from sibling tools like motion_tasks or motion_projects. However, it doesn't explicitly differentiate from all siblings (e.g., motion_statuses could also involve field management).
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 implied usage guidance through the enumeration of required parameters per operation, which helps understand when to use each operation. However, it lacks explicit when-to-use or when-not-to-use statements, and doesn't mention alternatives among sibling tools (e.g., when to use this vs. motion_tasks for task-related operations).
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?
With no annotations provided, the description carries full burden for behavioral disclosure. It mentions the supported operations but doesn't describe what 'manage' entails beyond listing them. It omits critical details like authentication requirements, rate limits, error conditions, or what the operations actually return (especially problematic without an output 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?
The description is a single, efficient sentence that front-loads the core purpose. It wastes no words, though it could be slightly more structured by explicitly separating the operations or adding minimal context.
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, 3 operations) and lack of annotations and output schema, the description is insufficient. It doesn't explain return values, error handling, or operational nuances, leaving significant gaps for an AI agent to understand how to use it 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 the schema already documents all 7 parameters thoroughly. The description adds no additional parameter semantics beyond what's in the schema, but since the schema coverage is high, the baseline score 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's purpose as managing Motion projects with specific operations (create, list, get). It uses a specific verb ('manage') and resource ('Motion projects'), but doesn't distinguish it from sibling tools like motion_tasks or motion_workspaces that might also manage related resources.
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. It doesn't mention sibling tools like motion_search or motion_tasks that might overlap in functionality, nor does it specify prerequisites or constraints for the operations.
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 |
|---|---|---|---|
| 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?
With no annotations provided, the description carries the full burden of behavioral disclosure. While it mentions required parameters per operation, it doesn't disclose important behavioral traits: whether create/delete operations are destructive, what permissions are needed, what the response format looks like, or any rate limits. For a tool with write operations and no annotation coverage, 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 appropriately concise with a single sentence that efficiently communicates the core functionality and parameter requirements per operation. It's front-loaded with the main purpose and wastes no words. However, it could be slightly more structured by separating the purpose from the parameter requirements.
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, write operations) and the absence of both annotations and an output schema, the description is insufficient. It doesn't explain what the tool returns, what happens when operations succeed/fail, or important behavioral constraints. For a multi-operation tool with create/delete capabilities, this leaves critical gaps for an AI agent.
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 description coverage is 100%, so the schema already documents all 15 parameters thoroughly. The description adds minimal value beyond the schema by listing which parameters are required for each operation. However, it doesn't provide additional semantic context about parameter relationships or usage patterns that aren't already in the schema descriptions.
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's purpose: 'Manage recurring tasks' with specific operations (list, create, delete). It distinguishes itself from sibling tools like motion_tasks by focusing on recurring tasks specifically. However, it doesn't explicitly contrast with motion_tasks which might handle non-recurring 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 provides clear guidance on when to use each operation by specifying required parameters per operation (e.g., 'list: workspaceId or workspaceName'). This helps the agent understand which parameters are needed for each use case. However, it doesn't explicitly mention when NOT to use this tool or direct users to alternatives like motion_tasks for non-recurring tasks.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
motion_schedulesB
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 provided, so the description carries the full burden. It discloses that the API returns all schedules without filtering, which is useful behavioral context, but it doesn't cover other traits like authentication requirements, rate limits, error handling, or response format. The description adds some value but leaves significant gaps in transparency for a tool with no annotation coverage.
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 concise with two sentences that are front-loaded with the core purpose. It avoids unnecessary details, but the second sentence could be slightly more integrated (e.g., 'This tool retrieves all schedules, including weekly working hours and time zones, with no filtering options available.'). Overall, it's efficient with minimal waste.
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 low complexity (1 parameter, no output schema, no annotations), the description is somewhat complete by stating what it does and a key limitation. However, it lacks details on output (e.g., format or structure of returned schedules) and doesn't fully address behavioral aspects like error cases or integration with siblings, making it adequate but with clear gaps for a tool with no structured support.
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 has 100% description coverage, with the single parameter 'operation' documented as 'Operation to perform' and an enum of ['list']. The description doesn't add any meaning beyond this, such as explaining why the parameter exists or its implications. Since schema coverage is high, the baseline score of 3 is appropriate, as the description doesn't compensate but doesn't need to.
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 ('Get') and resource ('all schedules') with specific attributes ('weekly working hours and time zones'), making the purpose understandable. However, it doesn't explicitly differentiate this tool from potential sibling tools like 'motion_search' or 'motion_projects' that might also retrieve schedule-related data, preventing a perfect score.
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 minimal guidance by noting 'no filtering options,' which implies when not to use it for filtered queries, but it lacks explicit alternatives (e.g., 'use motion_search for filtered results') or context on when to prefer this tool over others like 'motion_workspaces' or 'motion_users' for schedule-related needs. No clear usage scenarios or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
motion_searchC
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 for behavioral disclosure. It mentions 'search' but doesn't clarify whether this is a read-only operation, what authentication is required, how results are returned (format, pagination), or any rate limits. For a search tool with 6 parameters, this leaves significant behavioral aspects undocumented.
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, efficient sentence that gets straight to the point with zero wasted words. It's appropriately sized for a search tool and front-loads the essential information about what the tool does.
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 search tool with 6 parameters, no annotations, and no output schema, the description is insufficiently complete. It doesn't explain what kind of search this performs (full-text, filtered), how results are structured, or provide any behavioral context. The agent would need to rely heavily on the schema alone without guidance on proper usage.
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 all parameters are documented in the schema itself. The description adds no additional parameter information beyond what's in the schema - it doesn't explain the relationship between workspaceId and workspaceName, clarify searchScope behavior, or provide query syntax examples. Baseline 3 is appropriate when 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 states the verb ('Search') and resource ('Motion tasks and projects'), making the purpose immediately understandable. However, it doesn't differentiate this search tool from other Motion tools like motion_tasks or motion_projects, which might also retrieve task/project data through different mechanisms.
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. With multiple sibling tools like motion_tasks and motion_projects that might retrieve similar data, there's no indication whether this search tool is for full-text search, filtered queries, or specific use cases. No exclusions or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
motion_statusesC
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 of behavioral disclosure. It states the action ('Get') but does not describe traits like whether this is a read-only operation, potential rate limits, authentication needs, or the format of returned data. This is a significant gap for a tool with no annotation coverage.
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, efficient sentence that directly states the tool's purpose without unnecessary words. It is appropriately sized and front-loaded, making it easy for an agent to parse quickly.
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 lack of annotations and output schema, the description is incomplete. It does not explain what 'statuses' include (e.g., types, values), how results are structured, or any error conditions, leaving gaps in understanding for effective tool 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?
Schema description coverage is 100%, with the parameter 'workspaceId' documented as optional. The description adds no additional meaning beyond the schema, such as explaining what 'statuses' entail or how they are used, so it meets the baseline for high schema coverage without compensating value.
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 ('Get') and resource ('available task/project statuses for a workspace'), making the purpose understandable. However, it does not explicitly differentiate this tool from siblings like 'motion_custom_fields' or 'motion_projects', which might also retrieve workspace-related data, so it misses the highest score.
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. It does not mention sibling tools or specific contexts for usage, such as when statuses are needed versus other workspace data, leaving the agent without clear direction.
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. Requires a schedule name. Use motion_schedules to see available schedules. Examples: 'Work Hours' or {schedule: 'Work Hours', deadlineType: 'SOFT'} | |
| 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 provided, the description carries the full burden of behavioral disclosure. While it lists operations, it doesn't describe what each operation does, their effects (e.g., delete is destructive), authentication requirements, rate limits, error handling, or response formats. For a multi-operation tool with 19 parameters, this leaves significant behavioral gaps.
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 - a single sentence that efficiently lists all supported operations. It's front-loaded with the core purpose and wastes no words. Every element (the verb, resource, and operation list) earns its place.
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 19 parameters, 8 distinct operations, no annotations, and no output schema, the description is inadequate. It doesn't explain what the tool returns, how operations differ, error conditions, or provide any behavioral context. The single-sentence description fails to address the tool's complexity despite good schema documentation.
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 description provides no parameter-specific information beyond listing operations. However, the input schema has 100% description coverage with detailed parameter documentation, including operation-specific requirements and usage notes. The description adds no value beyond what's already in the schema, meeting the baseline for 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 clearly states the tool's purpose as managing Motion tasks with specific operations (create, list, get, update, delete, move, unassign, list_all_uncompleted). It provides a verb ('manage') and resource ('Motion tasks'), but doesn't differentiate from sibling tools like motion_projects or motion_workspaces that might also manage related 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 no guidance on when to use this tool versus alternatives. It doesn't mention when to choose motion_tasks over sibling tools like motion_search for searching tasks, motion_recurring_tasks for recurring tasks, or motion_comments for task comments. No context about prerequisites or exclusions is provided.
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?
With no annotations provided, the description carries full burden for behavioral disclosure. It implies read operations ('get current user information') and possible write operations ('manage users'), but doesn't clarify what 'manage' means (e.g., permissions required, side effects, rate limits). This is a significant gap for a tool that could involve mutations, leaving the agent uncertain about its 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, efficient sentence that front-loads the core purpose. However, it could be more structured by separating the two distinct operations (list vs. current) for clarity, and 'manage users' is somewhat ambiguous, slightly reducing 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?
Given the complexity of a tool with multiple operations (including potential mutations) and no annotations or output schema, the description is incomplete. It fails to explain behavioral traits, usage context, or return values, making it inadequate for an agent to confidently invoke the tool without guesswork.
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 fully documents all 4 parameters (operation, workspaceId, workspaceName, teamId) with descriptions and constraints. The description adds no additional meaning beyond what the schema provides, such as explaining how 'manage' relates to the operation parameter. Baseline 3 is appropriate when 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 'Manage users and get current user information' states a general purpose but is vague about what 'manage' entails (e.g., create, update, delete) and doesn't specify the resource scope (e.g., workspace users). It distinguishes from siblings like motion_tasks or motion_projects by focusing on users, but lacks specificity compared to a more precise verb+resource statement.
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 mentions two operations ('manage users' and 'get current user information'), but it doesn't explain when to choose list vs. current, or how it relates to other user-related tools (none listed as siblings). This leaves the agent without explicit context for selection.
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?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states 'manage' and 'supports list and get operations,' implying read-only or retrieval functions, but doesn't clarify if 'manage' includes mutations (e.g., create/update/delete), which could be misleading. It lacks details on permissions, rate limits, or response formats, leaving significant gaps in understanding the tool's 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 highly concise and front-loaded: a single sentence that directly states the tool's purpose and supported operations. There's no wasted language or redundancy, making it efficient for an agent to parse and understand quickly.
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 (managing workspaces with multiple operations), lack of annotations, and no output schema, the description is incomplete. It doesn't cover behavioral aspects like authentication requirements, error handling, or what data is returned, which are crucial for effective tool invocation. This leaves the agent with insufficient context to use the tool reliably.
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 both parameters ('operation' and 'workspaceId') with descriptions and enum values. The description adds no additional meaning beyond what's in the schema, such as explaining the context of 'list' vs. 'get' operations or workspace ID formats. Baseline 3 is appropriate as the schema handles 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 states the tool's purpose: 'Manage Motion workspaces - supports list and get operations.' It specifies the verb ('manage') and resource ('Motion workspaces'), and details the supported operations. However, it doesn't explicitly differentiate from sibling tools like 'motion_projects' or 'motion_users', which might also manage related resources, keeping it from a perfect score.
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 minimal guidance: it mentions 'list and get operations' but doesn't specify when to use this tool versus alternatives like 'motion_search' or other sibling tools. There's no context on prerequisites, such as authentication needs or workspace access, leaving the agent with little direction on appropriate usage scenarios.
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.6.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 has a clearly distinct purpose targeting specific Motion resources like comments, custom_fields, projects, recurring_tasks, schedules, search, statuses, tasks, users, and workspaces. There is no overlap in functionality, making it easy for an agent to select the correct tool for any operation.
All tools follow a consistent 'motion_' prefix with a descriptive noun (e.g., motion_comments, motion_custom_fields, motion_projects). This uniform naming pattern enhances predictability and readability across the entire tool set.
With 10 tools, the server is well-scoped for managing Motion's project and task management domain. Each tool covers a distinct aspect (e.g., tasks, projects, users, custom fields), ensuring comprehensive coverage without being overwhelming or sparse.
The tool set provides complete CRUD/lifecycle coverage for Motion's core resources, including tasks (create, list, get, update, delete, move, unassign), projects (create, list, get), and supporting operations like custom fields, comments, users, workspaces, and search. There are no obvious gaps that would hinder agent workflows.
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
AI-native project management for tasks, docs, collaboration, and agents.
- SaltaOAuthapp.getsalta
Mobile-first AI life planner — turn goals into daily, synced tasks from your AI assistant.
- AgentdaOAuthcom.myagentda
Agent-native task management: your AI agent is the interface. Delegate to anyone by email.
ADHD system of record for agents: tasks, goals, loops, calendar, focus stats.
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
- AlicenseBqualityCmaintenanceBridges Motion's API with LLMs via the Model Context Protocol, enabling natural language task, project, and schedule management.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
Appeared in Searches
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/sergiolopez94/motion-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server