{
  "id": "10-motion",
  "slug": "motion",
  "normalized_name": "motion",
  "name": "Motion",
  "vendor_url": "usemotion.com",
  "category": "scheduling-routing",
  "what_it_does": "AI-driven work-management app that auto-schedules a user's tasks, projects, and meetings onto their calendar around priorities and deadlines, bundled with note-taking and document tools.",
  "ai_features": "Genuine, long-standing optimization algorithm - constraint-based task auto-scheduling that places and reshuffles tasks around existing meetings and deadlines; this is Motion's original scheduling engine, not LLM-based. Newer vendor-marketed features (AI Project Manager, AI Task Manager, AI Calendar Assistant, AI Meeting Notetaker, AI Docs Assistant, AI Chat) are plausibly LLM-backed, especially notetaking/summarization, but not independently verified against a technical teardown - treat as vendor-stated.",
  "mcp_status": "community",
  "mcp_url": "https://github.com/RF-D/motion-mcp (one of several competing unofficial servers; also github.com/devondragon/MotionMCP, github.com/h3ro-dev/motion-mcp-server, github.com/christopher-czaban/motion-mcp-server, github.com/Identityex/use-motion-mcp-server) - the RF-D repo states plainly: \"This is a community-built integration, not an official Motion product.\"",
  "mcp_auth": "API key (MOTION_API_KEY from Motion Settings -> API), per community repos. Rate limits reported at 12 req/min for individual accounts, 120 req/min for team accounts.",
  "api_gate": "paid - Motion has no free tier at all (Pro AI $19/seat/mo, Business AI $29/seat/mo are the only listed plans); API access requires an API key issued to a paid account.",
  "revops_role": "Personal/individual-rep calendar-and-task auto-scheduler - the \"how does my day get built\" layer for an AE or rep, not a prospect-facing booking tool.",
  "tier": "RESEARCHED",
  "last_checked": "2026-08-24",
  "sources": "https://usemotion.com, https://www.usemotion.com/pricing, https://www.usemotion.com/help, https://api-docs.usemotion.com/, https://docs.usemotion.com/, https://github.com/RF-D/motion-mcp, https://mcp.so/servers/motion-mcp-server",
  "notes": "No official MCP found despite an actively maintained vendor REST API and dev docs - the MCP ecosystem here is entirely community-built and fragmented across 5+ competing unofficial servers, a maturity gap relative to Reclaim/Calendly/Cal.com.",
  "mcp_status_bucket": "community",
  "api_gate_bucket": "paid",
  "mcp_urls": [
    "https://github.com/RF-D/motion-mcp"
  ],
  "source_urls": [
    "https://usemotion.com",
    "https://www.usemotion.com/pricing",
    "https://www.usemotion.com/help",
    "https://api-docs.usemotion.com/",
    "https://docs.usemotion.com/",
    "https://github.com/RF-D/motion-mcp",
    "https://mcp.so/servers/motion-mcp-server"
  ],
  "source_annotations": [],
  "vendor_domain": "usemotion.com",
  "display_name": "Motion",
  "docs_url": null,
  "jobs": [
    "summarize-meeting",
    "read-calendar-availability"
  ],
  "jobs_tagged_by": "machine-pass",
  "jobs_tagged_on": "2026-08-25",
  "github_url": null,
  "github_stars": null,
  "github_last_commit": null,
  "github_archived": null,
  "github_fetched_on": null,
  "github_candidates": [
    "https://github.com/RF-D/motion-mcp",
    "https://github.com/RF-D/motion-mcp"
  ],
  "docs_digest": null,
  "docs_last_crawled": null,
  "submission": null,
  "mcp_tools": [
    {
      "name": "motion_add_custom_field_to_project",
      "description": "Add a custom field value to a project",
      "required_params": [],
      "evidence": "source",
      "repo_party": "third-party",
      "source_party": null,
      "risk": "write"
    },
    {
      "name": "motion_add_custom_field_to_task",
      "description": "Add a custom field value to a task",
      "required_params": [],
      "evidence": "source",
      "repo_party": "third-party",
      "source_party": null,
      "risk": "write"
    },
    {
      "name": "motion_complete_task",
      "description": "Mark a task as completed",
      "required_params": [],
      "evidence": "source",
      "repo_party": "third-party",
      "source_party": null,
      "risk": "read"
    },
    {
      "name": "motion_create_comment",
      "description": "Add a new comment to a task",
      "required_params": [],
      "evidence": "source",
      "repo_party": "third-party",
      "source_party": null,
      "risk": "write"
    },
    {
      "name": "motion_create_custom_field",
      "description": "Create a new custom field",
      "required_params": [],
      "evidence": "source",
      "repo_party": "third-party",
      "source_party": null,
      "risk": "write"
    },
    {
      "name": "motion_create_project",
      "description": "Create a new project in Motion",
      "required_params": [],
      "evidence": "source",
      "repo_party": "third-party",
      "source_party": null,
      "risk": "write"
    },
    {
      "name": "motion_create_recurring_task",
      "description": "Create a new recurring task",
      "required_params": [],
      "evidence": "source",
      "repo_party": "third-party",
      "source_party": null,
      "risk": "write"
    },
    {
      "name": "motion_create_task",
      "description": "Create a new task in Motion",
      "required_params": [],
      "evidence": "source",
      "repo_party": "third-party",
      "source_party": null,
      "risk": "write"
    },
    {
      "name": "motion_delete_comment",
      "description": "Delete a comment permanently",
      "required_params": [],
      "evidence": "source",
      "repo_party": "third-party",
      "source_party": null,
      "risk": "write"
    },
    {
      "name": "motion_delete_project",
      "description": "Delete a project permanently",
      "required_params": [],
      "evidence": "source",
      "repo_party": "third-party",
      "source_party": null,
      "risk": "write"
    },
    {
      "name": "motion_delete_recurring_task",
      "description": "Delete a recurring task permanently",
      "required_params": [],
      "evidence": "source",
      "repo_party": "third-party",
      "source_party": null,
      "risk": "write"
    },
    {
      "name": "motion_delete_task",
      "description": "Delete a task permanently",
      "required_params": [],
      "evidence": "source",
      "repo_party": "third-party",
      "source_party": null,
      "risk": "write"
    },
    {
      "name": "motion_get_comment",
      "description": "Get details of a specific comment",
      "required_params": [],
      "evidence": "source",
      "repo_party": "third-party",
      "source_party": null,
      "risk": "read"
    },
    {
      "name": "motion_get_current_user",
      "description": "Get information about the currently authenticated user",
      "required_params": [],
      "evidence": "source",
      "repo_party": "third-party",
      "source_party": null,
      "risk": "read"
    },
    {
      "name": "motion_get_project",
      "description": "Get detailed information about a specific project",
      "required_params": [],
      "evidence": "source",
      "repo_party": "third-party",
      "source_party": null,
      "risk": "read"
    },
    {
      "name": "motion_get_recurring_task",
      "description": "Get details of a specific recurring task",
      "required_params": [],
      "evidence": "source",
      "repo_party": "third-party",
      "source_party": null,
      "risk": "read"
    },
    {
      "name": "motion_get_schedule",
      "description": "Get schedule information for a user within a date range",
      "required_params": [],
      "evidence": "source",
      "repo_party": "third-party",
      "source_party": null,
      "risk": "write"
    },
    {
      "name": "motion_get_task",
      "description": "Get detailed information about a specific task",
      "required_params": [],
      "evidence": "source",
      "repo_party": "third-party",
      "source_party": null,
      "risk": "read"
    },
    {
      "name": "motion_get_user",
      "description": "Get information about a specific user by ID",
      "required_params": [],
      "evidence": "source",
      "repo_party": "third-party",
      "source_party": null,
      "risk": "read"
    },
    {
      "name": "motion_get_workspace",
      "description": "Get details of a specific workspace by ID",
      "required_params": [],
      "evidence": "source",
      "repo_party": "third-party",
      "source_party": null,
      "risk": "read"
    },
    {
      "name": "motion_list_comments",
      "description": "List all comments for a specific task",
      "required_params": [],
      "evidence": "source",
      "repo_party": "third-party",
      "source_party": null,
      "risk": "read"
    },
    {
      "name": "motion_list_custom_fields",
      "description": "List all custom fields, optionally filtered by workspace",
      "required_params": [],
      "evidence": "source",
      "repo_party": "third-party",
      "source_party": null,
      "risk": "read"
    },
    {
      "name": "motion_list_projects",
      "description": "List all projects, optionally filtered by workspace",
      "required_params": [],
      "evidence": "source",
      "repo_party": "third-party",
      "source_party": null,
      "risk": "read"
    },
    {
      "name": "motion_list_recurring_tasks",
      "description": "List all recurring tasks, optionally filtered by workspace",
      "required_params": [],
      "evidence": "source",
      "repo_party": "third-party",
      "source_party": null,
      "risk": "read"
    },
    {
      "name": "motion_list_tasks",
      "description": "List tasks with optional filters. Supports pagination via cursor.",
      "required_params": [],
      "evidence": "source",
      "repo_party": "third-party",
      "source_party": null,
      "risk": "read"
    },
    {
      "name": "motion_list_users",
      "description": "List all users, optionally filtered by workspace",
      "required_params": [],
      "evidence": "source",
      "repo_party": "third-party",
      "source_party": null,
      "risk": "read"
    },
    {
      "name": "motion_list_workspaces",
      "description": "List all workspaces accessible to the authenticated user",
      "required_params": [],
      "evidence": "source",
      "repo_party": "third-party",
      "source_party": null,
      "risk": "read"
    },
    {
      "name": "motion_move_task",
      "description": "Move a task to a different project",
      "required_params": [],
      "evidence": "source",
      "repo_party": "third-party",
      "source_party": null,
      "risk": "write"
    },
    {
      "name": "motion_remove_custom_field_from_task",
      "description": "Remove a custom field value from a task",
      "required_params": [],
      "evidence": "source",
      "repo_party": "third-party",
      "source_party": null,
      "risk": "write"
    },
    {
      "name": "motion_uncomplete_task",
      "description": "Mark a task as not completed",
      "required_params": [],
      "evidence": "source",
      "repo_party": "third-party",
      "source_party": null,
      "risk": "read"
    },
    {
      "name": "motion_update_comment",
      "description": "Update the content of an existing comment",
      "required_params": [],
      "evidence": "source",
      "repo_party": "third-party",
      "source_party": null,
      "risk": "write"
    },
    {
      "name": "motion_update_project",
      "description": "Update an existing project",
      "required_params": [],
      "evidence": "source",
      "repo_party": "third-party",
      "source_party": null,
      "risk": "write"
    },
    {
      "name": "motion_update_recurring_task",
      "description": "Update an existing recurring task",
      "required_params": [],
      "evidence": "source",
      "repo_party": "third-party",
      "source_party": null,
      "risk": "write"
    },
    {
      "name": "motion_update_task",
      "description": "Update an existing task",
      "required_params": [],
      "evidence": "source",
      "repo_party": "third-party",
      "source_party": null,
      "risk": "write"
    }
  ],
  "mcp_tool_count": 34,
  "mcp_tools_evidence": "source",
  "mcp_tools_repo": "RF-D/motion-mcp",
  "mcp_tools_repo_party": "third-party",
  "mcp_catalog_shape": "fixed",
  "mcp_catalog_note": null,
  "mcp_tools_fetched_on": "2026-09-27",
  "cli_status": "none-found",
  "cli_party": null,
  "cli_binary": null,
  "cli_install": [],
  "cli_login": null,
  "cli_commands_seen": [],
  "cli_docs_url": null,
  "cli_repo": null,
  "cli_packages": [],
  "cli_evidence": null,
  "cli_checked_on": "2026-09-27",
  "github_org": null,
  "github_org_status": "unresolved",
  "github_org_url": null,
  "github_org_evidence": {
    "rule": null,
    "reason": "github candidates were seen but none passed the evidence rules",
    "candidates_rejected": [
      {
        "login": "RF-D",
        "from": "rule 2",
        "type": "User",
        "website": null,
        "rejected": "website (none) does not match usemotion.com"
      },
      {
        "login": "motion",
        "from": "rule 3 (Motion)",
        "type": "Organization",
        "website": "https://motion.io",
        "rejected": "website motion.io does not match usemotion.com"
      },
      {
        "login": "motiondivision",
        "from": "rule 3 (Motion)",
        "type": "Organization",
        "website": "https://motion.dev",
        "rejected": "website motion.dev does not match usemotion.com"
      },
      {
        "login": "motion-canvas",
        "from": "rule 3 (Motion)",
        "type": "Organization",
        "website": "https://motioncanvas.io/",
        "rejected": "website motioncanvas.io does not match usemotion.com"
      },
      {
        "login": "motioneye-project",
        "from": "rule 3 (Motion)",
        "type": "Organization",
        "website": null,
        "rejected": "website (none) does not match usemotion.com"
      },
      {
        "login": "vibe-motion",
        "from": "rule 3 (Motion)",
        "type": "Organization",
        "website": "https://vibe-motion.github.io",
        "rejected": "website github.io does not match usemotion.com"
      },
      {
        "login": "usemotion",
        "from": "rule 3 (usemotion)",
        "type": "Organization",
        "website": null,
        "rejected": "website (none) does not match usemotion.com"
      },
      {
        "login": "UseMotionJS",
        "from": "rule 3 (usemotion)",
        "type": "Organization",
        "website": "https://mot.mindity.net/",
        "rejected": "website mindity.net does not match usemotion.com"
      }
    ]
  },
  "github_org_repos": 0,
  "github_org_repos_mcp": 0,
  "github_org_repos_cli": 0,
  "github_org_latest_activity": null,
  "github_org_recent_repos": [],
  "github_org_checked_on": "2026-09-08",
  "mcp_endpoint": null,
  "mcp_docs_url": "https://github.com/RF-D/motion-mcp",
  "endpoint_status": "repo-local",
  "endpoint_http_status": 200,
  "endpoint_last_probed": "2026-09-04",
  "endpoint_wall_note": null,
  "canonical": true,
  "canonical_id": "10-motion",
  "also_listed_in": [],
  "source_file": "10-scheduling-routing.md",
  "source_line": 122,
  "file_index": 6,
  "category_num": "10",
  "category_slug": "scheduling-routing",
  "category_label": "Scheduling & Routing",
  "heading": "Motion",
  "missing_schema_fields": [],
  "extra_fields": {},
  "display_rank": 211
}
