最速でLINE Messaging APIのMCPサーバーを試す


## はじめに

本日（2025/4/14）、Messaging APIのMCPサーバー「LINE Bot MCP Server」が公開されました。

https://developers.line.biz/ja/news/2025/04/14/line-bot-mcp-server/

本機能についてのQiitaの記事は現時点で存在していないようなので、本記事でその使い方を解説していきます。

:::note warn
公開されたMCPはまだ実験的な機能の段階であり、完全な機能やサポートなどが含まれていないそうなので、ご注意ください
:::


なお、MCPを使ってLINEメッセージを送る試み自体は、こちらの記事で詳細に解説されていましたので、ご参考までに。

https://qiita.com/yuto_tachiki/items/36603ce356cf07e7cc6f

公式から発表されるよりも前に、自前でLINEメッセージ送信用のMCPサーバーを実装している、とてもわかりやすい記事で、参考になりました。

## 事前準備
MCPサーバーを試すにあたって、いくつか準備が必要です。
本記事では以下の項目について解説します。

* [MCPクライアント](#mcpクライアント)
* [LINE関連設定](#line関連の設定)
    * [LINE公式アカウント、Messaging APIチャネル作成](#アカウントチャネルの準備)
    * [チャネルアクセストークンの確認](#チャネルアクセストークンの確認)
    * [LINEユーザーIDの確認](#lineユーザーidの確認)
 
なお、このほかに**Node.js（バージョン20以上）が必要**となりますが、こちらは割愛します。

### MCPクライアント
MCPを利用するにはMCPクライアントが必要です。本記事ではClaude Desktopを利用します。
以下からダウンロードできます。

https://claude.ai/download

### LINE関連の設定
#### アカウント、チャネルの準備
Messaging APIの機能を利用するには
* LINE公式アカウント
* Messaging APIチャネル
の作成が必要です。

こちらの記事で作成方法をまとめていますので、参考にしてください。

https://qiita.com/course_k/items/00804420e61b7514bf30

#### チャネルアクセストークンの確認
LINE Developersコンソールの
プロバイダー > チャネル > Messaging API設定タブから確認できます。

https://developers.line.biz/console/

<img width='80%' src='https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/251137/e02de074-b931-4cd8-85ce-8705e368d53f.png'>

なお、初回は以下のように「発行」ボタンが表示されているはずなので、ボタンを押下してください。
<img width='80%' src='https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/251137/12029f3b-f46d-4f2e-8828-da19a72f03fb.png'>

#### LINEユーザーIDの確認
LINEユーザーIDは個人のLINEアカウントIDとは異なります。
Messaging APIを利用してメッセージを送る先を特定するために使用されます。

こちらの確認方法は少し複雑なので順を追って確認します。

* LINE公式アカウントに、自分の個人LINEアカウントを連携する
* Webhookから確認する

大別して上記の2通りがありますが、Webhookでの確認は更に複雑なので本記事では割愛します。
（大まかに言うと、Webhookを受け取るサーバーを用意して、webhookを飛ばして、その中身を確認することで取得できます。）

##### 個人LINEアカウントを連携する
:::note info
 LINE Buisiness IDの登録の際、メールアドレスではなく、LINEアカウントで登録している場合、以降の手順は不要です。
Messaging APIチャネルの基本設定タブから、自分のLINE IDを確認することができます。
:::

個人LINEアカウントを連携するには、LINE Developersコンソールから設定します。

コンソールの右上のプロフィールアイコンから、プロフィール設定にアクセスします。
※名前とメールアドレスが表示されている部分をクリック
<img width='80%' src='https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/251137/2f3aad0d-86b4-4719-b964-6978ad1291a2.png'>

プロフィール下部の「LINE Buisiness ID」から「LINEビジネスIDプロフィールに移動」を押下します。
<img width='80%' src='https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/251137/84c963f1-a6c1-46df-aa5a-ede2d0a420c5.png'>

プロフィール設定画面に遷移するので、「LINE」の右側にあるリンクマークをクリックします。
<img width='80%' src='https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/251137/e8b5281f-fa51-4b60-a2c3-270b4c820b58.png'>
※連携済の場合、連携しているLINEアカウントのプロフィール画像と、LINE名が表示されます。

LINEログイン画面へ遷移するので、任意の方法でLINEログインを行ってください。
これで、LINEアカウント連携は完了です。

##### LINEユーザーIDを確認する
LINE Developersコンソールの
プロバイダー > チャネル > チャネル基本設定タブから確認できます。
画面下部の「あなたのユーザーID」に表示されている項目が、LINEユーザーIDになります。
<img width='80%' src='https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/251137/fd74be75-a7bb-4252-a4ae-6dec914821bf.png'>

:::note warn
LINE連携ができていない場合、「あなたのユーザーID」という項目自体が表示されません。
ない場合は、連携の設定を見直してください。
:::

これでようやくMCPを試すための準備が整いました。

## Messaging APIのMCPを使ってみる
### MCPリポジトリを取得する
任意のディレクトリ上で、MCPリポジトリをクローンします。
```shell
git clone https://github.com/line/line-bot-mcp-server.git
```

クローンしたディレクトリに移動し、依存関係のインストール、およびビルドを行います。
```shell
cd line-bot-mcp-server
npm install
npm run build
```

### MCPクライアントを設定する
本記事ではClaude DesktopをMCPクライアントとして使用します。
Claude Desktopを立ち上げ、「設定」から開発者の「構成を編集」を押下します。

<img width='80%' src='https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/251137/4d25bacb-afa0-411b-b332-c9b3a498797c.png'>

フォルダが開くので、`claude_desktop_config.json`を編集します。
<img width='80%' src='https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/251137/f5fe0404-556e-40e7-b687-c7af57299a99.png'>

ファイルに以下の内容を書き込みます。
```json:claude_desktop_config.json
{
  "mcpServers": {
    "line-bot": {
      "command": "node",
      "args": [
        "{クローンしたディレクトリのパス}/line-bot-mcp-server/dist/index.js"
      ],
      "env": {
        "CHANNEL_ACCESS_TOKEN": "取得したチャネルアクセストークン",
        "DESTINATION_USER_ID": "取得したLINEユーザーID"
      }
    }
  }
}
```
以下3つの情報は、それぞれの環境に合わせて設定してください。
`args`：MCPのリポジトリを取得したディレクトリのパス
`CHANNEL_ACCESS_TOKEN`：事前準備で確認したチャネルアクセストークン
`DESTINATION_USER_ID`：事前準備で確認したLINEユーザーID

以上の設定が完了したら、Claude Desktopを一度終了し、再度立ち上げてください。

成功すると、以下のようにオプションとしてカナヅチのようなマークが表示されます。
<img width='80%' src='https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/251137/b8968730-007f-489a-b959-d0807fde7a2a.png'>

こちらをクリックすると利用できるMCPのツールが表示されます。
<img width='80%' src='https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/251137/3e8abae0-ffd5-4a56-85d7-0b523574b47d.png'>

<details><summary>エラーになった場合</summary>
nodeをvoltaやnvmといったバージョン管理ツールを使用してインストールしている場合、以下のようなエラーが表示されることがあります。

<img width='80%' src='https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/251137/f4bc3f9f-fdb3-4cd7-b8e3-ed879d9591a9.png'>

```plaintext:エラー文抜粋
MCP line-bot: spawn node ENOENT
Could not connect to MCP server line-bot
MCP line-bot: Server disconnected. For troubleshooting guidance, please visit our debugging documentation
```
「MCP設定を開く」を押下することで、ログファイルのディレクトリに移動するので、そちらからエラーの詳細を確認できます。

ここでは、nodeコマンドの実行できないことがエラーの原因となっています。
その場合、voltaやnvmで使用しているnodeのパスを直接設定ファイルに指定することで解決できます。

以下のコマンドを実行することで、使用しているnodeがわかります。
```shell
which node
```
私はvoltaを使用していたため、以下のように表示されました。

<img width='80%' src='https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/251137/5d228c5f-e03a-4b7f-b2cb-2e69ce206657.png'>

ここで表示されたパスを、`claude_desktop_config.json`の`command`の部分に設定します。

```json:claude_desktop_config.json 設定例
{
  "mcpServers": {
    "line-bot": {
      "command": "/Users/user/.volta/bin/node",
      以降省略
    }
  }
}
```
設定完了後、Claude Desktopを終了し、立ち上げることでエラーが解消するはずです。
</details>

### MCPを使う
#### 普通のメッセージを送る
ここまでの設定で、完全に下準備が整いました。

試しに以下のようにClaudeに指示してみます。
<img width='80%' src='https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/251137/84cd1f99-90d2-4db9-8f5f-cbd6a0c33ab8.png'>

実行の許可を求められるので、「このチャットで許可する」とします。
<img width='80%' src='https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/251137/ece96331-65a2-4cdb-ad1b-9e84a313d3de.png'>

処理が終わったようです。
<img width='80%' src='https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/251137/c18f58d6-e37e-454f-a899-8308eae2b64e.png'>

設定に使用したLINE公式アカウントからメッセージが届いていました。
<img width='80%' src='https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/251137/00859ef2-7967-46ee-a34e-e4c09799c275.png'>

#### Flexメッセージを送る
Flexメッセージはテキストだけでなく、画像やボタンなどを組み合わせることができるリッチなメッセージで、キャンペーンのお知らせなどに有効です。

Flex Messageの詳細については以下の記事を参考にしてください。

https://qiita.com/course_k/items/a5b5392f21e7e8869f83

Flex Messageはできることが多く高い自由度を持つため困ってしまいます。
そこで、まずはどんな案があるか聞いてみましょう。

<img width='80%' src='https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/251137/84b4cd17-bdb4-4aa5-89c7-551e0cc7e9b7.png'>

いい感じの提案がされましたね。
このまま送ってみます。

<img width='80%' src='https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/251137/2f27e551-a2d1-416c-b44d-6f08eacbc6ed.png'>

再びツールの使用許可を求められるので、許可します。
（先ほどとは違うツールを使っているため再度表示されているものと思われます。）

<img width='80%' src='https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/251137/37883429-60ae-4e28-9535-6fbb36dbc949.png'>

処理が終わったようです。
<img width='80%' src='https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/251137/eaf37124-3afa-457c-a015-4c9a121c6edb.png'>

かなりいい感じのFlex Messageが届いていました。
<img width='60%' src='https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/251137/4b0d26e1-cb56-420c-97a5-85455652e50c.png'>

指示には入れていませんでしたが、画像が使われているので、出どころを聞いてみます。
<img width='80%' src='https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/251137/c3c6274e-25db-4ea5-992a-18ca38144c93.png'>

LINE公式の開発者向けサンプル画像のようです。
[はじめに](#はじめに)で紹介したニュースの中でも使用されているので、この情報は正しいものだとわかりました。

このように、やり取りしながらメッセージが送れるのは生成AIならではという感じがします。

#### プロフィールを取得する
最後に、プロフィールを取得してみます。
許可しておきます。

<img width='80%' src='https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/251137/be9bc8c1-8a2f-493b-96e2-7de76bfc8233.png'>

個人アカウントの情報なのでほとんど見せられませんが、正しく取得できました。

<img width='80%' src='https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/251137/40bcecea-29f2-44b5-8e3a-c7a2a030a407.png'>

これで、現時点で公開されているLINE Messaging APIの機能は以上になります。

## まとめ
いまなにかと話題のMCPについて、LINE Messaging APIも公開されていたので、早速試してみました。

初めてMCPを使いましたが、対話形式で使えるのはかなり有用だなと感じました。
特にアイディアの壁打ちをして、その結果をそのままFlex Messageとして送信できる部分は魅力的だと思います。

まだ生成AI自体も使いこなせていませんし、当然MCPも知識が足りていませんが、うまく使えばかなり強力なツールになると感じています。

一方、送信対象のLINEユーザーIDを設定ファイルにいちいち書かなければならない点は少し使いにくさを感じました。
ここは使用するMCPクライアントや、設定でカバーできる部分なのかもしれませんが、複数の送信対象を指定できたり、より簡易的な指定方法があれば、より実践的に使えるのかなと感じています。

とはいえ、まだ実験的な段階とのことなので、今後のアップデートに期待したいです。

もしよければ、いいねやフォローをいただけると大変よろこびます

## 参考にしたサイト

https://speakerdeck.com/minorun365/yasasiimcpru-men


https://azukiazusa.dev/blog/typescript-mcp-server/