关于 Tistory MCP (Unofficial)
Tistory MCP (Unofficial) 是用于管理 Tistory 博客内容的非官方 MCP 服务,面向使用 AI 写作并由人工审核的博客作者。它通过浏览器登录后的本地 Cookie 调用管理 API,发布默认设为私密。
主要功能
- 01读取和编辑博客文章
- 02默认私密发布新文章
- 03上传图片并保存草稿
- 04读取公开博客 RSS
- 05本地保存登录 Cookie
适用场景
- 01先私密发布 AI 草稿以便审核
- 02修改现有文章或删除文章
- 03上传图片并插入文章正文
- 04查看任意 Tistory 博客的公开文章
MCP 相关
这是标准 stdio MCP 服务,向客户端提供 11 个用于会话、文章、分类、图片和草稿的工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
uvx tistory-mcpTISTORY_MCP_SESSION_STOREWhere the blog session cookies are kept: a 0600 file under the config directory, or the OS keyring.TISTORY_MCP_MIN_INTERVAL_SECMinimum number of seconds between publish/update calls. 0 disables the interval.TISTORY_MCP_DAILY_CAPMaximum number of publish/update calls per day. 0 disables the cap.TISTORY_MCP_ALLOW_ANY_HOSTSet to 1 to allow blog hosts outside *.tistory.com (custom domains). Unset by default: only *.tistory.com is accepted.本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
tistory-mcp
面向 Tistory 博客的 AI 写作辅助 MCP 服务 — 在 Claude Code、Cursor 等 MCP 客户端中读取、撰写和润色自己的博客文章。是否公开由人来决定。
面向 Tistory 博客的非官方 MCP 服务 — AI 写作助手,任何内容公开前都由人审核。
非官方 · 与 Kakao/Tistory 无关。 Tistory Open API 已于 2024 年 2 月停止服务。本项目会在浏览器中完成一次 Kakao 登录,然后使用保存在本机的 Cookie 调用 Tistory 管理页面使用的内部 JSON API。本项目与 Kakao/Tistory 毫无关系,Tistory 内部发生变化时随时可能无法运行。端点知识遵循以 MIT 许可证公开的 kim-se-hee/tistory-mcp 的实测文档 — 该项目是通过 npm 发布为
tistory-mcp的独立 TypeScript 项目。npx tistory-mcp和uvx tistory-mcp属于不同项目,本仓库对应 Python/PyPI 版本。
为什么选择 tistory-mcp
- AI 写作,人来决定是否公开。 发布的默认可见性为非公开。默认流程是先在 Tistory 中直接查看 AI 撰写的文章,再将其改为公开;公开发布必须由用户明确提出请求。
- 不会离开本机。 登录 Cookie 仅保存在本地 0600 文件(或 OS keyring)中,不会发送到 Tistory 以外的任何地方。无遥测。
- 不挑客户端。 这是标准 stdio MCP 服务,因此在 Claude Code、Claude Desktop、Cursor、VS Code、Codex CLI、Gemini CLI 等客户端中都能使用相同的 11 个工具。
功能
- 将 Markdown 转换为带有 Tistory 编辑器格式(
data-ke-*属性)的 HTML。标题、表格、引用、列表和图片看起来就像是在编辑器中编写的一样(代码块会以普通<pre><code>输出)。 - 发布新文章(默认非公开)· 修改正文 · 删除 · 查询分类 · 查询文章列表和正文(包括非公开文章)。
- 上传图片 — 同时返回用于插入正文的占位符和附件引用,避免图片之后失效。
- 将草稿保存到编辑器自动保存槽位(可通过“继续撰写”恢复)。
- 无需登录即可查询任意 Tistory 博客的公开文章 RSS。
- 终端 CLI(
login/status/logout)— 绕过 MCP 客户端的工具超时,在终端中登录。
安全默认值
| 项目 | 默认行为 | 如何更改 |
|---|---|---|
| 发布可见性 | 非公开(private) | 在工具调用中明确指定 visibility="public" |
| 删除 | 未设置 confirm=true 时拒绝。显示 MCP destructiveHint | — |
| 发布·修改频率 | 间隔 60 秒,每天 20 次(进程内线程锁) | TISTORY_MCP_MIN_INTERVAL_SEC、TISTORY_MCP_DAILY_CAP(0 = 禁用限制) |
| 发布重试 | 不自动重试 — 每次调用 publish 都会创建一篇新文章 | — |
| 目标主机 | 仅允许 *.tistory.com | TISTORY_MCP_ALLOW_ANY_HOST=1 |
| 浏览器 CDP 地址 | 仅允许 loopback(127.0.0.1/localhost) | TISTORY_MCP_ALLOW_REMOTE_CDP=1 |
| 正文 HTML | 使用 nh3 清理 — 移除 script·on*,链接方案仅允许 http/https/mailto/tel | — |
| 图片占位符 | 必须与 tistory_upload_image 返回的格式完全一致才会通过 | — |
快速开始(3 步)
1. 安装
如果已安装 uv,uvx 会下载并运行软件包。
# macOS / Linux
curl -LsSf https://astral.sh/uv/install.sh | sh
# Windows (PowerShell)
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
需要能够打开登录窗口的浏览器。如果已安装 Chrome 或 Edge,可以跳过此步骤(登录时会依次尝试捆绑的 Chromium、Chrome、Edge)。
uvx tistory-mcp install-browser # Playwright Chromium 다운로드, 최초 1회 약 300MB
使用 pipx / pip 安装
pipx install tistory-mcp # 또는 가상환경에서 pip install tistory-mcp
tistory-mcp --version
此时,客户端设置中的 command 应设为 tistory-mcp,而不是 uvx;args 则设为空数组。
从源代码安装(用于开发)
git clone https://github.com/jangsejong/tistory-mcp.git
cd tistory-mcp
bash scripts/setup.sh # venv + 의존성 + Chromium + ruff/pytest (--no-browser 로 Chromium 생략)
claude mcp add tistory -- "$PWD/.venv/bin/tistory-mcp"
开发辅助脚本:
python scripts/mcp_probe.py .venv/bin/tistory-mcp # initialize + tools/list 핸드셰이크
python scripts/mcp_call.py .venv/bin/tistory-mcp -- tistory_fetch_public_posts '{"blog_url":"example.tistory.com","limit":3}'
python scripts/mcp_call.py .venv/bin/tistory-mcp -- tistory_publish_post @args.json # 긴 본문은 @파일
2. 在客户端中注册
Claude Code 示例(其他客户端请参阅下文):
claude mcp add tistory --scope user -- uvx tistory-mcp
3. 连接博客
打开新会话,然后告诉 AI。
帮我连接 Tistory 博客 myblog.tistory.com
浏览器窗口弹出后,请自行完成 Kakao 登录 → 批准 KakaoTalk 推送通知。Cookie 保存后即可完成。之后,在会话过期之前都无需打开浏览器即可运行。会话有效期不固定——实测(2026-10-27)发现,有的会话在登录后一小时左右就过期了,另一些会话即使 90 分钟没有调用,也维持了近五个小时,随后在闲置六小时期间过期。过期时工具会通知你,重新登录即可。
可以马上尝试的请求:
将
./post.md以非公开形式发布到“开发”分类。标签为 python、mcp。
各客户端的配置
大多数客户端只需添加下面这一行即可。环境变量通过各客户端的 env 字段传入。
{"mcpServers":{"tistory":{"command":"uvx","args":["tistory-mcp"]}}}
Claude Code
claude mcp add tistory --scope user -- uvx tistory-mcp
claude mcp list # 확인
claude mcp remove tistory
--scope user 表示在所有项目中可见;省略(local)则仅在当前项目中可见。也可以将 .mcp.json 放入项目中,使用 project 范围(请参阅此仓库中的 .mcp.json.example)。
也可以通过插件安装(注册相同的 uvx tistory-mcp):
/plugin marketplace add jangsejong/tistory-mcp
/plugin install tistory@tistory-mcp
``` 로그인 도구가 도중에 끊기면 서버 항목에 `"timeout"`(밀리초)을 주거나 `MCP_TOOL_TIMEOUT` 환경변수를 늘리고, 그래도 안 되면 터미널에서 `tistory-mcp login` 을 쓰세요.
</details>
<details>
<summary>Claude Desktop</summary>
설정 파일(Claude 메뉴 → Settings → Developer → Edit Config):
- macOS: `~/Library/Application Support/Claude/claude_desktop_config.json`
- Windows: `%APPDATA%\Claude\claude_desktop_config.json`
```json
{
"mcpServers": {
"tistory": {
"command": "uvx",
"args": ["tistory-mcp"]
}
}
}
保存后,完全退出 Claude Desktop,再重新打开。macOS 的 GUI 应用可能无法读取 shell 的 PATH(如 ~/.local/bin),因此如果服务无法启动,请将 which uvx 的结果(绝对路径)填入 command。
Cursor
全局配置文件 ~/.cursor/mcp.json 或项目配置文件 .cursor/mcp.json:
{
"mcpServers": {
"tistory": {
"command": "uvx",
"args": ["tistory-mcp"]
}
}
}
点击上方的“Install in Cursor”按钮,也会添加相同的配置。
VS Code (Copilot)
工作区配置文件 .vscode/mcp.json(VS Code 使用 servers 键,而不是 mcpServers):
{
"servers": {
"tistory": {
"type": "stdio",
"command": "uvx",
"args": ["tistory-mcp"]
}
}
}
若要添加到用户配置文件,请在命令面板中选择 MCP: Open User Configuration,打开 mcp.json 并添加相同内容;也可以在终端中运行 code --add-mcp '{"name":"tistory","type":"stdio","command":"uvx","args":["tistory-mcp"]}'。上方的“Install in VS Code”按钮也可以完成相同操作。
Codex CLI
codex mcp add tistory -- uvx tistory-mcp
或者编辑 ~/.codex/config.toml:
[mcp_servers.tistory]
command = "uvx"
args = ["tistory-mcp"]
Codex 的工具调用时限(tool_timeout_sec)默认为 60 秒,很难在这段时间内完成浏览器登录。请在同一表格中设置 tool_timeout_sec = 600,或先在终端中运行 tistory-mcp login myblog.tistory.com 登录。
Gemini CLI
gemini mcp add -s user tistory uvx tistory-mcp
或者编辑 ~/.gemini/settings.json(项目配置文件为 .gemini/settings.json):
{
"mcpServers": {
"tistory": {
"command": "uvx",
"args": ["tistory-mcp"]
}
}
}
其他客户端可将上方的通用 JSON(mcpServers 格式)添加到该客户端的 MCP 配置文件中。
首次登录
tistory_session_init 工具(或对 AI 说“帮我连接博客”)会打开浏览器窗口。Kakao 登录和 KakaoTalk 推送批准必须由用户亲自完成——这两步验证无法自动化,因此从设计上就无法完全无人值守。登录完成后,只会保存 Cookie,然后关闭窗口。
如果窗口未弹出,或客户端没有等待足够长的时间,可以使用以下三种替代方法:
1)在终端中登录(推荐)——不受 MCP 客户端工具超时限制,最多等待 5 分钟(--timeout)。
tistory-mcp login myblog.tistory.com # uvx 사용 시: uvx tistory-mcp login myblog.tistory.com
tistory-mcp status myblog.tistory.com # 저장된 세션과 유효 여부
tistory-mcp logout myblog.tistory.com # 세션 삭제
2)连接到已打开的浏览器(适用于 WSL、SSH、容器等无显示环境)——在有显示器的设备(例如 Windows 桌面)上开启远程调试端口并启动浏览器,然后只需将该地址告知服务即可。
:: Windows 데스크톱 — Edge 또는 Chrome
msedge --remote-debugging-port=9222 --user-data-dir=%TEMP%\tistory-login
chrome --remote-debugging-port=9222 --user-data-dir=%TEMP%\tistory-login
# WSL 등 서버 쪽
tistory-mcp login myblog.tistory.com --cdp-url http://127.0.0.1:9222
# 도구로 할 때는 cdp_url="http://127.0.0.1:9222", 또는 환경변수 TISTORY_MCP_CDP_URL
由于会读取已连接浏览器的 Cookie,建议使用专用的 --user-data-dir,而不是平时使用的配置文件。CDP 地址默认只允许 loopback 地址。
3)远程服务——像第 2 种方法一样,在本地电脑上启动浏览器,然后从本地电脑连接到服务,并将服务端口反向转发到浏览器。本地电脑上仍会显示为 127.0.0.1:9222,因此无需设置远程访问许可。
ssh -R 9222:127.0.0.1:9222 user@server # 로컬 PC 에서 실행 — 서버의 127.0.0.1:9222 → 내 브라우저
工具
| 工具 | 类型 | 说明 | 登录 |
|---|---|---|---|
tistory_session_init | 写入 | 打开浏览器进行 Kakao 登录 → 保存 Cookie。提供 cdp_url 时,会连接到使用 --remote-debugging-port=9222 启动的浏览器(适用于 WSL、SSH、容器) | 此工具负责登录 |
tistory_session_status | 读取 | 查看是否有已保存的会话、保存时间、预计过期时间,以及当前是否有效(调用一次管理员 API) | 不需要 |
tistory_get_categories | 读取 | 分类树(整数 id)。发布或修改时,category 必须使用此 id,而非名称 | 需要 |
tistory_list_posts | 读取 | 管理员文章列表(包括非公开和受保护文章)。支持关键词、搜索范围、公开范围、分类和分页 | 需要 |
tistory_get_post | 读取 | 文章元数据 + 由主题渲染的正文 HTML。也可读取非公开文章 | 需要 |
tistory_fetch_public_posts | 读取 | 获取任意博客的公开文章 RSS(最多 50 篇,可选择包含正文) | 不需要 |
tistory_publish_post | 写入 | 发布新文章。将 Markdown 转换为编辑器格式的 HTML。默认设为非公开。有速率限制。出错后禁止自动重试(每次都会创建新文章) | 需要 |
tistory_update_post | 写入 | 替换整个正文。省略标题、分类、公开范围、slug 和标签时会保留原值。content_format 默认为 html(使用 Markdown 时需明确指定) | 需要 |
tistory_delete_post | 破坏性 | 永久删除。必须设置 confirm=true | 需要 |
tistory_upload_image | 写入 | 上传图片(png/jpg/gif/webp,20MB)→ substitution(可直接粘贴到正文中)+ attachment_ref(若不传给 attachments,图片约 15 天后会失效) | 需要 |
tistory_save_draft | 写入 | 将草稿写入编辑器的自动保存槽(1 个)——下次打开写文章页面时,可通过“继续撰写”恢复。这不是“临时保存 N 篇”的列表;再次保存会覆盖原内容 | 需要 |
工具说明同时提供英文和韩文,因此无论使用哪种语言对话,都会收到相同的说明。
可以这样试试
myblog.tistory.com 카테고리 보여줘
./post.md 를 '개발' 카테고리에 비공개로 올려줘. 태그는 python, mcp
./diagram.png 올려서 두 번째 문단 뒤에 넣고, 비공개로 발행해줘
검토했어. 방금 올린 글 공개로 바꿔줘
제목에 '회고' 들어간 글 찾아서 오타만 고쳐줘. 공개 상태는 그대로
example.tistory.com 최근 글 5개 요약해줘 (남의 블로그 공개 글 — 로그인 불필요)
이 내용은 초안으로만 저장해 둬. 발행은 하지 말고
내 블로그 세션 아직 살아 있어?
발행 워크플로
AI 가 쓰고 사람이 검토한 뒤 공개하는 기본 흐름입니다.
tistory_get_categories— 카테고리 id 를 얻습니다(이름은 받지 않음).tistory_upload_image— 이미지마다 호출해substitution은 본문에,attachment_ref는attachments목록에 넣습니다.tistory_publish_post— 마크다운 본문으로 비공개 발행. 응답의 글 번호를 기억합니다.- 티스토리 관리자 화면에서 글을 읽어 봅니다. 고칠 게 있으면 AI 에게 말해
tistory_update_post로 본문을 다시 보냅니다(마크다운이면content_format="markdown"). - 마음에 들면
tistory_update_post에visibility="public"— 이때 비로소 공개됩니다.
발행이 오류나 타임아웃으로 끝났다면 바로 다시 호출하지 말고 tistory_list_posts 로 글이 생겼는지 먼저 확인하세요. 서버는 호출마다 새 글을 만듭니다.
환경변수
| 변수 | 기본값 | 설명 |
|---|---|---|
TISTORY_MCP_HOME | ~/.config/tistory-mcp | 세션·속도 제한 상태 파일 위치. XDG_CONFIG_HOME 을 따름 |
TISTORY_MCP_SESSION_STORE | file | file(0600 JSON) 또는 keyring(OS 자격증명 저장소). keyring 은 pip install "tistory-mcp[keyring]" 필요, Linux 는 Secret Service 필요, Windows 는 미지원 |
TISTORY_MCP_MIN_INTERVAL_SEC | 60 | 발행·수정 사이 최소 간격(초). 0 = 해제 |
TISTORY_MCP_DAILY_CAP | 20 | 하루 발행·수정 상한. 0 = 해제 |
TISTORY_MCP_ALLOW_ANY_HOST | (없음) | 1 이면 *.tistory.com 외 호스트(커스텀 도메인) 허용 |
TISTORY_MCP_CDP_URL | (없음) | cdp_url 인자를 생략했을 때 쓸 브라우저 CDP 주소 |
TISTORY_MCP_ALLOW_REMOTE_CDP | (없음) | 1 이면 loopback 이 아닌 CDP 주소 허용 |
TISTORY_MCP_LOG_LEVEL | INFO | stderr 로그 레벨 |
클라이언트 설정의 env 로 넘긴 값은 클라이언트를 다시 시작해야 반영됩니다.
세션 파일 위치 (file 저장소, 권한 0600):
| OS | 경로 |
|---|---|
| Linux / macOS | ~/.config/tistory-mcp/sessions/myblog.tistory.com.json (XDG_CONFIG_HOME 설정 시 그 아래) |
| Windows | C:\Users\<you>\.config\tistory-mcp\sessions\myblog.tistory.com.json |
| keyring | 서비스 tistory-mcp, 계정 = 블로그 호스트 |
같은 디렉터리의 ratelimit.json 이 속도 제한 상태입니다.
검증 현황
| 도구 | 실제 블로그 검증 | 비고 |
|---|---|---|
tistory_session_init | 완료 | |
tistory_session_status | 완료 | |
tistory_get_categories | 완료 | |
tistory_list_posts | 완료 | |
tistory_get_post | 완료 | |
tistory_update_post | 완료 | |
tistory_fetch_public_posts | 완료 | |
tistory_publish_post | 완료 | 비공개 발행 → 공개 페이지에서 에디터 서식 속성 유지 확인 |
tistory_delete_post | 완료 | |
tistory_upload_image | 완료 | 업로드 → 치환자 검증 통과 → 이미지 포함 발행 → 렌더 확인 |
tistory_save_draft | 완료 | 자동저장 슬롯 되읽기로 확인 |
11개 도구 모두 실제 블로그에서 확인했습니다(2026-10-27, 비공개 테스트 글로 검증 뒤 삭제). 티스토리 쪽 변경으로 동작이 달라지면 이슈로 알려 주세요(쿠키·세션 파일은 첨부하지 마세요).
문제 해결 / FAQ
더 자세한 내용은 docs/TROUBLESHOOTING.md.
- "세션이 만료되었습니다" — 로그인 세션 쿠키(
TSSESSION)는 만료일이 없는 세션 쿠키라 서버 쪽에서 끊깁니다. 실측에서는 한 시간 남짓 만에 만료된 세션도, 다섯 시간 가까이 유지되다 여섯 시간 쉬는 사이에 만료된 세션도 있어 수명을 예측할 수 없습니다. 하룻밤 지나면 다시 로그인한다고 보면 됩니다.tistory_session_init을 다시 실행하거나 터미널에서tistory-mcp login myblog.tistory.com. Executable doesn't exist/ 브라우저를 찾지 못함 —tistory-mcp install-browser로 Chromium 을 받거나 Chrome/Edge 를 설치하세요. 로그인은 번들 Chromium → Chrome → Edge 순으로 시도합니다.- 로그인 창이 안 보임 (WSL · SSH · 컨테이너) — 화면이 있는 쪽에서
--remote-debugging-port=9222로 브라우저를 띄우고cdp_url로 붙으세요. 첫 로그인 참고. - 로그인 중 클라이언트가 타임아웃 — 터미널에서
tistory-mcp login myblog.tistory.com으로 먼저 로그인해 두면 도구는 저장된 쿠키만 씁니다. Codex CLI 는tool_timeout_sec, Claude Code 는 서버 항목의timeout으로 제한을 늘릴 수도 있습니다. - 커스텀 도메인 블로그 —
blog_url은 원래 주소myblog.tistory.com을 권장합니다. 커스텀 도메인을 그대로 써야 하면TISTORY_MCP_ALLOW_ANY_HOST=1. - "간격 제한" / "일일 상한" 오류 — 기본 60초·20회/일 입니다.
TISTORY_MCP_MIN_INTERVAL_SEC,TISTORY_MCP_DAILY_CAP으로 조정(0 = 해제). 상한은 발행·수정 합산이며TISTORY_MCP_HOME/ratelimit.json에 기록됩니다. - 이미지가 15일쯤 뒤에 깨짐 — 발행·수정 때
attachments에attachment_ref를 넣지 않은 경우입니다. 해당 글을tistory_update_post로 다시 보내면서attachments를 채우세요(이미지는 다시 업로드). - 태그 표기가 바뀜 — 이미 쓰던 태그와 대소문자·띄어쓰기만 다른 태그는 기존 표기로 합쳐지는 것으로 보입니다. 티스토리 쪽 동작입니다.
- 두 대의 PC 에서 같은 블로그에 로그인 — 동시 로그인 시 한쪽 세션이 끊기는지 확인되지 않았습니다. 한 PC 에서 쓰는 것을 권합니다.
update_post에 마크다운을 보냈더니 기호가 그대로 보임 —update_post의content_format기본값은html입니다. 마크다운이면content_format="markdown"을 명시하세요(publish_post는 기본markdown).get_post본문이 마크다운이 아님 — 티스토리는 마크다운을 저장하지 않습니다. 돌아오는 것은 스킨으로 렌더된 HTML 이며, 수정할 때는 그 HTML 을 되돌려 보내지 말고 새 본문을 써서 보내세요.
한계와 면책
- 비공식입니다. 티스토리가 내부 API 를 바꾸면 예고 없이 동작이 멈출 수 있습니다.
- 이 도구의 사용은 티스토리·카카오 약관과 충돌할 수 있습니다. 계정 제한 등 모든 위험은 사용자 본인이 집니다.
- 완전 무인 운영은 불가능합니다(카카오톡 푸시 승인). 세션은 짧으면 한 시간 남짓 만에 만료되므로(실측), 도구가 만료를 알리면 다시 로그인해야 합니다.
- 속도 제한은 프로세스 안에서만 직렬화됩니다. 두 클라이언트가 동시에 발행하면 간격 검사가 겹칠 수 있습니다.
- 텔레메트리·외부 서버 없음. 쿠키는 티스토리로 보내는 요청 외에는 이 PC 를 떠나지 않습니다.
허용하지 않는 사용
- 대량·반복 발행, 같은 글을 여러 블로그에 뿌리기, 스팸.
- 검색엔진 조작을 노린 글 양산.
- 본인 소유가 아닌 블로그·계정에 글 쓰기.
- 티스토리·카카오 약관이 금지하는 행위 전반.
이 프로젝트는 내 블로그를 위한 글쓰기 보조이며, 공개 전에 사람이 읽는 것을 전제로 만들었습니다.
보안
- 저장된 쿠키는 블로그 관리자 권한 그 자체입니다. 세션 파일을 복사·공유하지 마세요.
- 이슈·PR 에 쿠키, 세션 JSON, HAR, 스크린샷 속 토큰을 절대 첨부하지 마세요.
- 텔레메트리 없음. 네트워크 요청은 로그인한 티스토리 호스트와 RSS 조회 대상 블로그로만 나갑니다.
- 취약점 신고 절차는 SECURITY.md.
기여
버그 신고와 PR 을 환영합니다 — CONTRIBUTING.md. 내부 구조는 docs/ARCHITECTURE.md. 테스트는 네트워크 없이 돕니다(pytest, 모의 HTTP).
라이선스
감사
- kim-se-hee/tistory-mcp (MIT) — 티스토리 내부 엔드포인트를 실측해 정리한
docs/api.md. 이 저장소의 엔드포인트 지식은 그 문서를 따릅니다. npm 에 배포되는 별개의 TypeScript 프로젝트입니다. - aiarchitecturedev/aiarchitect-blog-mcp — 도구 annotation 과 fail-closed 패턴을 참고했습니다.
Changelog
v0.2.0 (2026-10-27)
- 문서: 세션 수명 서술 정정 — "며칠~몇 주"가 아니라 실측 한 시간 남짓 만에 만료될 수 있음(
TSSESSION은 만료일 없는 세션 쿠키) - 문서: 마크다운 변환 설명 정정 — 에디터 서식 속성은 제목·표·인용·목록에만 붙고 코드 블록은 일반
<pre><code> - 문서: 세션 수명 서술 보강 — 한 시간 남짓 만에 만료된 세션도, 90분 무호출을 포함해 다섯 시간 가까이 유지되다 여섯 시간 무호출 사이에 만료된 세션도 있었음(실측 2026-10-27~28, 수명 예측 불가)
- 저장소:
.gitignore에/_private/(로컬 전용 내부 자료 폴더) 추가
첫 공개 릴리스.
- 도구 11개 — 세션(
init/status), 카테고리, 글 목록·조회, 공개 RSS, 발행·수정·삭제, 이미지 업로드, 자동저장 초안. 도구 설명·title 영문+한국어 병기. - 안전 기본값 — 비공개 발행, 삭제
confirm+destructiveHint, 발행·수정 속도 제한(60초·하루 20회, 스레드 락),*.tistory.com한정, CDP loopback 한정, nh3 본문 정화. - 이미지 치환자 엄격 검증 — 비공개 0.1.x 에서 발견된 sanitize 우회를 수정.
- 발행 실패 뒤 재시도 시 중복 글 경고.
- 로그인 — 번들 Chromium → Chrome → Edge 순 폴백,
cdp_url로 외부 브라우저 접속, keyring 오류 안내. - 배포 — PyPI
tistory-mcp(uvx tistory-mcp), CLI 서브커맨드install-browser/login/status/logout/--version. tistory_list_posts— 공개 범위 필터를 서버 어휘(visible/hidden/protect)로 매핑(다른 값은 서버가 400).search_type에tag추가, 서버가 거부하는all제거.- 실계정 검증 — 11개 도구 전부 실제 블로그에서 확인(비공개 테스트 글로 검증 뒤 삭제).
- Python ≥3.11.
- 비공개 개발 단계(v0.1.0
v0.1.4, 2026-0910)의 이력은 이 항목으로 요약.
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。