esa公式のローカルMCPサーバーを公開しました

今回のリリース内容

esa公式の STDIO transport版 MCP サーバー(以後、ローカルMCPサーバーと呼びます)公開しました 🤖

今回のリリースにより、ご利用中の AI エージェント・AIアシスタントから簡単にesa上の情報を利用したり、esaに投稿したりできるようになりました。

release-note-2025-09-10.png (238.5 kB)
Important

Repository はこちら 👉 https://github.com/esaio/esa-mcp-server

  • README に詳しいインストール方法が書いてあります。
  • dockernpxの事前インストールが前提となります。
  • より気軽にご利用いただけるリモートMCPサーバーも、現在開発中なので楽しみにお待ちください(\( ⁰⊖⁰)/)

esa公式 ローカルMCPサーバの主な機能

esa でご利用いただける、具体的な機能を紹介します。
今後も、随時追加を予定しております 🤖

Claude 等の AIアシスタントを通して、チャットベースでこのようなイメージで利用が可能です 🤖💬

mcp.png (181.7 kB)

利用可能な Tool

チーム管理

  • アクセス可能なチームの取得 (esa_get_teams)
  • チーム統計情報(メンバー数、記事数、コメント数など)の表示 (esa_get_team_stats)
  • タグ一覧の取得(使用回数付き) (esa_get_team_tags)
  • チームメンバーの役割・プロフィール情報の取得 (esa_get_team_members)

記事管理

  • 記事の検索(esa_search_posts)
  • 記事の取得 (esa_get_post)
  • 記事の作成 (esa_create_post)
  • 記事の更新 (esa_update_post)
  • 記事のアーカイブ (esa_archive_post)
  • 記事のShip(WIPステータスをfalseに変更) (esa_ship_post)
  • 記事の複製準備 (esa_duplicate_post)

コメント管理

  • コメントの取得 (esa_get_comment)
  • コメントの作成 (esa_create_comment)
  • コメントの更新 (esa_update_comment)
  • コメントの削除 (esa_delete_comment)
  • 記事ごとのコメント一覧表示 (esa_get_post_comments)
  • チームごとのコメント一覧表示 (esa_get_team_comments)

カテゴリ管理

  • 特定パスのカテゴリ・サブカテゴリ取得 (esa_get_categories)
  • トップレベルカテゴリの一覧表示 (esa_get_top_categories)

ヘルプ・ドキュメント

  • esa検索構文のヘルプ表示 (esa_get_search_options_help)
  • Markdownシンタックスのドキュメント表示 (esa_get_markdown_syntax_help)
  • esaドキュメントの検索機能 (esa_search_help)

Resource

  • 最近更新された記事の取得機能 (esa_recent_posts)

Prompt

  • 記事内容の要約プロンプト (esa_summarize_post)

インストール方法

ここでは、Claude Desktopを例とします。他の設定方法は、それぞれのアプリケーションのMCP設定方法をご確認ください 💡

方法1: Docker(推奨)

  • 事前に、Dockerのインストールが必要です

MCPサーバーの設定に以下を追加

claude_desktop_config.json
{
  "mcpServers": {
    "esa": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "ESA_ACCESS_TOKEN",
        "-e",
        "LANG",
        "ghcr.io/esaio/esa-mcp-server"
      ],
      "env": {
        "ESA_ACCESS_TOKEN": "your_personal_access_token",
        "LANG": "ja"
      }
    }
  }
}

方法2: npx経由

  • 事前に Node.jsnpm のインストールが必要です

AI エージェントのMCPサーバーの設定に以下を追加

claude_desktop_config.json
{
  "mcpServers": {
    "esa": {
      "command": "/Users/your-username/.nodenv/shims/npx",
      "args": ["-y", "@esaio/esa-mcp-server"],
      "env": {
        "ESA_ACCESS_TOKEN": "your_personal_access_token",
        "LANG": "ja"
      }
    }
  }
}
Warning

nodeのインストール方法によっては、PATH環境変数への追加が必要な場合があります。

claude_desktop_config.json
{
  "mcpServers": {
    "esa": {
      "command": "npx",
      "args": ["-y", "@esaio/esa-mcp-server"],
      "env": {
        "ESA_ACCESS_TOKEN": "your_personal_access_token",
        "LANG": "ja",
        "PATH": "/your-node-path/node/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"
      }
    }
  }
}

参考: MacのClaudeアプリでMCP(FilesystemMCPServer起動)のトラブルメモ

認可方式

https://modelcontextprotocol.io/specification/2025-06-18/basic/authorization#authorization-flow-steps
Implementations using an STDIO transport SHOULD NOT follow this specification, and instead retrieve credentials from the environment.

公式の推奨に従い、ローカルMCPサーバーでは、環境変数ESA_ACCESS_TOKENを利用することにしました。
(※現在開発中のリモートMCPサーバーでは OAuth2.1 のフローを採用しております。)

Note

🤖 コラム: MCPって何?(わかりやすく解説)

MCP(Model Context Protocol) は、AIアシスタント(Claude等)が外部のツールやサービスと連携するためのプロトコルです。

身近な例で理解するMCP

普段の仕事で、以下のような経験はありませんか?

💭 「AIアシスタントに質問したいけど、社内の情報は知らないから答えられない」
💭 「AIに資料を作ってもらいたいけど、esaの既存記事を参照できない」
💭 「データ分析をお願いしたいけど、手元のファイルを見せられない」

MCPは、こうした「AIと自分の作業環境の壁」を取り払う仕組みです。

✅ MCPで可能になること

MCPを使うと、AIアシスタントが以下のような作業を直接行えるようになります:

🔎 esaの記事検索・作成・更新 💬 「esaに先月の会議録を探して要約して」
📃 ファイル操作 💬 「このCSVファイルを分析して、esaのmermaidでグラフを作って」
☁️ API連携 💬 「esaに進捗報告を投稿して」
📊 データベース操作 💬 「esaの◯◯の記事にある売上データから月次レポートを生成して」

従来の方法 vs MCP

従来の方法

  1. AIアシスタントに質問 -> 手動でesaを検索 -> 情報をコピペして再質問 -> まとまった情報をesaへ投稿
  2. データを手動でアップロード -> 分析依頼 -> 結果をコピペしてesaへ投稿

MCPを使った方法
「esaの◯◯チームで、△△について調べて、分析して、新しい記事として投稿して」

一連の作業を自然な会話で依頼できるようになります 💡

今回リリースするesa MCPでできること

  • esa内の記事を検索・閲覧
  • 新しい記事の作成・既存記事の更新
  • カテゴリやタグの確認

などなど、AIアシスタントとの会話の中で自然に行えるようになります。

(\( ⁰⊖⁰)/) ヒトコト

Claude と esa を連携してからドキュメントの参照や更新がとても便利になった実感があります 💡

特に「esaの ◯◯チーム から検索して」とお願いすると希望したチームからの記事の取得がしやすいです。お試しください。

今後もesaらしくAIとの連携機能を強化するなど、より良くしていきますのでお楽しみに :esa:

[ProTip] Webhookでdocs.esa.ioの更新通知を受け取ることができます

Enjoy "(\( ⁰⊖⁰)/)"
https://esa.io

END