LINE Botから自分のLINEアカウントにメッセージを送信するMCPサーバーを作ることができたので、作り方についてまとめます。PythonのFastMCPというライブラリを使うことにより少ないコード量で作成でき、Linux PCやラズパイ等のシングルボードコンピュータ(SBC)で実行できます。
また、タイトルから少し脱線しますが、記事の最後で「スタックチャン」という手のひらサイズのコミュニケーションロボットをAIエージェント(MCPホスト)として、音声操作でMCPサーバを使用する事例も紹介します。
1. 開発環境
- Linux PCまたはラズパイ等のSBC
- Python3
- ライブラリ:FastMCP
2. 事前準備
2.1. LINE Botの作成
こちらの記事等を参考に、以下の準備を事前に完了してください。
LINE Bot のセットアップ @しげる
- Bot (LINE公式アカウント) を作成
- Messaging APIを有効化
- チャネルアクセストークンを発行
- 自分のLINEアカウントでBotを友だちに追加
- 自分のユーザーIDを取得
ここで取得したアクセストークンとユーザーIDをMCPサーバーのプログラムで使用します。
3. 作り方
3.1. 必要なソフトウェアをインストール
uvをインストール
こちらの記事等を参考にインストールします。
uv の使い方 @npaka
プロジェクトを作成
uvのプロジェクトを作成します。以降はこのプロジェクトのフォルダ内で作業します。
uv init -p 3.10 project
cd project
ライブラリをインストール
uv add fastmcp
uv add line-bot-sdk
3.2. MCPサーバーのプログラミング
次のPythonスクリプトをmain.pyというファイル名でプロジェクトフォルダに保存します(ファイル名は任意で大丈夫です)。
import os
from fastmcp import FastMCP
from linebot import LineBotApi
from linebot.models import TextSendMessage
mcp = FastMCP("LINE MCP Server")
CHANNEL_ACCESS_TOKEN = os.environ.get("LINE_BOT_ACCESS_TOKEN")
USER_ID = os.environ.get("LINE_USER_ID")
if not CHANNEL_ACCESS_TOKEN or not USER_ID:
raise RuntimeError("LINE_BOT_ACCESS_TOKEN and/or LINE_USER_ID environment variables are not set.")
line_bot_api = LineBotApi(CHANNEL_ACCESS_TOKEN)
@mcp.tool()
def send_line_message(message: str) -> str:
'''
Send a message to the configured LINE user ID.
Args:
message: The message to send to the LINE user.
Returns:
result
'''
try:
line_bot_api.push_message(USER_ID, TextSendMessage(text=message))
return "Message sent successfully."
except Exception as e:
return f"Failed to send message: {e}"
if __name__ == "__main__":
mcp.run(
transport="sse",
host="0.0.0.0",
port=8020
)
解説:
FastMCPのおかげで非常に簡単なコードでMCPツールを実装することができています。@mcp.tool()以下で定義された関数send_line_message()が、引数で受けた文字列をBotから自分のLINEアカウントへのメッセージとして送信するツールの実装です。
mcp.run()の引数を「transport="sse"」とすることで、トランスポートをStreamable HTTPとしています。こうすることで、異なるPCからでもIPアドレスとポートを指定することでこのMCPサーバーを利用することができます。
アクセストークンと自分のLINEアカウントのユーザーIDは、環境変数から読み込んでいるため、実行前に次のように環境変数として設定してください。
export LINE_BOT_ACCESS_TOKEN=********
export LINE_USER_ID=********
3. 使い方
3.1. Clineで使用する例
VSCodeの拡張機能ClineでMCPサーバーを利用する方法です。Cline自体のインストールやLLMのAPIキーの登録等については割愛します。
作成したMCPサーバーを実行しておきます。
cd (プロジェクトフォルダ)
uv run main.py
Clineの「Config MCP Servers」で次のようにMCPサーバーを追加します。
{
"mcpServers": {
"line": {
"autoApprove": [],
"disabled": false,
"timeout": 60,
"url": "http://(MCPサーバーPCのIPアドレス):8020/sse",
"type": "sse"
}
}
}
接続できると、次のようにMCPサーバーとして登録されます。作成したsend_line_messageがツールとして見えています。
ここまで設定できれば、「LINEで”こんにちは”というメッセージを送信して」のように入力するとMCPサーバーを使用してくれます。
3.2.【番外編】スタックチャンで使用する例
スタックチャンのことはあまり知らないけど気になる、という方はこちらの私が過去に書いた記事などをご参照願います。
私がGithubで公開しているスタックチャンのファームウェア「AI Stack-chan Ex」は、OpenAI等の生成AIサービスのAPIを利用した会話機能、及びMCPクライアント機能を実装しています。SDカードのYAMLファイルでMCPサーバーを登録することで、次の動画のように会話を通してMCPサーバーの機能を利用することができます。
スタックチャン: OpenAI Realtime API
— motoh (@motoh_tw) April 14, 2026
ラズパイ: LINE Bot MCPサーバー
という構成で、スタックチャンからLINEメッセージを受け取ることができた!
これで何か面白い展示できないかな#スタックチャン pic.twitter.com/DL42UR7T4f
ファームウェアのビルド、書き込み、YAMLの設定方法などはREADMEに詳しく記載していますので、ぜひトライしてみてください。もしわかりづらい点があれば、スタックチャンのDiscord等で質問いただければ可能な限りサポートします。
