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
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.9/5.0
Behavior2/5

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

With no annotations, the description must disclose behaviors beyond the schema. 'Manage' is vague and doesn't specify that only list and create operations are supported, nor does it mention any side effects or requirements.

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, concise sentence with no fluff. It front-loads the core purpose, though it could be slightly more specific.

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 only two operations and no output schema. The description adequately covers the purpose but lacks details like supported operations (list/create) and absence of update/delete, which limits completeness.

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 already provides 100% description coverage for all parameters. The description adds no extra meaning beyond what the schema states, so 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 'Manage comments on tasks' clearly states the tool's resource (comments) and action (manage), which is specific enough to distinguish 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 Guidelines2/5

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

No guidance is given on when to use this tool instead of alternatives. The description lacks context about prerequisites, limitations (e.g., only list and create, not update/delete), or comparison with siblings.

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

motion_custom_fieldsA

Manage custom fields for tasks and projects. Required params per operation: list: workspaceId or workspaceName. create: workspaceId/workspaceName + name + field (type); options[] also required for select/multiSelect. delete: workspaceId/workspaceName + fieldId. add_to_project: projectId + fieldId. remove_from_project: projectId + valueId. add_to_task: taskId + fieldId. remove_from_task: taskId + valueId.

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

A3.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. It does not disclose side effects (e.g., deletion affecting tasks/projects), destructive nature, rate limits, or auth requirements. The description only lists operations without behavioral context.

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 that efficiently conveys purpose and per-operation requirements. It is front-loaded with the main purpose. While dense, it earns its place with essential grouping information.

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?

Given the tool's complexity (12 params, 7 operations), the description covers required parameters per operation. No output schema exists, but for a CRUD management tool, the description is reasonably complete. It could mention return values but is adequate.

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?

The schema has 100% description coverage for all 12 parameters. The description adds value by grouping required parameters per operation, clarifying conditional requirements (e.g., options for select/multiSelect), which goes beyond the schema's individual parameter descriptions.

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 manages custom fields for tasks and projects, and lists specific operations. This differentiates it from sibling tools like motion_tasks or motion_projects which focus on different resources.

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 explicit required parameters for each operation (list, create, delete, etc.), guiding the agent on what to provide. However, it does not explicitly state when to use this tool vs alternatives or when not to use it.

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

motion_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, the description carries full burden but only states 'supports create, list, and get operations,' which the schema already declares via the operation enum. No side effects, auth needs, or behavioral constraints (e.g., idempotency, pagination) are disclosed.

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, very concise. However, it could be restructured to front-load the operation types more prominently. No wasted words, but slightly under-specified for action guidance.

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 output schema and annotations, the description omits return value structure, prerequisites (e.g., authentication), and parameter dependencies (e.g., projectId required for get). Key contextual details like the effect of allWorkspaces are left to the schema, which the description should echo.

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% with each parameter described, so the description adds no additional semantics. It does not clarify the interaction between parameters (e.g., workspaceId vs workspaceName, or when allWorkspaces applies), meeting the baseline but not exceeding 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 names the resource 'Motion projects' and lists three operations (create, list, get), making the verb-object purpose clear. However, it does not differentiate from sibling tools like motion_tasks or motion_users, missing a chance to specify scope.

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 siblings (e.g., motion_tasks for tasks, motion_comments for comments). No prerequisites or alternatives are mentioned, leaving the agent without decision support.

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

motion_recurring_tasksA

Manage recurring tasks. Required params per operation: list: workspaceId or workspaceName. create: workspaceId/workspaceName + name + assigneeId + frequency (with frequency.type). delete: recurringTaskId.

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

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 bears full responsibility for disclosing behavioral traits. It only states the tool manages recurring tasks and lists required params. There is no mention of side effects, error conditions, idempotency, or response behavior, leaving significant 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 exceptionally concise: two sentences. The first sentence sets the scope, the second lists required params per operation. No wasted words, and important information is front-loaded.

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 15 parameters, a nested object (frequency), and no output schema. The description only covers required parameters per operation, omitting all optional parameters, default values, and any behavioral context. For a tool of this complexity, more guidance is needed.

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?

The input schema has 100% description coverage, so the baseline is 3. The description adds value by grouping required parameters by operation (list, create, delete), which provides a semantic structure beyond individual parameter 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 it manages recurring tasks, which is a specific resource distinct from sibling tools like motion_tasks. It lists the supported operations (list, create, delete), making the verb-resource relationship clear. However, it does not explicitly differentiate from siblings, so it gets a 4.

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 explicit required parameters for each operation, helping the agent understand what inputs are necessary. It does not give guidance on when not to use the tool or mention alternatives, but the per-operation breakdown is clear and useful.

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

A4/5.0
Behavior3/5

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

No annotations are provided, so the description must carry the full burden. It discloses the read-only nature ('Get') and lack of filtering, but does not mention authentication, rate limits, or return format. It is adequate for a simple list endpoint.

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 concise sentences that front-load the purpose and provide a key constraint (no filtering). Every sentence adds value without extraneous detail.

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 tool with one enum parameter and no output schema, the description is thorough. It explains the purpose and the lack of filtering, leaving little ambiguity. Minor omission: no mention of return structure, but the tool is straightforward.

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 only parameter 'operation' is fully described in the schema with an enum of 'list'. The description adds no additional meaning, so the baseline of 3 is appropriate given 100% schema coverage.

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 'Get all schedules' and specifies the content ('weekly working hours and time zones'), distinguishing it from sibling tools that handle comments, projects, etc.

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 context that the API returns all schedules with no filtering options, guiding the agent to use this for unfiltered retrieval. It lacks explicit when-not-to-use guidance, but the simplicity of the single operation makes it adequate.

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.7/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 disclosure, but it only states the basic function. It does not disclose whether the operation is read-only, the format of returned data, or any side effects, leaving the agent with insufficient behavioral context.

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 sentence with no fluff. Every word contributes to the purpose, and it 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.

Completeness3/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 a single optional parameter. The description is adequate for a simple retrieval tool but lacks details about the return structure or any behavior when no workspaceId is provided (beyond what the schema says).

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 already describes the single optional parameter with 100% coverage. The description adds no additional meaning beyond the schema's own description of the parameter, so it meets the baseline but does not enhance understanding.

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 verb 'Get' and the resource 'available task/project statuses', unambiguously defining the tool's purpose. It distinguishes itself from sibling tools like motion_tasks or motion_projects by focusing specifically on statuses.

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 implies the tool should be used when statuses for a workspace are needed, but it does not explicitly state when not to use it or mention alternative tools. However, the context of the tool name and sibling list makes the usage scenario fairly clear.

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. 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.
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.8/5.0
Behavior2/5

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

No annotations exist, and the description only lists operations without revealing behavioral traits like side effects (creation/deletion/mutation), authentication requirements, rate limits, or data consistency guarantees. For a tool with destructive operations, this is insufficient.

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, which is concise but lacks structure. It does not front-load the most critical information (e.g., operation dispatch) or organize content for quick scanning.

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 19 parameters and no output schema, the description fails to explain return values, pagination, or error handling. It leaves significant information gaps that the agent must infer from the schema alone.

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?

Despite 100% schema description coverage, the tool's description adds no value beyond the schema's parameter details. Baseline 3 is appropriate as the schema provides adequate semantic information but the description does not augment 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 lists eight specific operations (create, list, get, update, delete, move, unassign, list_all_uncompleted) clearly indicating this tool manages Motion tasks. While 'manage' is broad, the enumerated operations provide clear purpose and distinguish it from sibling tools focused on specific entity types.

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 such as motion_statuses for status values or motion_schedules for scheduling. There are no 'when not to use' instructions or references to sibling tools for context.

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

motion_usersC

Manage users and get current user information

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.9/5.0
Behavior2/5

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

The description lacks annotations and uses 'manage', which may imply mutability, but the schema only shows read-only operations (list, current). The description does not clarify behavior beyond the schema, such as the fact that workspaceId is ignored for 'current'.

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 concise sentence. It is front-loaded and not verbose, though it could be more specific without waste.

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 output schema and the presence of multiple optional parameters, the description should explain the distinction between operations and parameter applicability. It fails to provide enough context for correct 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 coverage is 100%, so the description does not need to add parameter details. It adds no additional meaning beyond the schema, but baseline 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 'Manage users and get current user information' indicates it deals with users, distinguishing it from sibling tools. However, 'manage' is broad and doesn't specify that the tool only supports list and current operations, missing a precise verb-resource combination.

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 'list' versus 'current', or how to select between workspaceId and workspaceName for the list operation. There is no mention of alternatives or when not to use this tool.

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 must disclose behavior. It only mentions 'manage' and 'list/get', but does not clarify that these are read-only operations, whether they require authentication, or any side effects. The term 'manage' may misleadingly imply write 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 a single sentence that directly states the tool's purpose. It is front-loaded but could be slightly more informative without becoming verbose. No redundant words.

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 absence of an output schema and annotations, the description is too minimal. It does not explain the return structure, error conditions, or any behavioral details beyond the operations. For a tool with two parameters, it lacks essential context.

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 extra context about parameters (e.g., workspaceId format, valid values beyond enum). The schema already defines operation as an enum and workspaceId as a string.

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 resource (Motion workspaces) and the operations supported (list and get). The verb 'Manage' is somewhat generic, but the explicit mention of operations compensates. It differentiates from sibling tools that handle different resources (e.g., motion_tasks, 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 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 or when to choose list versus get. The description does not specify prerequisites, context, or exclusions. Users must infer usage from the operation enum alone.

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.8.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 targets a distinct resource (comments, custom fields, projects, etc.) with clear descriptions, making it easy for an agent to select the correct tool.

Naming Consistency5/5

All tools follow a consistent motion_<resource> snake_case pattern, and descriptions use uniform verb styles like 'Manage', 'Get', or 'Search'.

Tool Count5/5

With 10 tools covering core project management resources (tasks, projects, users, etc.), the count is well-suited for the domain without being overwhelming or sparse.

Completeness3/5

The tool set covers CRUD for tasks but misses update/delete for projects and recurring tasks, leaving noticeable gaps that agents may need to work around.

Maintenance

ActivityInactive
ResponsivenessNo issues

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

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