Skip to main content

MCP server for esa.io API

Project description

mcp-esa-server-python

esa.io API と連携するための Model Context Protocol Server (mcp server)です。Pythonで実装しています。

できること

現在は以下の機能を提供しています。

  • ユーザー情報取得(user_get_info)
  • 記事一覧取得(posts_get_list)
  • 記事詳細取得(posts_get_detail)
  • 記事作成 (posts_create)
  • 記事更新 (posts_update)
  • 記事削除 (posts_delete)

セットアップ手順

前提条件

  • esa.ioのAPIトークンを発行済であること

  • uv が使えること

  • インターネット接続

  • esa.ioのAPIトークンの発行方法

    • あなたの esa.io チームのページにアクセスします (例: https://<your-team-name>.esa.io/)。
    • 左カラムのSETTINGSをクリックし、「ユーザー設定」>「外部アプリ連携」を選択します。
    • 「Personal access tokens」セクションで、「Generate new token」をクリックします。
    • トークン名 (例: mcp-server) を入力し、必要な権限スコープを選択します。この MCP サーバーには少なくとも以下の権限が必要です:
      • read (記事の読み取り)
      • write (記事の作成・更新・削除)
      • read_user (ユーザー情報の取得) (この項目は自動的に有効になるため、表示されない可能性があります)
    • 「Save」をクリックします。
    • 表示されたトークンを必ずコピーして安全な場所に保管してください。このトークンは一度しか表示されません。
    • コピーしたトークンは、後述の .env ファイルの ESA_TOKEN の値として貼り付けます。
  • esa.io では、サインアップから2ヶ月間の無料トライアル期間が提供されています。この期間を利用して、テスト用のチーム名とAPIトークンを取得することができます。

  • セキュリティのため、トークンは直接公開しないようご注意ください。

プロジェクトの初期化

uv sync

開発(ローカルでの使い方)

開発に参加する場合や、MCPInspectorを利用する場合は、以下の手順で環境を構築します。

  1. 環境変数の設定 .env.example を参考にして、.env をサーバーを実行したいディレクトリ(.env.exampleと同じ場所)を作成します。

    ESA_TEAM_NAME="YOUR_ESA_TEAM_NAME" # Replace with your esa.io team name (e.g., "myteam")
    ESA_TOKEN="YOUR_ESA_API_TOKEN"     # Replace with your esa.io API access token
    
  2. 実行方法 下記コマンドを実行後に、指示のあるURLからブラウザを開くことで、MCP Inspectorを使って、各コマンド(記事作成など)を実行することができます。

    uv run mcp run main.py
    

MCPServerとしてCursorエディタで使う方法

  1. mcp.jsonの作成例

プロジェクトルートまたは ~/.cursor/mcp.json に以下のような設定ファイルを用意します。

{
  "mcpServers": {
    "mcp-esa-server": {
      "command": "uv",
      "args": [
        "--directory",
        "<プロジェクトの絶対パス>",
        "run",
        "-m"
        "mcp_esa_server.server"

      ],
      "env": {
        "ESA_TEAM_NAME": "<your-team-name>",
        "ESA_TOKEN": "<your-esa-token>"
      }
    }
  }
}
  • <your-team-name><your-esa-token> は各自のesa.ioチーム名・APIトークンに置き換えてください。
  • env: 環境変数を 直接 設定します。この方法を使用する場合、.cursor/mcp.json のコミットは絶対に避けてください。
  1. CursorエディタでMCPサーバーを起動
  • CursorエディタのコマンドパレットやUIから「MCPサーバーを起動」または「AIツールを有効化」します。
  • mcp.jsonの設定に従い、uv run main.py でサーバーが起動します。
  • .env ファイルや環境変数も自動的に読み込まれます。
  1. AIチャットやツールパネルからAPIを呼び出し
  • AIチャット上で user_get_infoposts_get_list などのMCPツールを呼び出すことで、esa.io APIと連携した操作が可能です。
  • mcp-esa-serverを使って記事の作成をお願いします などとチャット上で書き込むことで利用できます。

ライセンス (License)

このプロジェクトは MIT License の下で公開されています。 (注: LICENSE ファイルがまだリポジトリにない場合は、別途追加する必要があります。)

使用している外部コード / Dependencies

このプロジェクトの一部では、以下のMIT Licenseで公開されているコードを参照しています。

  • esa-mcp-server
    • GitHubリポジトリ: [https://github.com/masseater/esa-mcp-server]
    • ライセンス: MIT License

その他 (Misc)

生成元 (Generated by)

generated by Cursor (gemini-2.5-pro-exp-03-25)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mcp_esa_server-0.1.8.tar.gz (49.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mcp_esa_server-0.1.8-py3-none-any.whl (9.2 kB view details)

Uploaded Python 3

File details

Details for the file mcp_esa_server-0.1.8.tar.gz.

File metadata

  • Download URL: mcp_esa_server-0.1.8.tar.gz
  • Upload date:
  • Size: 49.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.4.24

File hashes

Hashes for mcp_esa_server-0.1.8.tar.gz
Algorithm Hash digest
SHA256 d78af691cccbed5788bfb23e22a66a7ed60a8a7e705eb5e7e59bdbabcdf5db31
MD5 c1dcd03016da571c820f757c3f9f7bd3
BLAKE2b-256 1afe8706a985616877fa16b47b743b97729ad69cd37c1e1b636b1ba87fbcf224

See more details on using hashes here.

File details

Details for the file mcp_esa_server-0.1.8-py3-none-any.whl.

File metadata

File hashes

Hashes for mcp_esa_server-0.1.8-py3-none-any.whl
Algorithm Hash digest
SHA256 81f65ccd0c5b5ba2ab53fcd9a96eabd6d9322304a02f0a5da0e187f661afefcb
MD5 79bd95fd34a91098a0b95845f2952b08
BLAKE2b-256 5e422f9e54c6853834ca4f301c30126724e82532dc8f4fd3cfc119c0be015889

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page