@itapi-core/mcp-tistory
v1.4.1
Published
티스토리 블로그 자동화 MCP 서버 (ID/PW 자동 로그인, 글 작성/수정/임시저장, 카테고리) | MCP server for Tistory blog automation (auto login with ID/PW, post write/modify/draft, categories)
Maintainers
Readme
@itapi-core/mcp-tistory
MCP server for Tistory blog automation — auto login with ID/PW, post write/modify/draft, image upload, categories.
티스토리 공개 API(OAuth)는 카카오가 종료했습니다. 이 서버는 카카오 계정 ID/PW로 자동 로그인 후 내부 관리 API를 사용합니다.
Tools
인증 & 설정 (Auth & Setup)
| Tool | viruagent | Description |
|------|-----------|-------------|
| tistory_auth_status | /login | 현재 세션 상태 확인 |
| tistory_session_logout | /logout | 세션 파일 삭제 및 로그아웃 |
| tistory_blog_set_name | - | 블로그 이름(서브도메인) 수동 설정 |
| tistory_set_defaults | /set category /set visibility | 기본 카테고리/공개설정 변경 |
블로그 & 포스트 (Blog & Post)
| Tool | viruagent | Description |
|------|-----------|-------------|
| tistory_blog_get_info | - | 블로그 목록 조회 |
| tistory_post_list | /list | 글 목록 조회 |
| tistory_post_get | /preview | 특정 글 내용 조회 |
| tistory_post_write | /publish | 새 글 작성 및 발행 |
| tistory_post_modify | /edit | 기존 글 수정 |
| tistory_post_draft | /draft | 글 임시저장 (작성 또는 draftSequence로 수정) |
| tistory_post_attach | - | 이미지 업로드 |
| tistory_post_delete | - | 글 삭제 |
임시저장 글 (Drafts)
| Tool | Description |
|------|-------------|
| tistory_draft_list | 임시저장 글 목록 조회 |
| tistory_draft_get | 특정 임시저장 글의 상세 내용 조회 |
| tistory_draft_delete | 특정 임시저장 글 삭제 |
카테고리 (Category)
| Tool | viruagent | Description |
|------|-----------|-------------|
| tistory_category_list | /categories | 카테고리 목록 조회 ({ "카테고리명": id }) |
Setup
1. 설치 및 빌드
npm install
npx playwright install chromium # 자동 로그인에 필요
npm run build2. MCP Client Configuration
TISTORY_ID와 TISTORY_PW를 설정하면 세션이 없을 때 자동으로 로그인합니다.
세션은 ~/.tistory-mcp/session.json에 저장되어 재사용됩니다.
{
"mcpServers": {
"tistory": {
"command": "npx",
"args": ["-y", "@itapi-core/mcp-tistory"],
"env": {
"TISTORY_ID": "your_kakao_email",
"TISTORY_PW": "your_kakao_password",
"TISTORY_BLOG_NAME": "myblog"
}
}
}
}Environment Variables
| Variable | Required | Description |
|----------|----------|-------------|
| TISTORY_ID | ✅ | 카카오 계정 이메일 또는 전화번호 |
| TISTORY_PW | ✅ | 카카오 계정 비밀번호 |
| TISTORY_BLOG_NAME | ❌ | 기본 블로그 서브도메인 (미설정 시 대표 블로그 자동 감지) |
| TISTORY_SESSION_FILE | ❌ | 세션 파일 경로 (기본: ~/.tistory-mcp/session.json) |
| TISTORY_COOKIES | ❌ | 쿠키 문자열 직접 입력 (ID/PW 대신 사용) |
| PORT | ❌ | HTTP 포트 (기본: 3000) |
| TRANSPORT | ❌ | stdio | http |
동작 방식
MCP Tool 호출
└─ 세션 파일 확인 (~/.tistory-mcp/session.json)
├─ 있으면 → 쿠키로 API 호출
│ └─ 응답이 "세션 만료"로 판단되면(401/403 또는 비-JSON 응답)
│ 기존 세션 폐기 → TISTORY_ID/PW로 재로그인 → 세션 저장 → 1회 재시도
└─ 없으면 → TISTORY_ID/PW로 Playwright headless 자동 로그인
→ 세션 저장 → API 호출세션이 중간에 만료되더라도(예: 장시간 미사용, 외부에서 로그아웃 등) 별도의 수동 재로그인 없이 자동으로 재로그인 후 요청을 이어갑니다. 재로그인까지 실패한 경우에만 오류가 반환됩니다.
Docker
.env 파일에 계정 정보를 설정한 뒤 실행합니다:
# .env
TISTORY_ID=your_kakao_email
TISTORY_PW=your_kakao_password
TISTORY_BLOG_NAME=myblog # 선택사항docker-compose up -d- 세션은 Docker volume
tistory-session에 저장되어 컨테이너 재시작 후에도 유지됩니다. - 카카오 2단계 인증이 설정된 계정은 첫 실행 시
tistory_auth_status도구로 세션 상태를 확인하세요. - HTTP 엔드포인트:
http://localhost:3000/mcp
Visibility 값
| 값 | 설명 |
|----|------|
| 0 | 비공개 |
| 15 | 보호 (비밀번호) |
| 20 | 공개 (기본값) |
