Skip to main content
Glama
README.md
# mcp-blog

Claude Code / Cursor から自然言語でブログ記事を投稿できる MCP サーバーです。

## できること

自分のプロジェクトで作業しながら、Claude に話しかけるだけでブログに投稿できます。

```
「今日のデバッグ作業をブログ記事にして投稿して」
「記事の一覧を見せて」
「slug が xxx の記事を削除して」
```

## 仕組み

```
あなた(Claude Code / Cursor)
  ↓ 自然言語で指示
MCP サーバー(このパッケージ)
  ↓ HTTPS
ブログ API(Lambda)
  ↓
S3 に保存 → GitHub Actions が起動 → サイト自動更新(1〜3分)
```

## セットアップ

### 必要なもの

- Node.js v20 以上
- ブログ API キー(管理者から発行)

### 設定ファイルに追加

**Claude Code** (`~/.claude/settings.json`) または **Cursor** (`~/.cursor/mcp.json`) に追記します。

```jsonc
{
  "mcpServers": {
    "blog": {
      "command": "npx",
      "args": ["-y", "github:MasatoshiSano/mcp-blog"],
      "env": {
        "BLOG_API_ENDPOINT": "https://dxbqlfvrescw1.cloudfront.net/api",
        "BLOG_API_KEY": "your-api-key"
      }
    }
  }
}
```

設定後は Claude Code / Cursor を再起動すると使えるようになります。

## ツール一覧

| ツール | 説明 |
|---|---|
| `blog_preview_post` | markdown を渡すと AI がフロントマターを自動補完・本文を校正してプレビューを返す |
| `blog_publish_post` | 記事を S3 に保存して GitHub Actions のビルドをトリガーする |
| `blog_list_posts` | 記事一覧を取得する(公開済み・下書きでフィルタ可能) |
| `blog_get_post` | 指定 slug の記事 Markdown を取得する |
| `blog_delete_post` | 記事を削除してビルドをトリガーする |

## 環境変数

| 変数名 | 必須 | 説明 |
|---|---|---|
| `BLOG_API_ENDPOINT` | ✅ | ブログ API のベース URL(例: `https://xxx.cloudfront.net/api`) |
| `BLOG_API_KEY` | ✅ | 認証用 API キー |

## 開発者向け: ローカルビルド

```bash
cd mcp-blog
npm install
npm run build
# → dist/index.js が生成される
```

ローカルビルドを使う場合は `npx` の代わりに直接 `node` で指定します:

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

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