tistory-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| TISTORY_MCP_HOME | No | 세션·속도 제한 상태 파일 위치. `XDG_CONFIG_HOME` 을 따름 (Location of session and rate-limit state files; follows XDG_CONFIG_HOME) | ~/.config/tistory-mcp |
| TISTORY_MCP_CDP_URL | No | `cdp_url` 인자를 생략했을 때 쓸 브라우저 CDP 주소 (Browser CDP address used when the cdp_url argument is omitted) | |
| TISTORY_MCP_DAILY_CAP | No | 하루 발행·수정 상한. `0` = 해제 (Daily cap on publish/update calls; 0 disables) | 20 |
| TISTORY_MCP_LOG_LEVEL | No | stderr 로그 레벨 (stderr log level) | INFO |
| TISTORY_MCP_SESSION_STORE | No | `file`(0600 JSON) 또는 `keyring`(OS 자격증명 저장소). keyring 은 `pip install "tistory-mcp[keyring]"` 필요, Linux 는 Secret Service 필요, Windows 는 미지원 (file = 0600 JSON, or keyring = OS credential store) | file |
| TISTORY_MCP_ALLOW_ANY_HOST | No | `1` 이면 `*.tistory.com` 외 호스트(커스텀 도메인) 허용 (Set to 1 to allow hosts other than *.tistory.com, e.g. custom domains) | |
| TISTORY_MCP_ALLOW_REMOTE_CDP | No | `1` 이면 loopback 이 아닌 CDP 주소 허용 (Set to 1 to allow non-loopback CDP addresses) | |
| TISTORY_MCP_MIN_INTERVAL_SEC | No | 발행·수정 사이 최소 간격(초). `0` = 해제 (Minimum interval in seconds between publish/update calls; 0 disables) | 60 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| tistory_session_initA | Open a browser for the Kakao login (카카오 로그인 + 카카오톡 승인) and save the cookies. Blocks until the user finishes or timeout_sec passes — tell the user to look for the browser window and approve the KakaoTalk push before calling. The KakaoTalk 2-factor approval cannot be automated. Once saved, other tools work without a browser until the session expires (it can be as short as an hour or so); call again when a tool reports an expired session. |
| tistory_session_statusA | Report whether a saved session exists, when it was saved and when it expires. Also makes one admin API call to tell whether it is live right now (valid/expired). |
| tistory_get_categoriesA | Return the category tree flattened to id / name / parent id. Use the integer id here as |
| tistory_list_postsA | List posts from the admin side (includes private and protected posts), one page at a time. Bodies are not included — use tistory_get_post for the body. |
| tistory_get_postA | Return one post's metadata (from the admin list) and its body HTML (from the post page). Works for private posts with the saved session. The body is the skin-rendered HTML, not the original markdown (Tistory keeps no markdown). To edit, write the new body yourself and send it with tistory_update_post rather than echoing content_html back. |
| tistory_fetch_public_postsA | Fetch the latest public posts of any Tistory blog from its RSS feed. No login needed. |
| tistory_publish_postA | Create a NEW post. Every call creates a new post — this is not a draft and not an update. Do not retry after an error or timeout without checking tistory_list_posts first, or the post may be duplicated. Defaults to private so the user can review it before switching to public with tistory_update_post. Rate-limited (default 60 s apart, 20 per day). |
| tistory_update_postA | Update an existing post. The body must be sent in full (the server does not merge). Title, category, visibility and slug keep their current values when omitted; tags are kept by reading them from the post page (pass [] to clear). Rate-limited together with publish. |
| tistory_delete_postA | Permanently delete a post. Cannot be undone. Ask the user to confirm in chat, then call with confirm=true. |
| tistory_upload_imageA | Upload an image and return Put |
| tistory_save_draftA | Write a draft into the editor's single autosave slot. No post is created. The next time the user opens the editor it offers to restore this draft. There is only one slot, so saving again overwrites the previous draft. For several reviewable drafts, publish with visibility='private' instead. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 11 tools
Most tools target clearly distinct actions, and descriptions go out of their way to separate look-alikes (list_posts vs get_post vs fetch_public_posts, publish_post vs save_draft). The only mild overlaps are draft-save vs publish-as-private and admin list vs RSS fetch, but the descriptions disambiguate those well.
All tools share a tistory_ prefix and snake_case, with a mostly verb_noun pattern (get_categories, list_posts, publish_post, update_post, delete_post, upload_image). Minor deviations are session_init/session_status, which are noun-based rather than verb-based.
Eleven tools is well within the sweet spot and each maps to a meaningful operation in the Tistory workflow. Nothing feels redundant or padded, and no core action appears to be missing a slot.
Full post lifecycle (list/get/publish/update/delete), session management, image upload, and draft handling are all covered, plus an unauthenticated RSS reader. Minor gaps exist around comment management and category creation, though these are limited by Tistory's API surface.