{
  "markdown": "# esa MCP Server\n\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\n**日本語** | [English](https://github.com/esaio/esa-mcp-server/blob/main/README.en.md)\n\nesa.io の公式 MCP(Model Context Protocol)サーバー(STDIO Transport 版)\n\n## 概要\n\nAI アシスタントと情報共有サービス [esa](https://esa.io) をつなぐ MCP サーバーです。Model Context Protocol 経由で、AI アシスタントから esa の記事を読んだり、作成・更新・管理などができます。\n\n## 使えるツール\n\n### チーム管理\n\n- `esa_get_teams` - 所属している esa チームの一覧\n- `esa_get_team_stats` - チームの統計情報（メンバー数、記事数、コメント数など）\n- `esa_get_team_tags` - チーム内で使われているタグと使用回数\n- `esa_get_team_members` - チームメンバーとその役割・プロフィール\n\n### 記事管理\n\n- `esa_search_posts` - 記事を検索\n- `esa_get_post` - 記事 ID から記事を取得（バックリンク総数 `backlinks_count`、本文の文字数・行数 `body_md_stats` を含む）\n- `esa_get_post_backlinks` - 指定記事を参照している記事の一覧（ページング対応）\n- `esa_create_post` - 新しい記事を作成（タグ、カテゴリー、WIP ステータス付き）\n- `esa_update_post` - 記事を更新（タイトル、本文、タグ、カテゴリー、WIP ステータス）\n- `esa_append_post` - 記事本文の末尾に追記（既存本文を取得せずに追記でき、新しいリビジョンとして保存）\n- `esa_prepend_post` - 記事本文の先頭に追記（既存本文を取得せずに追記でき、新しいリビジョンとして保存）\n\n### 記事の操作\n\n- `esa_archive_post` - 記事をアーカイブ（Archived/ カテゴリーへ移動）\n- `esa_ship_post` - 記事を Ship It!（WIP を外して公開）\n- `esa_duplicate_post` - 記事を複製（同じタイトル・本文の WIP 記事を作成。別チームへの複製も可能）\n\n### コメント管理\n\n- `esa_get_comment` - コメント ID からコメントを取得\n- `esa_create_comment` - 記事にコメントを追加\n- `esa_update_comment` - コメントを編集\n- `esa_delete_comment` - コメントを削除\n- `esa_get_post_comments` - 記事のコメント一覧（ページング対応）\n- `esa_get_team_comments` - チーム全体のコメント一覧（ページング対応）\n\n### カテゴリー管理\n\n- `esa_get_categories` - 指定パス配下のカテゴリー一覧\n- `esa_get_top_categories` - トップレベルのカテゴリー一覧\n- `esa_get_all_category_paths` - チーム内の全カテゴリーパス一覧（記事数付き、フィルタリング対応）\n  - カテゴリ構造の把握、整理、統合の計画に最適\n  - フィルター例: `prefix: \"dev\"` で開発関連、`match: \"api\"` で API 関連を検索\n\n### 添付ファイル\n\n- `esa_get_attachment` - 記事やコメントの添付ファイルを取得\n  - サポート形式（JPEG, PNG, GIF, WebP）で 30MB 以下の画像は base64 エンコードで返却\n  - その他のファイル、大きな画像、または forceSignedUrl 指定時は署名付き URL（有効期限 5 分）を返却\n\n### ヘルプとドキュメント\n\n- `esa_get_search_options_help` - esa の検索構文ヘルプ\n- `esa_get_markdown_syntax_help` - esa の Markdown 記法ヘルプ\n- `esa_search_help` - esa のドキュメントから機能や用語を検索\n\n## リソース\n\n- `esa_recent_posts` - 最近更新された記事の一覧\n  - テンプレート: `esa://teams/{teamName}/posts/recent`\n  - 戻り値: 最近更新された記事の JSON リスト\n\n## プロンプト\n\n- `esa_summarize_post` - esa の記事を要約\n  - 入力: チーム名と記事 ID\n  - 出力: 記事の構造化された要約\n\n## MCP クライアントの設定\n\nMCP クライアントの設定ファイルに以下を追加します：\n\n### 用意する環境変数\n\n- ESA_ACCESS_TOKEN: アクセストークン\n  - 必要なスコープ: `read write` または `admin:comment read:post write:post read:category read:tag read:attachment read:team read:member`\n  - [PAT v2](https://docs.esa.io/posts/559)を推奨します。\n- LANG: UI の言語設定\n\n### Claude Desktop の例\n\n`claude_desktop_config.json` への追加方法：\n\n#### オプション 1: docker(推奨)\n\n```json\n{\n  \"mcpServers\": {\n    \"esa\": {\n      \"command\": \"docker\",\n      \"args\": [\n        \"run\",\n        \"-i\",\n        \"--rm\",\n        \"-e\",\n        \"ESA_ACCESS_TOKEN\",\n        \"-e\",\n        \"LANG\",\n        \"ghcr.io/esaio/esa-mcp-server\"\n      ],\n      \"env\": {\n        \"ESA_ACCESS_TOKEN\": \"your_personal_access_token\",\n        \"LANG\": \"ja\"\n      }\n    }\n  }\n}\n```\n\n#### オプション 2: npx\n\n```json\n{\n  \"mcpServers\": {\n    \"esa\": {\n      \"command\": \"/Users/your-username/.nodenv/shims/npx\",\n      \"args\": [\"@esaio/esa-mcp-server\"],\n      \"env\": {\n        \"ESA_ACCESS_TOKEN\": \"your_personal_access_token\",\n        \"LANG\": \"ja\"\n      }\n    }\n  }\n}\n```\n\n> **注意**: `/path/to/your/node` は `which node` で調べたパスに置き換えてください。\n\n## レジストリ\n\nこのパッケージはルート直下に `registry.json` を同梱しており、登録されているツール / リソース / プロンプトの一覧を公開しています。サーバーを起動せずにプログラムから読み取れます:\n\n```js\nimport registry from \"@esaio/esa-mcp-server/registry.json\" with { type: \"json\" };\n```\n\nスキーマ:\n\n```json\n{\n  \"tools\": [{ \"name\": \"esa_get_teams\" }, \"...\"],\n  \"resources\": [\n    { \"name\": \"esa_recent_posts\", \"uriTemplate\": \"esa://teams/{teamName}/posts/recent\" }\n  ],\n  \"prompts\": [{ \"name\": \"esa_summarize_post\" }]\n}\n```\n\n`registry.json` は `npm run build:registry` で生成され、登録内容と差分が出ると CI で fail します。\n\n## リンク\n\n- [esa.io](https://esa.io) - 情報共有サービス esa\n- [Model Context Protocol](https://modelcontextprotocol.io) - MCP の詳細\n- [API ドキュメント](https://docs.esa.io/posts/102) - esa API リファレンス\n- [Claude Desktop](https://claude.ai/download) - MCP 対応の AI アシスタント\n\n## サポート\n\n- 📧 Support: [Feedback Form](https://esa.io/feedbacks/new)\n- 🐛 Issues: [GitHub Issues](https://github.com/esaio/esa-mcp-server/issues)\n- 📖 Help: [esa Docs](https://docs.esa.io)\n\n---\n\nMade with ❤️ by the esa team\n",
  "bytes": 4344,
  "sha": "856c9f3971cd38d9af309a522a9b41fb11898b6eb00a3c634164cce4383c100a",
  "repo_slug": "esaio/esa-mcp-server",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_esaio_esa_1ab216c9/readme"
}