Skip to main content
Glama

NPM Version License

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 motionmcp

Tip: npx always 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

Deploy to Cloudflare Workers

After deploy, set your secrets in the Cloudflare dashboard (Workers > your worker > Settings > Variables):

  • MOTION_API_KEY — your Motion API key

  • MOTION_MCP_SECRET — a random string (generate with openssl 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:deploy

Your MCP URL will be:

https://motion-mcp-server.YOUR_SUBDOMAIN.workers.dev/mcp/YOUR_SECRET

Connecting from Claude

  1. Go to claude.ai > Settings > Connectors

  2. Add your MCP URL

  3. The server syncs automatically to the Claude mobile app

Connecting from ChatGPT

  1. Go to ChatGPT Settings > Connectors

  2. 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-key

When using npx, prefer the inline environment variable since npx won't read a local .env file.

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 motionmcp

Tools 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.

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 stderr in JSON format

  • Check for missing keys, workspace/project names, and permissions

  • Use motion_workspaces (list) and motion_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 tools
motion_commentsC

Manage comments on tasks

ParametersJSON Schema
NameRequiredDescriptionDefault
cursorNoPagination cursor for list operation (optional)
taskIdYesTask ID to comment on or fetch comments from (required)
contentNoComment content (required for create operation)
operationYesOperation to perform

TDQS

C2.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must fully disclose behavior, but it only says 'manage comments.' It doesn't mention side effects of creating comments, permission requirements, or return formats. This is a significant gap for a tool with mutating and listing capabilities.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise at four words, front-loaded, and free of unnecessary words. However, the brevity sacrifices specificity, making it less helpful than a slightly longer, more informative description.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool supports two operations (list and create) with pagination, but the description doesn't explain how the operation parameter controls behavior or what the response contains. No output schema exists to compensate, so the description is insufficient for an agent to use the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema provides descriptions for all four parameters (operation, taskId, content, cursor), achieving 100% coverage. The description adds no extra parameter meaning beyond the schema, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the tool deals with comments on tasks, which is a clear resource, but uses the vague verb 'manage' instead of specifying concrete operations like list or create. It doesn't explicitly distinguish from sibling tools, though the name and resource imply a unique focus on comments.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No usage guidance is provided. The description doesn't indicate when to use this tool instead of other motion_* tools, nor when to choose the 'list' operation versus 'create'. This leaves the agent without context for selecting this tool.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoField name. Required for: create.
fieldNoField type. Required for: create. Also needed for add_to_project/add_to_task when providing a non-null value.
valueNoField value to set. Optional for add_to_project/add_to_task. When provided and non-null, the field param (type) is also required.
taskIdNoTask ID. Required for: add_to_task, remove_from_task.
fieldIdNoCustom field definition ID. Required for: delete, add_to_project, add_to_task. For remove operations, use valueId instead.
optionsNoOption labels. Required for: create when field is select or multiSelect.
valueIdNoCustom field value assignment ID (not the field definition ID). Required for: remove_from_project, remove_from_task.
requiredNoWhether field is required on tasks/projects.
operationYesOperation to perform
projectIdNoProject ID. Required for: add_to_project, remove_from_project.
workspaceIdNoWorkspace ID. Required for: list, create, delete.
workspaceNameNoWorkspace name (alternative to workspaceId). Required for: list, create, delete.

TDQS

B3.3/5.0
Behavior2/5

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 does not explain the side effects of operations (e.g., deleting a custom field definition vs. removing an assignment), what happens on success/failure, or any permissions needed. The description only lists required parameters, which is already in the schema. This leaves significant ambiguity about the tool's actual behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single dense run-on sentence containing all required parameter mappings. It's concise in that there's no fluff, but the structure is poor—it would be far more readable as a bulleted list. The front-loaded purpose statement is good, but the subsequent list is hard to parse quickly. Scores 3 because every piece of information is relevant, but the layout hinders comprehension.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

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 prioritizes parameter requirements but omits the higher-level context of what each operation does and what the user should expect. There is no output schema, so the description should explain that list returns custom field definitions, create creates a new field, etc. The operation names give some hint, but behaviors like the difference between fieldId and valueId are not explained. The description is complete for parameter validation but not for operational understanding.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds value by consolidating the required parameters per operation, but it introduces no new semantic meaning beyond what the schema already states. For example, it repeats that 'options[]' is required for select/multiSelect, which is already in the schema. Thus, it meets the baseline but does not exceed it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

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 custom fields for tasks and projects.' It enumerates seven distinct operations (list, create, delete, add_to_project, etc.), giving a specific verb+resource scope. While it doesn't explicitly differentiate from sibling tools, the focus on custom fields is unique and the operation list makes the tool's role clear.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides operation-specific required parameter lists, which serves as clear when-to-use guidance for each operation. For example, 'create: workspaceId/workspaceName + name + field (type); options[] also required for select/multiSelect.' This helps an agent understand exactly what is needed for each scenario. However, it does not mention when to prefer this tool over siblings or provide exclusion criteria, so it's not a 5.

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

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoProject name (required for create)
operationYesOperation to perform
projectIdNoProject ID (required for get operation)
descriptionNoProject description
workspaceIdNoWorkspace ID
allWorkspacesNoList projects from all workspaces (for list operation only). When true and no workspace is specified, returns projects from all workspaces.
workspaceNameNoWorkspace name (alternative to ID)

TDQS

C2.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description must disclose behavioral traits, but it only lists operation names without explaining side effects, permissions, or result characteristics. It does not indicate, for example, whether create is idempotent, whether list returns all workspaces by default, or whether get requires a specific ID — information an agent needs to use the tool safely.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence and contains no fluff, but it is underspecified for a multi-operation tool. The word 'Manage' is vague filler, and the enumeration of operations is useful but could be more structured (e.g., 'Create, list, or retrieve Motion projects'). It is concise but not optimally informative.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool supports three distinct operations with 7 parameters and no output schema, the description is notably incomplete. It fails to explain the semantics of each operation (e.g., which parameters are required for create vs. get), the relationship to workspaces, or any behavioral expectations. The schema covers parameter details, but the high-level action context is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% with each of the 7 parameters having a description, so the baseline is 3. The tool description adds no parameter-level information beyond what the schema already provides, but it doesn't need to since the schema is fully self-descriptive.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the tool manages Motion projects and enumerates the supported operations (create, list, get), which clearly identifies the resource and core capabilities. However, 'Manage' is somewhat vague and doesn't distinguish between the operations beyond listing them, so it lacks the precision of a strong purpose statement.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus alternatives or how to choose among the create, list, and get operations. The description does not mention sibling tools like motion_tasks or provide any exclusions/prerequisites, leaving the agent to infer usage entirely from the schema.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoTask name. Required for: create.
durationNoTask duration in minutes or REMINDER
priorityNoTask priority (default: MEDIUM)
scheduleNoSchedule name (default: Work Hours)
frequencyNoFrequency configuration (required for create)
idealTimeNoIdeal time in HH:mm format
operationYesOperation to perform
projectIdNoProject ID.
assigneeIdNoUser ID to assign the recurring task to. Required for: create.
startingOnNoStart date (ISO 8601 format)
descriptionNoTask description.
workspaceIdNoWorkspace ID. Required for: list, create.
deadlineTypeNoDeadline type (default: SOFT)
workspaceNameNoWorkspace name (alternative to workspaceId). Required for: list, create.
recurringTaskIdNoRecurring task ID. Required for: delete.

TDQS

B3.3/5.0
Behavior2/5

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 required parameters per operation and does not mention side effects, permissions, rate limits, reversibility of delete, return format, or any other behavioral traits. This is a significant gap for a tool that creates and deletes recurring tasks.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded with the core purpose. It uses a semi-colon-separated list to convey operation dependencies efficiently, with no redundant or filler words. Though it could be structured with bullets for readability, it is suitably concise for the amount of information it carries.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

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 frequency object, three operations, no output schema), the description covers the operation-parameter matrix but omits return behavior, error cases, and broader context. It does not explain what list returns, what create produces, or what delete affects (e.g., future occurrences). The schema fills in parameter details, but behavioral completeness is lacking.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Although the schema has 100% parameter coverage, the description adds value by grouping parameters per operation (e.g., list: workspaceId or workspaceName; create: workspaceId/workspaceName + name + assigneeId + frequency). This clarifies which parameters are needed together, which is not immediately obvious from the schema alone. The mention of frequency.type as a required sub-field is also helpful.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states 'Manage recurring tasks' with a clear resource, and the required params list enumerates the operations (list, create, delete) which define the tool's scope. It distinguishes from the likely sibling motion_tasks by focusing specifically on recurring tasks, though it does not explicitly name the alternative.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides operation-specific parameter requirements, which gives clear context for each operation. However, it does not explicitly state when to use this tool versus alternatives (e.g., motion_tasks for non-recurring tasks) or include exclusions or when-not-to-use guidance.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
operationNoOperation to perform

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the burden. It discloses that the API returns all schedules without filtering, which is useful. However, it does not explicitly confirm read-only safety, authentication needs, rate limits, or pagination, leaving modest gaps for a simple get-all tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences effectively convey the purpose and a key limitation without redundancy. The description is front-loaded with the action and resource.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter list tool with no output schema, the description captures the essential return content and unfiltered behavior. It lacks explicit details on response structure or authentication, but given the simplicity, it is nearly complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% for the single 'operation' parameter, which already has an enum and description. The tool description does not add extra parameter context, so the baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb 'Get' with the resource 'schedules' and specifies the key data returned ('weekly working hours and time zones'). This clearly differentiates 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.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies use for retrieving schedule data, but it does not explicitly state when to use this over alternatives or mention any exclusions. The note about 'no filtering options' gives some contextual limitation but lacks direct usage guidance.

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

ParametersJSON Schema
NameRequiredDescriptionDefault
workspaceIdNoWorkspace ID to get statuses for (optional, returns all statuses if not specified)

TDQS

A3.5/5.0
Behavior2/5

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. The description only says 'Get... statuses,' which implies a read operation, but it does not explicitly confirm this, mention any side effects, authentication requirements, rate limits, or what the response contains. For a tool with zero 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence that is front-loaded with the verb and resource. It contains no unnecessary words or repetition, making it highly efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has low complexity (one optional parameter, no output schema, no annotations). The description provides the basic action and target but lacks information about return format, read-only nature, or when to use it. For a simple getter, this is adequate but not comprehensive, especially given the absence of annotations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has one optional parameter (workspaceId) with a description, giving 100% schema coverage. The tool description itself adds no parameter-specific details beyond the schema. The schema fully documents the parameter, so the description does not need to compensate, earning the baseline score of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Get available task/project statuses for a workspace.' It uses a specific verb ('Get') and identifies the resource (statuses) and scope (workspace). This distinguishes it from sibling tools like motion_tasks, motion_projects, and motion_workspaces, which focus on other entities.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage when you need statuses for tasks/projects, but it does not explicitly state when to use this tool versus alternatives. There is no mention of exclusions or alternative tools. Since the purpose is clear and sibling tools are distinct, the usage context is implied but not explicitly articulated.

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

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoTask name (required for create, optional for list as case-insensitive substring search)
limitNoMaximum number of tasks to return (for list and list_all_uncompleted)
labelsNoFilter by labels (for list). Array of label names
statusNoFilter 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.
taskIdNoTask ID (required for get/update/delete/move/unassign)
dueDateNoDue 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'
assigneeNoFilter by assignee name, email, or 'me' shortcut (for list and list_all_uncompleted). Resolved to an ID automatically
durationNoMinutes (as number) or 'NONE'/'REMINDER' (as string)
priorityNoFilter by priority level (for list, filtered client-side): ASAP, HIGH, MEDIUM, LOW
operationYesOperation to perform
projectIdNoFilter by project (for list)
assigneeIdNoFilter by assignee (for list/list_all_uncompleted), set assignee (for create/update), or reassign (for move)
descriptionNoTask description
projectNameNoProject name (alternative to projectId)
workspaceIdNoFilter by workspace (for list)
autoScheduledNoAuto-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.
workspaceNameNoFilter by workspace name (for list)
targetWorkspaceIdNoTarget workspace ID (required for move operation). Move transfers a task between workspaces — project-level targeting is not supported by the Motion API.
includeAllStatusesNoWhen true, returns tasks across all statuses including completed/resolved (for list). Cannot be combined with status filter.

TDQS

C2.9/5.0
Behavior1/5

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. However, it only lists operations and does not mention side effects (e.g., deletion is permanent), required permissions, rate limits, or return behavior. For a tool that includes destructive operations like 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with front-loaded resource name and a compact list of operations. It is concise with no filler, but given the tool's complexity (19 params, 8 operations), the extreme brevity might be considered under-specification rather than effective conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has no output schema, and the description does not describe return values, error handling, or operation-specific behavior. While the schema details parameters, the overall description is too sparse to fully orient an agent on a complex task management tool with multiple operations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema provides 100% coverage with detailed descriptions for all 19 parameters, including operation-specific constraints and examples. Since schema coverage is high, the baseline is 3; the description adds no parameter-level meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly names the resource ('Motion tasks') and enumerates eight specific operations, clearly distinguishing it from sibling tools like motion_projects or motion_schedules. The verb 'Manage' is generic but the operation list provides specificity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description offers no guidance on when to use this tool versus alternatives such as motion_search or motion_comments. It merely lists operations without indicating typical use cases, prerequisites, or exclusions. The schema hints at per-operation parameter requirements, but the description itself is silent.

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

ParametersJSON Schema
NameRequiredDescriptionDefault
teamIdNoTeam ID to filter users by (optional for list operation)
operationYesOperation to perform
workspaceIdNoWorkspace ID (optional for list operation, ignored for current)
workspaceNameNoWorkspace name (alternative to workspaceId, ignored for current)

TDQS

C2.5/5.0
Behavior2/5

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 calls the tool 'manage users' which implies mutating operations, but the schema only exposes read-only operations (list, current). It doesn't disclose permissions, side effects, or return behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single short sentence, which is concise, but it lacks substance and doesn't effectively use its brevity to communicate key information. It's not poorly structured, but it's under-specified.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has two distinct operations and multiple optional parameters, but the description provides no context for these. No output schema exists, so the description should clarify what to expect from 'list' and 'current', but it doesn't.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds no parameter-level meaning beyond the schema; it doesn't explain operation selection or parameter relationships.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses the vague verb 'manage' which suggests a broader CRUD scope than the actual operations (list and current). It does mention 'get current user information' which is specific, but overall it doesn't clearly define the tool's scope or distinguish it from sibling motion tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives or when to choose 'list' vs 'current'. The description provides no context about selection, prerequisites, or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

motion_workspacesC

Manage Motion workspaces - supports list and get operations

ParametersJSON Schema
NameRequiredDescriptionDefault
operationYesOperation to perform
workspaceIdNoWorkspace ID (required for get operation)

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and only hints that operations are read-oriented ('list', 'get'). It does not disclose what happens during list vs get, permissions, or output structure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, front-loaded sentence with no redundant content. It efficiently states the resource and supported operations.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has two parameters, no output schema, and no annotations, the description is too sparse. It lacks details about return values, required parameters for each operation, and potential errors.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds minimal value beyond schema, only noting that workspaceId is required for 'get', while 'operation' is simply described as 'Operation to perform'.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the resource (Motion workspaces) and explicitly lists supported operations ('list and get'). However, 'Manage' is a generic verb; the operation list provides the real clarity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool compared to siblings like motion_projects or motion_tasks. It does not state required conditions or alternative tool suggestions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

A3.5/5.0
Disambiguation5/5

Each tool targets a distinct entity (tasks, projects, workspaces, users, schedules, search, comments, custom fields, recurring tasks, statuses). Even with overlapping concepts like tasks and recurring tasks, descriptions clarify the boundary. No two tools appear to serve the same purpose.

Naming Consistency5/5

All tools follow the consistent 'motion_<plural_noun>' pattern in snake_case. The prefix 'motion_' unifies the set, and each resource name is intuitive. There are no stylistic deviations or mixed conventions.

Tool Count5/5

Ten tools is appropriate for a project management API covering major resources and capabilities. The count is neither excessive nor thin, and each tool represents a meaningful domain. Some tools bundle many operations, but this is reasonable.

Completeness4/5

The surface covers core entities: tasks, projects, workspaces, users, schedules, search, comments, custom fields, recurring tasks, and statuses. However, project management is incomplete with only create/list/get for projects, missing update/delete. Also, user management might lack full CRUD, but it's less critical. Overall, minor gaps but most workflows are covered.

Maintenance

ActivityMaintained
ResponsivenessSyncing

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

Related MCP Servers

Latest Blog Posts

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/renzocarletti-lang/motion-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server