Skip to main content
Glama
nicstark

Motion MCP Server

by nicstark

NPM Version License

Motion MCP Server

Motion은 업무 일정을 자동으로 계획해 주는 AI 기반 캘린더 및 작업 관리 앱입니다. 이 MCP 서버는 Model Context Protocol을 통해 Motion의 API와 Claude, ChatGPT 같은 LLM을 연결하므로 작업 관리, 프로젝트 검색, 일정 확인 등을 자연스러운 대화로 처리할 수 있습니다. 데스크톱, 웹, 모바일에서 모두 작동합니다.

미리보기

이미지를 클릭하면 전체 크기로 볼 수 있습니다.

Related MCP server: motion-mcp-server

시작하기

필수 조건: Node.js 20 이상 및 Motion API 키.

로컬 설정 (npx)

데스크톱 MCP 클라이언트 — Claude Desktop, Claude Code, Cursor 등을 위한 방법입니다.

claude_desktop_config.json에 다음을 추가하세요:

{
  "mcpServers": {
    "motion": {
      "command": "npx",
      "args": ["motionmcp"],
      "env": {
        "MOTION_API_KEY": "your_api_key"
      }
    }
  }
}

명령줄에서 테스트하세요:

MOTION_API_KEY=your_api_key npx motionmcp

팁: npx는 항상 최신 게시 버전을 실행하므로 설치가 필요하지 않습니다.

원격 설정 (Cloudflare Workers)

모바일 및 웹 클라이언트 — Claude 모바일/웹, ChatGPT 모바일/웹 또는 모든 HTTP MCP 클라이언트를 위한 방법입니다.

원클릭 배포

Deploy to Cloudflare Workers

배포 후 Cloudflare 대시보드(Workers > 해당 워커 > 설정 > 변수)에서 시크릿을 설정하세요:

  • MOTION_API_KEY — 사용자의 Motion API 키

  • MOTION_MCP_SECRET — 무작위 문자열(openssl rand -hex 16로 생성)

수동 배포

# 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

MCP URL은 다음과 같습니다:

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

정확히 그 주소를 사용하세요. 시크릿은 경로 끝에 위치하며 그 뒤에는 아무것도 붙지 않습니다. 서버는 세션 중에 자체 하위 경로(예: 메시지 엔드포인트)를 안내하므로, 시크릿 뒤에 /sse나 다른 하위 경로를 덧붙이지 마세요.

Claude에서 연결하기

  1. claude.ai > 설정 > 커넥터로 이동하세요.

  2. MCP URL을 추가하세요.

  3. 서버는 자동으로 Claude 모바일 앱과 동기화됩니다.

ChatGPT에서 연결하기

  1. ChatGPT 설정 > 커넥터로 이동하세요.

  2. MCP URL을 추가하세요.

보안: URL의 시크릿은 우연한 발견을 방지합니다. 전체 URL을 비밀번호처럼 취급하고 공개적으로 공유하지 마세요.

도구 구성은 로컬 서버와 동일하게 작동합니다. wrangler.toml의 [vars]에 MOTION_MCP_TOOLS를 설정하거나, wrangler secret put MOTION_MCP_TOOLS로 재정의할 수 있습니다.

로컬 Worker 개발에 대한 자세한 내용은 DEVELOPER.md를 참조하세요.

API 키

서버는 MOTION_API_KEY 환경 변수에서 Motion API 키를 읽습니다.

인라인 (npx):

MOTION_API_KEY=your-key npx motionmcp

.env 파일 (npm으로 소스에서 실행하는 경우):

MOTION_API_KEY=your-key

npx 사용 시 로컬 .env 파일을 읽지 않으므로 인라인 환경 변수를 사용하는 것이 좋습니다.

도구 구성

기본적으로 10개의 도구가 모두 활성화됩니다. 여러 MCP 서버를 실행할 때 도구 선택 노이즈를 줄이고 싶다면 MOTION_MCP_TOOLS 환경 변수를 통해 노출할 도구를 제한할 수 있습니다:

단계

도구

설명

minimal

3

작업, 프로젝트, 워크스페이스만 포함

essential

7

사용자, 검색, 댓글, 일정 추가

complete (기본값)

10

커스텀 필드, 반복 작업, 상태를 포함한 전체 API 액세스

custom

상이

필요한 도구만 정확히 선택

커스텀 예시:

MOTION_MCP_TOOLS=custom:motion_tasks,motion_projects,motion_search npx motionmcp

도구 참조

motion_tasks

연산: create, list, get, update, delete, move, unassign

작업 관리를 위한 기본 도구입니다. name, description, priority, dueDate, duration, labels, assigneeId, autoScheduled 등 모든 Motion API 파라미터를 지원합니다. 워크스페이스와 프로젝트를 이름으로 참조할 수 있습니다. 서버가 자동으로 확인합니다.

{
  "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

연산: create, list, get

Motion 프로젝트를 관리합니다. 워크스페이스와 프로젝트 이름은 유사하게 매칭되며, 지정되지 않으면 서버가 자동으로 "Personal" 워크스페이스를 선택합니다.

{"operation": "create", "name": "New Project", "workspaceName": "Personal"}

motion_workspaces

연산: list, get

워크스페이스를 나열하고 확인합니다.

motion_users

연산: list, current

워크스페이스 내 사용자를 나열하거나 현재 인증된 사용자를 가져옵니다.

motion_search

연산: content

워크스페이스 전체에서 쿼리로 작업과 프로젝트를 검색합니다.

{"operation": "content", "query": "API integration", "workspaceName": "Development"}

motion_comments

연산: list, create

작업과 프로젝트의 댓글을 읽고 추가합니다.

{"operation": "create", "taskId": "task_123", "content": "Updated the API endpoints as discussed"}

motion_schedules

연산: list

사용자 일정 및 시간대를 가져옵니다. 충돌 감지와 상태, 우선순위, 프로젝트별 업무 부하 분석을 포함한 우선순위 기반 일정 관리를 지원합니다.

motion_custom_fields

연산: list, create, delete, add_to_project, remove_from_project, add_to_task, remove_from_task

워크스페이스, 프로젝트, 작업 전반에 걸쳐 커스텀 필드를 정의하고 관리합니다.

{
  "operation": "create",
  "name": "Sprint",
  "type": "DROPDOWN",
  "options": ["Sprint 1", "Sprint 2", "Sprint 3"],
  "workspaceName": "Development"
}

motion_recurring_tasks

연산: list, create, delete

반복 작업 템플릿을 관리합니다.

{
  "operation": "create",
  "name": "Weekly Team Standup",
  "recurrence": "WEEKLY",
  "projectName": "Team Meetings",
  "daysOfWeek": ["MONDAY", "WEDNESDAY", "FRIDAY"],
  "duration": 30
}

motion_statuses

연산: list

워크스페이스에서 사용 가능한 상태를 나열합니다.

고급 구성

최소 설정(도구 3개만):

{
  "mcpServers": {
    "motion": {
      "command": "npx",
      "args": ["motionmcp"],
      "env": {
        "MOTION_API_KEY": "your_api_key",
        "MOTION_MCP_TOOLS": "minimal"
      }
    }
  }
}

커스텀 도구 선택:

{
  "mcpServers": {
    "motion": {
      "command": "npx",
      "args": ["motionmcp"],
      "env": {
        "MOTION_API_KEY": "your_api_key",
        "MOTION_MCP_TOOLS": "custom:motion_tasks,motion_projects,motion_search"
      }
    }
  }
}

로컬 워크스페이스 사용 (npm):

{
  "mcpServers": {
    "motion": {
      "command": "npm",
      "args": ["run", "mcp:dev"],
      "cwd": "/absolute/path/to/your/MotionMCP",
      "env": {
        "MOTION_API_KEY": "your_api_key"
      }
    }
  }
}

전체 개발자 설정은 DEVELOPER.md를 참조하세요.

디버깅

  • 로그는 JSON 형식으로 stderr에 출력됩니다.

  • 누락된 키, 워크스페이스/프로젝트 이름, 권한을 확인하세요.

  • motion_workspaces (list) 및 motion_projects (list)를 사용하여 ID를 검증하세요.

{
  "level": "info",
  "msg": "Task created successfully",
  "method": "createTask",
  "taskId": "task_789",
  "workspace": "Development"
}

라이선스

Apache-2.0 License


자세한 내용은 전체 Motion API 문서 또는 Model Context Protocol 문서를 참조하세요.

Related MCP Connectors

Related MCP Servers