LINE Official Account MCP Server

公式

LINE Messaging APIを統合し、AIエージェントをLINE Official Accountに接続します。

ドキュメント

日本語版 READMEはこちら

LINE Bot MCP Server

npmjs

Model Context Protocol (MCP) サーバー実装で、LINE Messaging APIを統合し、AIエージェントをLINE Official Accountに接続します。

[!NOTE] このリポジトリはプレビュー版として提供されています。実験的な目的で提供されていますが、完全な機能や包括的なサポートが含まれていない可能性があることにご注意ください。

ツール

  1. push_text_message

    • LINE経由でユーザーにシンプルなテキストメッセージをプッシュします。
    • 入力:
      • userId (string?): メッセージを受信するユーザーID。デフォルトはDESTINATION_USER_IDです。userId または DESTINATION_USER_ID のいずれかを設定する必要があります。
      • message.text (string): ユーザーに送信するプレーンテキストの内容。
  2. push_flex_message

    • LINE経由でユーザーに高度にカスタマイズ可能なFlexメッセージをプッシュします。
    • 入力:
      • userId (string?): メッセージを受信するユーザーID。デフォルトはDESTINATION_USER_IDです。userId または DESTINATION_USER_ID のいずれかを設定する必要があります。
      • message.altText (string): Flexメッセージが表示できない場合に表示される代替テキスト。
      • message.contents (any): Flexメッセージの内容。メッセージのレイアウトとコンポーネントを定義するJSONオブジェクトです。
      • message.contents.type (enum): コンテナのタイプ。単一コンテナの場合は 'bubble'、スワイプ可能な複数バブルの場合は 'carousel'。
  3. broadcast_text_message

    • LINE Official Accountをフォローしているすべてのユーザーに、LINE経由でシンプルなテキストメッセージをブロードキャストします。
    • 入力:
      • message.text (string): ユーザーに送信するプレーンテキストの内容。
  4. broadcast_flex_message

    • LINE Official Accountを追加しているすべてのユーザーに、LINE経由で高度にカスタマイズ可能なFlexメッセージをブロードキャストします。
    • 入力:
      • message.altText (string): Flexメッセージが表示できない場合に表示される代替テキスト。
      • message.contents (any): Flexメッセージの内容。メッセージのレイアウトとコンポーネントを定義するJSONオブジェクトです。
      • message.contents.type (enum): コンテナのタイプ。単一コンテナの場合は 'bubble'、スワイプ可能な複数バブルの場合は 'carousel'。
  5. get_profile

    • 表示名、プロフィール画像URL、ステータスメッセージ、言語など、LINEユーザーの詳細なプロフィール情報を取得します。
    • 入力:
      • userId (string?): プロフィールを取得したいユーザーのID。デフォルトはDESTINATION_USER_IDです。
  6. get_message_quota

    • LINE Official Accountのメッセージ割り当て数と消費量を取得します。月間メッセージ制限と現在の使用量が表示されます。
    • 入力:
      • なし
  7. get_rich_menu_list

    • LINE Official Accountに関連付けられたリッチメニューのリストを取得します。
    • 入力:
      • なし
  8. delete_rich_menu

    • LINE Official Accountからリッチメニューを削除します。
    • 入力:
      • richMenuId (string): 削除するリッチメニューのID。
  9. set_rich_menu_default

    • リッチメニューをデフォルトのリッチメニューとして設定します。
    • 入力:
      • richMenuId (string): デフォルトとして設定するリッチメニューのID。
  10. cancel_rich_menu_default

    • デフォルトのリッチメニューを解除します。
    • 入力:
      • なし
  11. create_rich_menu

    • 指定されたアクションに基づいてリッチメニューを作成します。画像を生成してアップロードします。デフォルトとして設定します。
    • 入力:
      • chatBarText (string): チャットバーに表示されるテキスト。リッチメニュー名としても使用されます。
      • actions (array): リッチメニューのアクション。最小1つ、最大6つのアクションを指定できます。各アクションは次のいずれかのタイプになります:
        • postback: ポストバックアクションを送信する場合
        • message: テキストメッセージを送信する場合
        • uri: URLを開く場合
        • datetimepicker: 日付/時刻ピッカーを開く場合
        • camera: カメラを開く場合
        • cameraRoll: カメラロールを開く場合
        • location: 現在地を送信する場合
        • richmenuswitch: 別のリッチメニューに切り替える場合
        • clipboard: テキストをクリップボードにコピーする場合
  12. get_follower_ids

    • LINE Official Accountを友だち追加したユーザーのユーザーIDリストを取得します。これにより、手動で準備することなく、メッセージ送信用のユーザーIDを取得できます。
    • 入力:
      • start (string?): 次のユーザーID配列を取得するための継続トークン。前回のレスポンスの next プロパティで返されます。
      • limit (number?): 1回のリクエストで取得するユーザーIDの最大数。

インストール (npxを使用)

要件:

  • Node.js v22以降

ステップ1: LINE Official Accountの作成

このMCPサーバーはLINE Official Accountを利用します。お持ちでない場合は、こちらの手順に従って作成してください。

LINE Official Accountをお持ちの場合は、こちらの手順に従って、LINE Official AccountのMessaging APIを有効にしてください。

ステップ2: AIエージェントの設定

Claude DesktopやClineなどのAIエージェントに以下の設定を追加してください。

環境変数または引数を次のように設定します:

  • CHANNEL_ACCESS_TOKEN: (必須) チャネルアクセストークン。こちらの手順で確認できます。
  • DESTINATION_USER_ID: (オプション) 受信者のデフォルトユーザーID。ツールの入力に userId が含まれていない場合、DESTINATION_USER_ID が必要です。こちらの手順で確認できます。
{
  "mcpServers": {
    "line-bot": {
      "command": "npx",
      "args": [
        "@line/line-bot-mcp-server"
      ],
      "env": {
        "NPM_CONFIG_IGNORE_SCRIPTS": "true",
        "CHANNEL_ACCESS_TOKEN" : "FILL_HERE",
        "DESTINATION_USER_ID" : "FILL_HERE"
      }
    }
  }
}

インストール (Dockerを使用)

ステップ1: LINE Official Accountの作成

このMCPサーバーはLINE Official Accountを利用します。お持ちでない場合は、こちらの手順に従って作成してください。

LINE Official Accountをお持ちの場合は、こちらの手順に従って、LINE Official AccountのMessaging APIを有効にしてください。

ステップ2: line-bot-mcp-serverイメージのビルド

このリポジトリをクローンします:

git clone [email protected]:line/line-bot-mcp-server.git

Dockerイメージをビルドします:

docker build -t line/line-bot-mcp-server .

ステップ3: AIエージェントの設定

Claude DesktopやClineなどのAIエージェントに以下の設定を追加してください。

環境変数または引数を次のように設定します:

  • mcpServers.args: (必須) line-bot-mcp-server へのパス。
  • CHANNEL_ACCESS_TOKEN: (必須) チャネルアクセストークン。こちらの手順で確認できます。
  • DESTINATION_USER_ID: (オプション) 受信者のデフォルトユーザーID。ツールの入力に userId が含まれていない場合、DESTINATION_USER_ID が必要です。 こちらの手順で確認できます。
{
  "mcpServers": {
    "line-bot": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "CHANNEL_ACCESS_TOKEN",
        "-e",
        "DESTINATION_USER_ID",
        "line/line-bot-mcp-server"
      ],
      "env": {
        "CHANNEL_ACCESS_TOKEN" : "FILL_HERE",
        "DESTINATION_USER_ID" : "FILL_HERE"
      }
    }
  }
}

Inspectorを使用したローカル開発

MCP Inspectorを使用して、サーバーをローカルでテストおよびデバッグできます。

前提条件

  1. リポジトリをクローンします:
git clone [email protected]:line/line-bot-mcp-server.git
cd line-bot-mcp-server
  1. 依存関係をインストールします:
npm install
  1. プロジェクトをビルドします:
npm run build

Inspectorの実行

プロジェクトのビルド後、MCP Inspectorを起動できます:

npx @modelcontextprotocol/inspector node dist/index.js \
  -e CHANNEL_ACCESS_TOKEN="YOUR_CHANNEL_ACCESS_TOKEN" \
  -e DESTINATION_USER_ID="YOUR_DESTINATION_USER_ID"

これにより、MCP Inspectorインターフェースが起動し、LINE Bot MCP Serverツールと対話して機能をテストできます。

バージョン管理

このプロジェクトはセマンティックバージョニングに準拠しています

http://semver.org/ を参照してください

貢献

貢献する前に CONTRIBUTING をご確認ください。