npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

todogether-mcp

v1.4.0

Published

투두게더(todogether) MCP 서버 — 로그인 후 오늘 할 일 조회

Readme

todogether-mcp

투두게더(todogether) MCP 서버. Claude에서 로그인 → 오늘 할 일 조회를 도구로 사용합니다.

도구

  • todogether_login(email, password) — 이메일/비밀번호 로그인 (NextAuth credentials).
  • todogether_login_social(provider) — 카카오/네이버 자동 로그인. 기본 브라우저가 자동으로 열리고, 로그인을 마치면 토큰이 자동 수신됩니다. (복사·붙여넣기 불필요)
  • todogether_today_todos(tags?) — 오늘 할 일 조회 (매일 투두 + 진행 중 + 마감 지난 미완료, 앱의 "오늘 할 일"과 동일 기준).
  • todogether_today_todos_detail(tags?) — 위에 더해 서브태스크·메모·마감일과 첨부 사진까지 가져옵니다.
  • todogether_add_todo(title, date?, endDate?, tags?, subTodos?, description?, everyday?, isPublic?) — 투두 등록. 제목만 주면 오늘 날짜의 비공개 한 줄 투두(앱의 빠른 추가와 같음).
  • todogether_check_todo(number | id | title, subTodo?, done?, note?, tags?) — 체크. 일반 투두는 완료, 매일 투두는 오늘 인증, subTodo 를 주면 그 세부 항목만. 세부 항목을 모두 끝내면 투두도 자동 완료. done=false 면 되돌린다.
    • 사진이 필요한 매일 투두는 여기서 인증할 수 없습니다(앱에서).
    • 남은 세부 항목이 있으면 투두를 바로 완료하지 않고 목록을 보여 줍니다.

할 일은 태그별로 묶여 나옵니다. 태그가 여럿인 투두는 여러 묶음에 나오되 번호는 하나이고, 태그가 없으면 「태그 없음」으로 맨 끝에 섭니다.

오늘 할 일 10개 · 태그 2개

#띵킹캣 (7)
  1. 유튜브 품질 개선 (0/1)
  6. 스톡온 8월 2주차 개선사항 (4/8)

#운동 (1)
  8. 운동을 열심히  [매일]

태그 없음 (2)
  4. 협력사에 한달에 한번씩 리포트발행

tags 를 주면 그 태그가 붙은 것만 가져옵니다(여러 개면 하나라도 붙으면 걸립니다). 거르는 일은 서버가 하므로 페이지가 어긋나지 않습니다.

보조 도구 (자동 로그인이 안 될 때만)

  • todogether_social_login_url(provider) — 소셜 로그인 시작 URL만 반환.
  • todogether_login_handoff(handoff) — 직접 받은 handoff 토큰/콜백 URL로 로그인.

세션 유지 (무인 실행)

로그인에 성공하면 세션 쿠키를 ~/.todogether-mcp-session.json (권한 600) 에 저장하고, 다음에 프로세스가 새로 떠도 그 세션을 재사용합니다.

예약 작업처럼 무인으로 도는 환경에서는 이 방식이 유일한 경로입니다 — 소셜 로그인은 브라우저가 필요해 자동화할 수 없기 때문입니다. 한 번 로그인해 두면 세션이 만료될 때까지(보통 30일) 자동으로 이어집니다. 만료되면 다시 한 번 로그인하면 됩니다.

이메일/비밀번호 계정이라면 자격증명을 두어 만료 시 자동 복구되게 할 수 있습니다 (~/.todogether-mcp.env 또는 TODOGETHER_EMAIL/TODOGETHER_PASSWORD 환경변수). 프롬프트에 비밀번호를 적지 마세요 — 평문으로 남습니다.

로그인 방법

  • 이메일 계정: "투두게더 로그인해줘 (이메일: [email protected])" → 비밀번호 입력 → 끝.
  • 카카오/네이버: "카카오로 로그인해줘" → 브라우저가 자동으로 열림 → 로그인 → 자동 완료.
    • 동작 원리: MCP가 로컬 콜백 서버(127.0.0.1:랜덤포트)를 띄우고, 서버는 로그인 후 handoff를 그 콜백으로 전달합니다. 브라우저와 같은 PC에서 실행해야 합니다.

빌드

cd ~/dev/workspace/thinkingcat/todogether/packages/mcp
npm install
npm run build   # dist/index.js 생성

배포 (만드는 사람 — npm publish)

cd ~/dev/workspace/thinkingcat/todogether/packages/mcp && npm publish
  • 이 한 줄이 전부다. 2FA 확인은 브라우저가 받는다 — 터미널에 뜬 주소를 열어 승인하면 그대로 올라간다. 인증 코드를 손으로 옮겨 적을 일이 없다.
  • prepublishOnly 스크립트가 자동으로 빌드한다.
  • 버전은 package.json 의 version 을 올린 커밋이 이미 정한다. 올리는 쪽에서 npm version 을 다시 돌리면 커밋이 하나 더 생겨 저장소와 레지스트리가 갈린다.

안 되는 길 둘 — 여기서 시간을 버린다

| | 무엇이 뜨나 | |---|---| | npm publish --auth-type=web | 그대로 EOTP. 저 옵션은 npm login 에만 먹고 publish 의 2FA 확인에는 안 걸린다 | | ~/.npmrc 의 일반 토큰 | 읽기(npm whoami)는 통과하는데 쓰기에서 EOTP. 계정 2FA 가 "auth and writes" 라 토큰만으로는 못 올린다 |

404 Not Found - PUT 이 뜨면 없는 패키지가 아니라 인증이 죽은 것이다. npm 은 권한 없는 쓰기에 401 이 아니라 404 를 준다 — npm whoami 로 먼저 가른다.

무인(CI)으로 올릴 일이 생기면 그때는 Automation 토큰이다. 같은 화면의 Publish 토큰은 이름과 달리 OTP 를 그대로 요구해서 위와 같은 자리에서 막힌다.

설치 (받는 사람 — 클론·빌드 불필요)

배포된 뒤에는 한 줄로 등록할 수 있습니다.

Claude Code:

claude mcp add todogether -- npx -y todogether-mcp

Claude Desktop (claude_desktop_config.json):

{
  "mcpServers": {
    "todogether": {
      "command": "npx",
      "args": ["-y", "todogether-mcp"]
    }
  }
}

Claude Desktop 등록

~/Library/Application Support/Claude/claude_desktop_config.json 의 mcpServers 에 추가:

{
  "mcpServers": {
    "todogether": {
      "command": "node",
      "args": ["/Users/minhyuk/dev/workspace/thinkingcat_2.0/PROD_todogether/todogether-mcp/dist/index.js"]
    }
  }
}

저장 후 Claude Desktop 재시작.

Claude Code 등록 (CLI)

claude mcp add todogether -- node /Users/minhyuk/dev/workspace/thinkingcat_2.0/PROD_todogether/todogether-mcp/dist/index.js

사용 예

  1. "투두게더에 로그인해줘 (이메일: [email protected])" → todogether_login 실행 (비밀번호는 입력 요청)
  2. "오늘 할 일 가져와줘" → todogether_today_todos 실행
  3. "오늘 할 일 상세로 가져와줘" → todogether_today_todos_detail (서브투두·메모·사진, 태그별로 묶임)

매일 아침 예약 (프로젝트별 상세 브리핑)

Claude Code에 아래를 붙여넣으면 매일 아침 프로젝트별 상세 투두 브리핑을 예약합니다.

매일 아침 9시에 투두게더 MCP로 로그인한 뒤 todogether_today_todos_detail로 오늘 할 일 상세를 가져와서, 태그별로 서브투두·메모까지 짧게 브리핑해줘. 할 일이 없으면 한 줄로만 알려줘.

CLI:

/schedule 매일 아침 9시 투두게더 오늘 할 일 상세를 프로젝트별로 브리핑해줘
  • Desktop 예약 / 로컬 세션: 로컬 claude mcp add MCP를 그대로 사용
  • 클라우드 Routine: claude.ai connectors에 todogether MCP를 등록해야 함

환경 변수 (선택)

  • TODOGETHER_BASE_URL — 기본값 https://todo.thinkingcatworks.com. 로컬/스테이징 서버로 바꿀 때 사용.

보안 참고

  • 비밀번호는 도구 인자로 전달되어 서버에 로그인 요청에만 쓰이고 디스크에 저장하지 않습니다(세션 쿠키만 메모리 유지).
  • 신뢰하는 환경에서만 사용하세요.