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

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 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
operationYesOperation to perform
taskIdYesTask ID to comment on or fetch comments from (required)
contentNoComment content (required for create operation)
cursorNoPagination cursor for list operation (optional)

TDQS

C2.6/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 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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose3/5

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.

Usage Guidelines2/5

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.

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

TDQS

B3/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 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.

Conciseness3/5

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.

Completeness2/5

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.

Parameters3/5

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.

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

Usage Guidelines3/5

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

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

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

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

Usage Guidelines2/5

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.

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

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

Conciseness4/5

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.

Completeness2/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 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.

Parameters3/5

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.

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

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
operationNoOperation to perform

TDQS

B3.2/5.0
Behavior3/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 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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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_statusesC

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

C2.9/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 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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

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

TDQS

C2.9/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. 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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

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

Usage Guidelines2/5

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

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

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

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose3/5

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.

Usage Guidelines2/5

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

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?

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

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

Usage Guidelines2/5

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.

  1. 10 tool updatesv2.6.0
    • First observedmotion_comments
    • First observedmotion_custom_fields
    • First observedmotion_projects
    • First observedmotion_recurring_tasks
    • First observedmotion_schedules
    • First observedmotion_search
    • First observedmotion_statuses
    • First observedmotion_tasks
    • First observedmotion_users
    • First observedmotion_workspaces

TDQS

A3.5/5.0
Disambiguation5/5

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.

Naming Consistency5/5

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.

Tool Count5/5

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.

Completeness5/5

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

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

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