hatena-blog-mcp
by mtb-beta
README.md
# はてなブログ MCP サーバー
はてなブログの記事を取得・検索するためのMCP(Model Context Protocol)サーバーです。
## 機能
- 📝 記事一覧の取得
- 🔍 キーワードによる記事検索
- 🏷️ カテゴリ管理(一覧取得、カテゴリ別記事取得)
- 💾 キャッシュ機能による高速検索
## セットアップ
### 1. 依存関係のインストール
```bash
uv sync
```
### 2. 環境変数の設定
`.env`ファイルを作成し、以下の環境変数を設定してください:
```env
HATENA_ID=あなたのはてなID
HATENA_BLOG_ID=あなたのブログID
HATENA_API_KEY=あなたのAPIキー
```
APIキーは[はてなブログの設定ページ](https://blog.hatena.ne.jp/)から取得できます。
### 3. キャッシュの管理
```bash
# キャッシュを更新(全記事をローカルに保存)
uv run python server.py --update-cache
# キャッシュをクリア
uv run python server.py --clear-cache
```
### 4. サーバーの起動
```bash
uv run python server.py
```
※ 初回起動時またはキャッシュが存在しない場合は、自動的にキャッシュを更新します。
## 利用可能なツール
### `list_entries`
ブログ記事の一覧を取得します。
**パラメータ:**
- `page_url` (optional): ページネーション用URL
- `max_results` (optional): 取得する最大記事数(デフォルト: 10)
### `get_entry`
特定の記事の詳細を取得します。キャッシュから取得します。
**パラメータ:**
- `entry_id`: 記事ID
### `search_entries`
記事をキーワードで検索します。キャッシュから高速検索します。
**パラメータ:**
- `keyword`: 検索キーワード
- `max_results` (optional): 取得する最大記事数(デフォルト: 10)
### `get_categories`
全てのカテゴリと記事数を取得します。
### `get_entries_by_category`
特定のカテゴリに属する記事を取得します。
**パラメータ:**
- `category`: カテゴリ名
- `max_results` (optional): 取得する最大記事数(デフォルト: 10)
## キャッシュについて
- キャッシュは`~/.cache/hatena-blog-mcp/`ディレクトリに保存されます
- キャッシュの有効期限は1年間です
- サーバー起動時にキャッシュがない場合は自動で更新されます
- `--update-cache`オプションでキャッシュを手動更新できます
- 全ての記事検索と取得はキャッシュから高速に行われます
## Claude Desktopでの設定
Claude Desktopの設定ファイルに以下を追加することで、MCPサーバーとして利用できます:
```json
{
"mcpServers": {
"hatena-blog": {
"command": "uv",
"args": [
"--directory",
"/path/to/hatena-blog-mcp",
"run",
"server.py"
]
}
}
}
```
`/path/to/hatena-blog-mcp`は実際のプロジェクトディレクトリのパスに置き換えてください。
設定ファイルの場所:
- macOS: `~/Library/Application Support/Claude/claude_desktop_config.json`
## ライセンス
MIT License
This server cannot be deployed
Maintenance
ActivityInactive
ResponsivenessNo issues