Skip to main content
Glama

blogger-mcp

Пользовательский MCP-сервер на базе Google Blogger API v3. Предоставляет инструменты (tools) для просмотра, создания, редактирования и удаления записей в вашем блоге Blogger через MCP-хосты, такие как Claude Code или Claude Desktop.

Основные функции (MCP Tools)

Инструмент

Описание

list_blogs

Список блогов авторизованного пользователя

get_blog_by_url

Получение Blog ID по URL блога

list_posts

Список записей блога (поддержка фильтрации по статусу)

get_post

Получение конкретной записи

create_post

Создание новой записи (сохранение как черновик через isDraft=true)

update_post

Редактирование записи (title/content/labels)

delete_post

Безвозвратное удаление записи

publish_post

Публикация черновика

revert_post

Возврат опубликованной записи в статус черновика

Related MCP server: MCP-Google-Doc

Архитектура

Claude Code ──stdio──► blogger-mcp (Node)
                          │
                          ├─ src/index.ts     : MCP server (tools 등록/디스패치)
                          ├─ src/auth.ts      : OAuth 2.0 토큰 로드/저장/갱신
                          └─ src/auth-cli.ts  : 최초 1회 대화형 인증용 CLI
                          │
                          ▼
                  Google Blogger API v3
  • Авторизация: OAuth 2.0 (Desktop-приложение). При первом запуске npm run auth запускается локальный сервер обратного вызова для получения токена, который сохраняется в ~/.config/blogger-mcp/token.json. В дальнейшем токен автоматически обновляется с помощью refresh token.

  • Scopes: https://www.googleapis.com/auth/blogger

  • Transport: stdio (MCP-хост запускает сервер как дочерний процесс)

Быстрый старт

1. Установка и сборка

git clone https://github.com/mech12/blogger-mcp.git
cd blogger-mcp
npm install
npm run build

2. Подготовка OAuth-клиента

В Google Cloud Console активируйте Blogger API v3, создайте OAuth-клиент типа Desktop app и скачайте client_secret.json.

mkdir -p ~/.config/blogger-mcp
cp /path/to/client_secret.json ~/.config/blogger-mcp/client_secret.json

Подробную информацию о настройке Google Cloud см. в разделе Получение авторизации Blogger API v3 ниже.

3. Первичная авторизация

npm run auth

Откройте URL, отображаемый в браузере, и подтвердите доступ — после этого будет создан файл ~/.config/blogger-mcp/token.json.

4. Регистрация в Claude Code

claude mcp add blogger --scope user -- node /absolute/path/to/blogger-mcp/dist/index.js

Или добавьте напрямую в ~/.claude.json:

{
  "mcpServers": {
    "blogger": {
      "command": "node",
      "args": ["/absolute/path/to/blogger-mcp/dist/index.js"]
    }
  }
}

Переменные окружения

Переменная

Значение по умолчанию

Описание

BLOGGER_MCP_CRED_DIR

~/.config/blogger-mcp

Директория с учетными данными

BLOGGER_MCP_CLIENT_SECRET

$CRED_DIR/client_secret.json

Путь к JSON-файлу OAuth-клиента

Получение авторизации Blogger API v3 (кратко)

  1. Создайте проект в Google Cloud — https://console.cloud.google.com/

  2. В Библиотеке API включите Blogger API v3

  3. Настройте Экран согласия OAuth

    • Тип пользователя: Внешний (External)

    • Добавьте область (Scope): https://www.googleapis.com/auth/blogger

    • Добавьте свой Google-аккаунт в список тестовых пользователей

  4. Учетные данные → Идентификатор клиента OAuth

    • Тип приложения: Десктопное приложение

    • После создания скачайте JSON → ~/.config/blogger-mcp/client_secret.json

  5. Узнайте Blog ID

    • Числовой идентификатор из blogID=... в URL администратора Blogger или через инструмент get_blog_by_url

Подробное руководство, специфичное для проекта, находится в docs/vibe/mcp/blogger-mcp.md в хост-проекте.

Планы реализации (Design Notes)

  • Стек: TypeScript + Node 18+, @modelcontextprotocol/sdk, googleapis, google-auth-library.

  • Хранение токенов: ~/.config/blogger-mcp/. Защищено через .gitignore.

  • Обработка ошибок: Сбои при вызове инструментов автоматически обрабатываются MCP. При отсутствии авторизации выводится подсказка: No stored token. Run npm run auth first.

  • План развития:

    • Инструмент преобразования Markdown в HTML (на базе marked)

    • Загрузка изображений (Blogger требует обхода через Picasa/Google Photos — опционально в будущем)

    • Планирование публикаций (настройка поля published)

Разработка

npm run dev       # tsc --watch
npm run build     # dist/ 생성
npm start         # dist/index.js 실행 (MCP stdio 서버)
npm run auth      # OAuth 최초 인증

Лицензия

MIT

Available Tools

9 tools
create_postC

Create a new blog post. Content is HTML; labels is a list of tags. isDraft=true saves as draft.

Inputs: blogId (required), title (required), content (required), labels, +1 more.

delete_postC

Delete a post permanently

Inputs: blogId (required), postId (required).

get_blog_by_urlC

Resolve a Blog ID from a blog URL (e.g. https://xxx.blogspot.com)

Inputs: url (required).

get_postC

Fetch a single post

Inputs: blogId (required), postId (required).

list_blogsB

List blogs owned by the authenticated user

Inputs: no named parameters.

list_postsC

List posts of a blog

Inputs: blogId (required), maxResults, status.

publish_postC

Publish a draft post

Inputs: blogId (required), postId (required).

revert_postC

Revert a published post back to draft

Inputs: blogId (required), postId (required).

update_postC

Update an existing post (title/content/labels).

Inputs: blogId (required), postId (required), title, content, +1 more.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.5/5.0

    Scored across 9 tools

    Disambiguation5/5

    Every tool has a clearly distinct purpose with no ambiguity. Each tool targets a specific resource (blog, post) and action (create, delete, get, list, publish, revert, update), making it easy for an agent to select the correct one. The separation between operations like publish_post and revert_post is particularly clear.

    Naming Consistency5/5

    All tool names follow a consistent verb_noun pattern with snake_case throughout, such as create_post, delete_post, and list_blogs. There are no deviations in naming conventions, making the set predictable and readable for an agent.

    Tool Count5/5

    With 9 tools, this server is well-scoped for managing blogs and posts, covering essential operations without bloat. Each tool earns its place by addressing a specific need in the blogging workflow, from listing blogs to handling post lifecycles.

    Completeness5/5

    The tool surface provides complete CRUD/lifecycle coverage for the blogging domain. It includes create, read (get/list), update, and delete for posts, plus additional lifecycle actions like publish and revert, with no obvious gaps that would cause agent failures.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers