LINE公式アカウントとAI Agentを接続するために、LINE Messaging APIを統合するModel Context Protocol (MCP) Server
Note
このリポジトリはプレビュー版として提供されています。実験的な目的で提供されており、完全な機能や包括的なサポートが含まれていないことにご注意ください。
- push_text_message
- LINEでユーザーにシンプルなテキストメッセージを送信する。
- 入力:
user_id(string?): メッセージ受信者のユーザーID。デフォルトはDESTINATION_USER_ID。user_idまたはDESTINATION_USER_IDのどちらか一方は必ず設定する必要があります。message.text(string): ユーザーに送信するテキスト。
- push_flex_message
- LINEでユーザーに高度にカスタマイズ可能なフレックスメッセージを送信する。
- 入力:
user_id(string?): メッセージ受信者のユーザーID。デフォルトはDESTINATION_USER_ID。user_idまたはDESTINATION_USER_IDのどちらか一方は必ず設定する必要があります。message.altText(string): フレックスメッセージが表示できない場合に表示される代替テキスト。message.content(any): フレックスメッセージの内容。メッセージのレイアウトとコンポーネントを定義するJSONオブジェクト。message.contents.type(enum): コンテナのタイプ。'bubble'は単一コンテナ、'carousel'は複数のスワイプ可能なバブルを示す。
- broadcast_text_message
- LINE公式アカウントと友だちになっているすべてのユーザーに、LINEでシンプルなテキストメッセージを送信する。
- 入力:
message.text(string): ユーザーに送信するテキスト。
- broadcast_flex_message
- LINE公式アカウントと友だちになっているすべてのユーザーに、LINEで高度にカスタマイズ可能なフレックスメッセージを送信する。
- 入力:
message.altText(string): フレックスメッセージが表示できない場合に表示される代替テキスト。message.content(any): フレックスメッセージの内容。メッセージのレイアウトとコンポーネントを定義するJSONオブジェクト。message.contents.type(enum): コンテナのタイプ。'bubble'は単一コンテナ、'carousel'は複数のスワイプ可能なバブルを示す。
- get_profile
- LINEユーザーの詳細なプロフィール情報を取得する。表示名、プロフィール画像URL、ステータスメッセージ、言語を取得できる。
- 入力:
user_id(string?): プロフィールを取得したいユーザーのユーザーID。デフォルトはDESTINATION_USER_ID。user_idまたはDESTINATION_USER_IDのどちらか一方は必ず設定する必要があります。
- get_message_quota
- LINE公式アカウントのメッセージ容量と消費量を取得します。月間メッセージ制限と現在の使用量が表示されます。
- 入力:
- なし
- get_rich_menu_list
- LINE公式アカウントに登録されているリッチメニューの一覧を取得する。
- 入力:
- なし
- delete_rich_menu
- LINE公式アカウントからリッチメニューを削除する。
- 入力:
richMenuId(string): 削除するリッチメニューのID。
- set_rich_menu_default
- リッチメニューをデフォルトとして設定する。
- 入力:
richMenuId(string): デフォルトとして設定するリッチメニューのID。
- cancel_rich_menu_default
- デフォルトのリッチメニューを解除する。
- 入力:
- なし
- create_rich_menu
- 指定されたアクションに基づいてリッチメニューを作成。画像を生成してアップロード。デフォルトとして設定する。
- 入力:
chatBarText(string): チャットバー表示、リッチメニュー名にされるテキスト。actions(array): リッチメニューのアクション。最小1つから最大6つのアクションを指定できる。各アクションは以下のいずれかのタイプを指定できる:postback: ポストバックアクションを送信するmessage: テキストメッセージを送信するuri: URLを開くdatetimepicker: 日付/時間選択ツールを開くcamera: カメラを開くcameraRoll: カメラロールを開くlocation: 現在位置を送信するrichmenuswitch: 別のリッチメニューに切り替えるclipboard: テキストをクリップボードにコピーする
要件:
- Node.js v20 以上
このMCP ServerはLINE公式アカウントを利用しています。公式アカウントをお持ちでない場合は、こちらの手順に従って作成してください。
LINE公式アカウントをお持ちであれば、こちらの手順に従ってMessaging APIを有効にしてください。
Claude DesktopやClaudeなどのAI Agentに次の設定を追加してください。
環境変数や引数は次のように設定してください:
CHANNEL_ACCESS_TOKEN: (必須) チャネルアクセストークン。これを取得するには、こちらの手順に従ってください。DESTINATION_USER_ID: (オプション) デフォルトのメッセージ受信者のユーザーID。Toolの入力にuser_idが含まれていない場合、DESTINATION_USER_IDは必ず設定する必要があります。これを確認するには、こちらの手順に従ってください。
{
"mcpServers": {
"line-bot": {
"command": "npx",
"args": [
"@line/line-bot-mcp-server"
],
"env": {
"CHANNEL_ACCESS_TOKEN" : "FILL_HERE",
"DESTINATION_USER_ID" : "FILL_HERE"
}
}
}
}このMCP ServerはLINE公式アカウントを利用しています。公式アカウントをお持ちでない場合は、こちらの手順に従って作成してください。
LINE公式アカウントをお持ちであれば、こちらの手順に従ってMessaging APIを有効にしてください。
このリポジトリをクローンします:
git clone git@github.com:line/line-bot-mcp-server.git
Dockerイメージをビルドします:
docker build -t line/line-bot-mcp-server .
Claude DesktopやClaudeなどのAI Agentに次の設定を追加してください。
環境変数や引数は次のように設定してください:
mcpServers.args: (必須)line-bot-mcp-serverへのパス。CHANNEL_ACCESS_TOKEN: (必須) チャネルアクセストークン。これを取得するには、こちらの手順に従ってください。DESTINATION_USER_ID: (オプション) デフォルトのメッセージ受信者のユーザーID。Toolの入力にuser_idが含まれていない場合、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"
}
}
}
}MCP Inspector を使用して、サーバーをローカルでテストおよびデバッグできます。
- リポジトリをクローンする:
git clone git@github.com:line/line-bot-mcp-server.git
cd line-bot-mcp-server- 依存関係をインストールする:
npm install- プロジェクトをビルドする:
npm run buildプロジェクトをビルドした後、MCP Inspector を起動できます:
npx @modelcontextprotocol/inspector node dist/index.jsこれにより、MCP Inspector インターフェースが起動し、LINE Bot MCP Server のツールを操作して機能をテストできます。
