Skip to main content
Glama

mcp-blog

MCP-сервер для API администрирования блога. Предоставляет инструменты для предварительного просмотра, публикации, перечисления и удаления записей в блоге из Claude Code через транспорт stdio.

Инструменты

Инструмент

Описание

blog_preview_post

ИИ-помощник для заполнения frontmatter и исправления структуры тела поста. Возвращает исправленный markdown + diff + предложение изображения с Unsplash.

blog_publish_post

Сохраняет исправленный markdown в S3 и запускает пересборку через GitHub Actions.

blog_list_posts

Выводит список постов с опциональными фильтрами published и limit.

blog_delete_post

Удаляет пост по слагу и запускает пересборку.

Related MCP server: substack-mcp

Настройка

Локальный путь (разработка)

// ~/.claude/settings.json
{
  "mcpServers": {
    "blog": {
      "command": "node",
      "args": ["/absolute/path/to/mcp-blog/dist/index.js"],
      "env": {
        "BLOG_API_ENDPOINT": "https://dxbqlfvrescw1.cloudfront.net/api",
        "BLOG_API_KEY": "<your-api-key>"
      }
    }
  }
}

GitHub (будущее распространение)

// ~/.claude/settings.json
{
  "mcpServers": {
    "blog": {
      "command": "npx",
      "args": ["-y", "github:sano/mcp-blog"],
      "env": {
        "BLOG_API_ENDPOINT": "https://dxbqlfvrescw1.cloudfront.net/api",
        "BLOG_API_KEY": "<your-api-key>"
      }
    }
  }
}

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

Переменная

Обязательно

Описание

BLOG_API_ENDPOINT

Да

Базовый URL API блога (например, https://dxbqlfvrescw1.cloudfront.net/api)

BLOG_API_KEY

Да

API-ключ для HMAC-аутентификации

Сборка

npm install
npm run build

Available Tools

5 tools
blog_delete_postA

指定したスラグの記事を S3 から削除し、GitHub Actions ビルドを発火させる。

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYesSlug of the post to delete

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It discloses two key behaviors: deletion from S3 and triggering a GitHub Actions build. However, it doesn't mention irreversibility, error handling for missing slugs, or details about the build triggered. Lacks full transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that conveys the core action and side effect without any extraneous words. It is front-loaded and efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the single parameter, lack of output schema, and presence of sibling blog tools, the description provides sufficient context about what the tool does. It could mention that the deletion is permanent, but overall it is complete enough for a straightforward delete operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents the 'slug' parameter. The description adds no per-parameter details beyond what the schema provides, so it meets the baseline without additional value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states that the tool deletes a blog post by its slug from S3 and triggers a GitHub Actions build. This distinguishes it from sibling tools like blog_get_post (retrieval) and blog_publish_post (creation/publishing).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not provide any guidance on when to use this tool vs. alternatives, such as when to delete versus unpublish or archive. No context about prerequisites or side effects beyond the bare action.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

blog_get_postA

指定したスラグの記事を S3 から読み出し、Markdown 本体と frontmatter を返す。編集ワークフロー (取得→修正→blog_publish_post で上書き) で使う。

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYesSlug of the post to fetch

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It discloses the source (S3), that it's a read operation with no side effects, and the return content. Could be more explicit about error handling or missing slugs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences efficiently convey action, resource, and workflow context. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Adequate for a simple read tool: describes purpose, source, return content, and usage pattern. Without output schema, could detail return structure more, but 'Markdown body and frontmatter' provides sufficient guidance.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers the single parameter with a description. The description repeats the concept of 'specified slug' without adding new semantics beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the action (read article from S3), what it returns (Markdown body and frontmatter), and its role in the edit workflow, distinguishing it from siblings like blog_list_posts.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states the tool is part of an edit workflow (fetch->modify->overwrite), giving clear usage context. However, it does not explicitly mention when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

blog_list_postsB

ブログ記事の一覧を取得する。published フィルタと件数上限を指定可能。

ParametersJSON Schema
NameRequiredDescriptionDefault
publishedNo
limitNo

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must disclose behavior. It implies a read operation but does not explicitly confirm non-destructiveness, auth requirements, or any side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences convey the purpose and key parameters with no unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a list tool with 2 parameters, no output schema, and no annotations, the description is too sparse. It lacks defaults, pagination info, and ordering, leaving the agent underinformed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%. The description mentions 'published filter and count limit' but adds no value beyond the parameter names, failing to explain types or behavior when omitted.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves a list of blog posts, which distinguishes it from sibling tools that delete, get single, preview, or publish posts.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions optional filters but does not provide any guidance on when to use this tool versus alternatives, leaving the agent to infer from the tool name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

blog_preview_postA

AI によるフロントマター補完・本文構造補正を実行してプレビュー結果を返す。publish 前に必ず呼ぶこと。

ParametersJSON Schema
NameRequiredDescriptionDefault
markdownYesMarkdown content of the post (including frontmatter)
slugNo
imageMetaNo

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It states AI corrections and preview return, but does not disclose side effects (e.g., persistence, data modification, latency, or cost) beyond basic behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the main action and concluded with a direct usage instruction. No unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with AI processing, a nested parameter (imageMeta), and no output schema, the description does not explain the purpose of slug and imageMeta, nor what the preview output contains. Essential invocation details are missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Only one of three parameters (markdown) has a schema description. The description does not add any additional meaning for slug or imageMeta. With 33% schema coverage, the description fails to compensate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states it performs AI-driven frontmatter completion and body structure correction to return a preview. It distinguishes itself from the sibling publish tool by specifying it must be called before publishing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says 'must call before publish,' providing clear context for when to use. However, it does not describe when not to use or mention alternative tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

blog_publish_postB

AI 補正済みの markdown と frontmatter を S3 に保存し、GitHub Actions ビルドを発火させて公開する。

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYesURL slug for the post (alphanumeric, hyphens, underscores)
markdownYesFinalized Markdown content (after preview correction)
frontmatterYes

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided. The description mentions side effects (S3 save, build trigger) but lacks details on mutability, overwrite behavior, prerequisites (e.g., slug uniqueness), or error conditions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, concise, and front-loaded with the core action. However, it could be structured with separate clauses for storage and trigger.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations, no output schema, and a 3-parameter tool, the description is incomplete. It omits return value, success/failure indicators, concurrency considerations, and any post-conditions.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema covers parameters with reasonable descriptions; 'slug' and 'markdown' are well explained. The description adds context that the markdown is 'AI corrected', but does not add significant semantic detail beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action: saving AI-corrected markdown and frontmatter to S3 and triggering a GitHub Actions build for publication. It differentiates from sibling tools (delete, get, list, preview) by focusing on the publish workflow.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives (e.g., preview vs. publish). The description only explains what it does, not when to invoke it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

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

  1. 5 tool updatesv0.1.0
    • First observedblog_delete_post
    • First observedblog_get_post
    • First observedblog_list_posts
    • First observedblog_preview_post
    • First observedblog_publish_post

TDQS

A3.9/5.0

Scored across 5 tools

Disambiguation5/5

Each tool targets a distinct action: delete, get, list, preview, and publish. No overlaps in purpose.

Naming Consistency5/5

All tools follow the consistent blog_verb_noun pattern with snake_case (e.g., blog_delete_post, blog_list_posts).

Tool Count5/5

Five tools are appropriately scoped for a blog server, covering essential operations without being too few or too many.

Completeness5/5

The set covers the full lifecycle: list, get, preview, publish, and delete. No obvious missing operations for a simple blog workflow.

Maintenance

ActivityInactive
ResponsivenessSyncing

Related MCP Connectors

Related MCP Servers