お使いのパソコン
接続説明書

L Harness・Claude Code
公式LINE連携設定

高額なシステムを使わなくても、無料のLINE自動化ツールL HarnessとClaude Codeをつなぐだけで、LINE公式アカウントをぐっと便利に運営できます。
治療院、サロン、美容室、トレーナー、カフェなど、どんな業種でも活用でき、お店の運営が一歩進みます。
まずテスト用のLINEで試してから、本番のLINEへ切り替えるのがおすすめです。

所要時間 約30分〜1時間 費用 無料の範囲で可能 パソコン Mac・Windows

テスト用のLINEで先に試す場合は+約15分、Node.jsやGitが入っていない場合は+約10分

STARTはじめに

最初に読んでくださいできることと、本番のLINEへの影響

つなぐと、どんなことができるか

Claude Codeに、ふだんの言葉で頼むだけで、LINE公式アカウントの作業を進められるようになります。
たとえば次のような頼み方ができます。

  • 「先月友だち追加した人のうち、まだタグが付いていない人を一覧にして」
  • 「どのQRコードやリンクから、友だち追加が多いか教えて」
  • 「初回の来店後7日間に届けるステップ配信の、文章の下書きを作って」
  • 「この3人に、初回来店のタグを付けて」

送信や作成など、LINEの中身を変える操作は、STEP 10-3の設定で止めておき、使うときだけ許可する形にします。

この仕組みを使って、ステップ配信や、AIが自動で答えるLINEのチャットボットなども開発できます。
この説明書は、その土台づくりです。

業種ごとの活用例

名前は一例です。お店に合った名前を自由に付けられます。

業種AIチャットボットの例ステップ配信の例
治療院・整体院AI院長
院の方針や考え方、施術の流れ、よくある質問に答える。来院後の体調のフォローに返事をする。
初回の来院後7日間、セルフケアや通院の目安を順番に届ける。
サロン・エステAIコンシェルジュ
メニュー、料金、予約の方法、施術後のケアに答える。
施術後のホームケアのコツ、次回のご予約のご案内。
美容室AIスタイリスト
カラーやパーマの持ち、スタイリングの方法に答える。
来店3週間後にお手入れのコツ、2か月後に来店のご案内。
トレーナー・ジムAIコーチ
食事や運動の質問、続けるコツに答える。
入会後の1週間、準備や記録のつけ方を届ける。
喫茶店・小さなお店AI店長
営業時間、メニュー、季節の限定品、駐車場について答える。
友だち追加のお礼クーポン、季節のメニューのお知らせ。
教室・小さな事業AI受付
日程、持ち物、料金、申し込みの方法に答える。
申し込み後の準備の案内、前日のリマインド。

テスト用のLINEで先に試すのがおすすめな理由

いまお客さん(治療院なら患者さん)とやり取りしているLINE公式アカウントに、いきなりつなぐと、お客さんへの返信やあいさつが変わったり、止まったりすることがあります。
お客さんがいないテスト用のLINEで一度動かしておくと、手順と動きが分かり、本番を安心して進められます。
この説明書は、そのまま本番のLINEに入れても進められる書き方にしています。本番で気をつける所には、本番のLINEで行うときの囲みを付けています。

本番のLINEにつないだときに起こりうること

起こりうること大きさ理由と、防ぎ方
あいさつ・自動返信が出なくなる、または二重に出る大L Harnessで返信を制御するため、LINE側の自動返信をオフにします。
オフにする前に、L Harness側で同じ内容を用意します(STEP 7)。
いま使っている別のツールが止まる大Webhook(受け取り先)は1か所しか登録できません。
ほかのLINEツールがつながっている場合、切り替えた時点で止まります(STEP 6)。
予約・問診・会員管理などの別システムからの送信が止まる大チャネルアクセストークン(長期)を発行し直すと、古い鍵が使えなくなることがあります(STEP 5)。
知らない人がログインできる中LINEログインのチャネルを公開すると、URLを知っている人なら使えます。
URLを広めないようにします(STEP 8)。
配信の通数を使いすぎる小こちらから送るメッセージは、LINEの料金プランの通数に数えられます。
一斉配信は、毎回内容と相手を確認してから行います。
本番のLINEで作業するときのお約束

お客さんへの影響が出にくい時間(定休日・休診日や、営業時間外)に行ってください。
お店や院の責任者の承認を取ってから進めてください。

用意するもの

  • パソコン(MacまたはWindows)とGoogle Chromeページ上部のボタンで、お使いのパソコンに表示を切り替えられます。
  • Claude Codeインストールの方法はSTEP 4にあります。
  • LINE公式アカウントと、その管理者のLINE(スマホ)本番で使うアカウント。テストで試す場合は、新しく作るアカウント。
  • クレジットカードCloudflareの保存機能(R2)を有効にするときに登録します。無料の範囲なら請求はありません。
  • パソコンの空き容量 約1GBプログラムの部品を置きます。本体はCloudflare上で動きます。
HELP困ったら

迷ったら、Claudeに手伝ってもらう初めての方でも、ひとりで抱えなくて大丈夫です

画面を見せて聞く

迷った画面のスクリーンショットを撮り、Claude Codeに貼り付けて聞きます。

「この画面は、どう設定すればいいですか? いまL Harnessの説明書のSTEP 3をやっています」

スクリーンショットは⌘+shift+4Windows+shift+Sで撮れます。

Claude in Chromeに操作を頼む

Claude in Chromeは、Chromeに追加して使う、Claudeの拡張機能です。
Chromeの画面を見ながら、クリックや入力を手伝ってくれます。

この説明書の文章や画面写真をコピーして「この操作を実行してください」と頼む
本人が操作する必要がある所

アカウントの作成、ログイン、パスワードの入力、APIキーやトークンの取得と入力は、最初は本人の操作が必要です。
AIに代わりに入力してもらうことはできないため、その場面ではご自身で操作してください。

スクリーンショットを送る前に、鍵が写っていないか確かめてください。
チャネルシークレット、アクセストークン、APIキーが写っている画面は、AIにも人にも送らないようにします。

エラーの直し方は、よくあるエラーと直し方にもまとめています。

WORDS用語

用語集分からない言葉が出たら、ここに戻ってきてください

L Harnessエル ハーネス
LINE公式アカウントを自動化する無料のプログラム。ステップ配信、友だち管理などができます。開発者は野田修一さん。以前は LINE Harness という名前でした。
Cloudflareクラウドフレア
プログラムを24時間動かしておける場所を貸してくれる会社。L Harnessはここで動きます。
Workerワーカー
Cloudflareの上で動くプログラムのこと。L Harnessの本体です。
D1・R2ディーワン・アールツー
CloudflareのデータベースがD1、画像などの保存場所がR2です。
Messaging APIメッセージング エーピーアイ
LINE公式アカウントを、外のプログラムから動かすための仕組み。
プロバイダー
LINE Developersの中で、チャネルをまとめるフォルダのようなもの。あとから別のプロバイダーへは移せません。
チャネル
LINEの機能ごとの設定の入れ物。Messaging API用とLINEログイン用の2つを使います。
LINEログイン・LIFFリフ
LINEのアカウントで本人確認する仕組みと、LINEの中で開くWebページの仕組み。友だちを正しく記録するために使います。
Webhookウェブフック
LINEにメッセージが届いたとき、知らせを送る先のURL。1つのLINEに1か所だけ登録できます。
チャネルシークレット・アクセストークン
LINEを操作するための合鍵。人に見せたり、チャットに貼ったりしてはいけません。
APIキー
L Harnessの管理画面や、Claude Codeから操作するための合鍵。これも人に見せません。
MCPエムシーピー
Claude Codeと外のツールをつなぐ部品。これを登録すると、L Harnessを言葉で操作できます。
チャットボット
LINEに届いた質問に、AIが自動で返事をするしくみ。名前は自由です(例 治療院ならAI院長、サロンならAIコンシェルジュ、カフェならAI店長)。
ステップ配信
友だち追加などをきっかけに、決めた順番と日数で、メッセージを自動で届けるしくみ。
ターミナル
PowerShellパワーシェル
Macに入っている、文字で命令を打ち込むアプリ。⌘+spaceで「ターミナル」と入力して開きます。
Windowsに入っている、文字で命令を打ち込むアプリ。Windowsキーを押して「PowerShell」と入力して開きます。
コマンド
文字で打ち込む命令文。この説明書では、コピーして貼り付けるだけで使えます。
クリップボード
コピーした内容が、一時的に置かれる場所。次に何かをコピーすると、前の内容は消えます。
デプロイ
プログラムをインターネット上(今回はCloudflare)に置いて、使える状態にすること。
MAP全体

しくみと、作業の順番どこで何をしているのかを先に知っておきます

L Harnessの本体はCloudflare上で24時間動きます。
パソコンは、設定と更新のときだけ使います。

作業の順番

  1. 1Cloudflareの登録とログイン5〜10分保存機能(R2)を有効にする
  2. 2LINE公式アカウントの準備3〜5分Messaging APIを有効にする
  3. 3LINEログインとLIFF5分Messaging APIと同じプロバイダーに作る
  4. 4パソコンの準備3〜5分必要なソフトの確認と、プログラムの取得
  5. 5設定ツールでL Harnessを入れる5〜10分質問に答えると、設置まで自動
  6. 6LINEにURLを設定する5分Webhook、Callback URL、LIFF
  7. 7LINE側の自動返信を止める3分あいさつメッセージなど
  8. 8友だち追加で動作確認3分LINEログインのチャネルを公開する
  9. 9管理画面にログイン2分APIキーで入る
  10. 10Claude Codeとつなぐ5分MCPの登録と、安全のための設定
  11. 11接続確認と使い方3分Claude Codeから読み取れたら完成

あなたの値を入れると、コマンドが自動で書き換わります

STEP 4からSTEP 11のコマンドは、ここに入れた値に合わせて書き換わります。
WorkerのURLは、STEP 5の最後に分かります。分かったら、ここに戻って入れてください。

半角の英数字とハイフンだけ、スペースなしにしてください。そのままでも大丈夫です。
iCloudやOneDriveで同期されるフォルダ(書類・ドキュメントなど)は、部品が多く同期が重くなるので避けています。

最後に / を付けずに入れてください。この入力は、あなたのブラウザの中だけで使われ、どこにも送られません。

SETUPここから、設定の手順です
STEP1

Cloudflareの登録とログインL Harnessを置く場所をつくります

本人が操作5〜10分

1-1 アカウントを作る

  1. Chromeで Cloudflareの登録ページ を開きます。
  2. メールアドレスとパスワードを入れて登録します。パスワードは、Chromeのパスワードマネージャーに保存しておくと安心です。
  3. 届いた確認メールのリンクを押して、メールアドレスを確認します。
  4. ダッシュボード(管理画面のトップ)が開けば、登録は完了です。

1-2 次からのログイン

Cloudflareのログインページ で、登録したメールアドレスとパスワードを入れます。
Googleアカウントで登録した場合は、同じGoogleアカウントでログインします。

1-3 2段階認証をオンにする(おすすめ)

お客さんの情報を置く場所になるので、パスワードのほかに、スマホでも確認する設定にしておきます。
右上の人のマーク、プロフィール、認証(Authentication)の順に開いて設定します。

1-4 保存機能(R2)を有効にする

  1. 左のメニューの「ストレージとデータベース」を開き、「R2 オブジェクト ストレージ」を押します。
  2. 有効にするボタンを押し、クレジットカードかPayPalを登録します。
  3. R2の画面が開けば完了です。保存場所(バケット)は、設定ツールが自動で作るので、自分で作らなくて大丈夫です。
CloudflareのR2オブジェクトストレージの画面。使用量と、課金使用量0ドルが表示されている
R2の画面。右側に「課金使用量 $0.00」と出ています。
この画像は設定が終わったあとのものなので、保存場所が1つできています。
料金について

R2には、保存容量10GBなど、毎月の無料枠があります(画面にも表示されます)。
カードを登録しただけでは請求されません。
心配なときは、右側の「予算アラートを追加」で、低い金額の通知を設定しておくと安心です。

STEP2

LINE公式アカウントの準備Messaging APIを有効にします

本人が操作3〜5分
  1. パソコンで LINE公式アカウントの管理画面 を開き、使うアカウントを選びます。
  2. 右上の「設定」、左の「Messaging API」を開きます。
  3. まだ有効でなければ「Messaging APIを利用する」を押し、プロバイダーを選びます(初めてなら新しく作ります)。
    すでに有効なら、表示されているプロバイダー名を控えておきます。
先にテスト用のLINEで試す場合(+約15分)
  1. LINE公式アカウントの作成ページ で「未認証アカウント」を作ります。名前は「〇〇 テスト」など、テスト用と分かるものにします。
  2. 上の手順でMessaging APIを有効にします。プロバイダーは、本番と分けるため新しく作るのがおすすめです。
  3. このあとの手順は、すべてテスト用のアカウントで行います。本番へ移るときはテストから本番へ切り替えるを読みます。
いまのWebhookを確認しておく

LINE Developers でこのアカウントのMessaging APIのチャネルを開き、「Messaging API設定」タブのWebhook URLを見ます。
何か入っている場合は、ほかのツールがつながっています。L Harnessにつなぐと、そのツールは止まります。元のURLは、戻すときのために控えておきます。

STEP3

LINEログインとLIFF友だちを正しく記録するための準備です

本人が操作5分
いちばん大事な注意

LINEログインのチャネルは、STEP 2のMessaging APIと同じプロバイダーの中に作ります。
別のプロバイダーに作ると、正しく動きません。

3-1 LINEログインのチャネルを作る

  1. LINE Developers を開き、STEP 2のプロバイダーを選びます。
  2. 「新しいチャネルを作成する」、「LINEログイン」の順に選びます。
  3. チャネル名は「L Harness」など、ほかと区別できる名前にします。アプリタイプは「ウェブアプリ」にチェックします。
  4. 規約に同意して作成します。

3-2 ウェブアプリでのログインをオンにする

作ったチャネルの「LINEログイン設定」タブで、「ウェブアプリでLINEログインを利用する」をオンにします。
Callback URLは、今は空欄のままで大丈夫です(STEP 6で入れます)。

LINE Developersの、LINEログイン設定の画面。ウェブアプリでLINEログインを使用するがオンになっている
LINEログイン設定。画面が英語のときは「Use LINE Login in your web app」がこの項目です。
この画像はSTEP 6まで終わったあとなので、Callback URLが入っています。

3-3 リンクする公式アカウントを選ぶ

「チャネル基本設定」タブのいちばん下にある「リンク先のLINE公式アカウント」で「編集」を押し、STEP 2のアカウントを選んで「アップデート」を押します。

リンク先のLINE公式アカウントを選び、アップデートボタンを押す画面
「アップデート」を押さないと保存されません。押したあと、灰色の表示に変われば保存できています。

3-4 LIFFアプリを追加する

「LIFF」タブで「追加」を押し、次のとおりに入れて、いちばん下の「追加」を押します。

  • LIFFアプリ名「Lハーネス」など。「LINE」という言葉は使えません(使うとエラーになります)。
  • サイズFull
  • エンドポイントURL今は仮で https://example.com と入れます。STEP 6で本物に変えます。
  • スコープopenid と profile にチェック
  • 友だち追加オプションOn (Aggressive)
LIFFアプリを追加する画面の上半分。アプリ名、サイズ、エンドポイントURLの欄
LIFFアプリを追加する画面(上半分)。
LIFFアプリを追加する画面の下半分。スコープと友だち追加オプションの欄
同じ画面の下半分。
Chromeの自動翻訳がオンだと、Fullが「満杯」、Aggressiveが「攻撃的な」のように表示されることがあります。

3-5 次のSTEPで使う値の場所

次の値をSTEP 5でコピーして使います。
LINE Developersの画面を開いたままにしておくと楽です。値はメモ帳やチャットに貼らないでください。

値ある場所
Messaging APIのチャネルIDMessaging APIのチャネル、「チャネル基本設定」タブ
Messaging APIのチャネルシークレット同じタブの下のほう
チャネルアクセストークン(長期)同じチャネルの「Messaging API設定」タブのいちばん下(STEP 5-1)
LINEログインのチャネルIDLINEログインのチャネル、「チャネル基本設定」タブ
LIFF IDLINEログインのチャネル、「LIFF」タブの一覧

名前の似たチャネルが複数あるときは、取り違えに注意してください。
チャネルIDは、そのチャネルを開いたときのアドレスの末尾の数字と同じです。

STEP4

パソコンの準備ターミナルPowerShellを使います

本人が操作3〜5分

4-1 ターミナルPowerShellを開く

⌘+space を押して「ターミナル」と入力し、returnで開きます。
このあとのコマンドは、コピーボタンで写し、ターミナルに貼り付けて(⌘+V)、returnで実行します。

Windowsキーを押して「PowerShell」と入力し、Enterで開きます(管理者として実行する必要はありません)。
このあとのコマンドは、コピーボタンで写し、PowerShellに貼り付けて(Ctrl+V、または右クリック)、Enterで実行します。
複数行のコマンドも、そのまま全部貼り付けられます。

4-2 必要なソフトが入っているか確かめる

ターミナルに貼り付けて実行
node -v; git --version; claude --version
PowerShellに貼り付けて実行
node -v; git --version; claude --version

3つとも番号が出ればOKです。出ないものは、次の方法で入れます。

ソフト入れ方(Mac)
Node.jsv22 以上が必要です。Node.jsの公式サイト からLTS版をダウンロードして入れます。
Git確認のコマンドを実行すると、Macが「インストールしますか」と聞いてくるので、インストールします。
Claude Code下のコマンドで入れます(公式の手順)。デスクトップアプリを使う場合も、ターミナルで使えるようにこちらを入れておきます。
Claude Codeが入っていない場合だけ実行
curl -fsSL https://claude.ai/install.sh | bash
ソフト入れ方(Windows)
Node.jsv22 以上が必要です。Node.jsの公式サイト からLTS版のインストーラーを入れます。
GitGit for Windows を入れます。Claude Codeも、これがあると使える機能が増えます。
Claude Code下のコマンドで入れます(公式の手順)。
Node.jsとGitをまとめて入れる場合(winget)
winget install -e --id OpenJS.NodeJS.LTS
winget install -e --id Git.Git
Claude Codeが入っていない場合だけ実行
irm https://claude.ai/install.ps1 | iex

入れたあとは、PowerShellを一度閉じて開き直してから、4-2の確認をもう一度行います。

4-3 L Harnessのプログラムを取得する

公式のプログラムを、パソコンのフォルダに取得します。
最新版の番号は 公式のリリースページ で確認できます(この説明書は v0.26.1 で確認しています)。

ターミナルに貼り付けて実行
git clone --depth 1 --branch v0.26.1 https://github.com/Shudesu/line-harness-oss.git ~/line-harness
PowerShellに貼り付けて実行
git clone --depth 1 --branch v0.26.1 https://github.com/Shudesu/line-harness-oss.git $HOME\line-harness

容量は、取得とSTEP 5のあとで約1GBになります(ほとんどが部品)。
あとで更新や設定変更に使うので、消さずに残してください。

STEP5

設定ツールでL Harnessを入れる質問に答えると、Cloudflareへの設置まで自動で進みます

本人が操作5〜10分

5-1 チャネルアクセストークン(長期)を用意する

LINE Developersで、Messaging APIのチャネルを開き、「Messaging API設定」タブのいちばん下を見ます。
まだ発行していなければ、チャネルアクセストークン(長期)の「発行」を押します。

Messaging API設定タブの、チャネルアクセストークンの発行ボタン
チャネルアクセストークン(長期)の欄。黒いボタンが発行ボタンです(Chromeの自動翻訳がオンだと、文字が変わって見えることがあります)。
すでに発行済みの場合は、発行し直さない

予約・問診・会員管理などの別のシステムが、このトークンでLINEに送っていることがあります。
発行し直すと古いトークンが使えなくなり、そのシステムの送信が止まるおそれがあります。
すでに表示されているトークンを使うか、システムの管理者に確認してから進めてください。

トークンが表示された画面は、スクリーンショットに撮らないでください。

5-2 設定ツールを動かす

ターミナルに貼り付けて実行
cd ~/line-harness && npx --yes create-line-harness@latest
PowerShellに貼り付けて実行
cd $HOME\line-harness
npx.cmd --yes create-line-harness@latest

Windowsでは npx の代わりに npx.cmd と書いています。PowerShellの設定によって、npxがエラーで止まるのを避けるためです。

5-3 Cloudflareへのログインを許可する

ブラウザが開き、「Wranglerがあなたのアカウントにアクセスしようとしています」と出ます。
Wrangler(ラングラー)は、Cloudflareが公式に出している道具です。
アドレスが dash.cloudflare.com で、右側が自分のアカウントであることを確かめて、「承認する」を押します。

Wranglerがあなたのアカウントにアクセスしようとしていますという許可の画面
自分でコマンドを実行したときだけ出る画面です。実行していないのに出たときは、キャンセルしてください。
許可は、あとからCloudflareのプロフィールのアクセス管理で取り消せます。

5-4 質問に答える

Cloudflareログイン完了と、R2の有効化が完了したらEnterを押してくださいと表示されている
ログインが成功すると、Step 1の案内が出ます。
R2はSTEP 1で有効にしてあるので、そのままreturnEnterを押します。
画面はMacの例です。Windowsでも同じ文字が表示されます。

質問は、次の順番で出てきます。
シークレットやトークンを貼る欄は、貼り付けても画面に何も表示されません。それで正常です。

質問入れるもの
R2の有効化が完了したらEnterそのままreturnEnter
プロジェクト名半角英数字(例 myshop-lh)。WorkerのURLの一部になります
Channel ID(数字)Messaging APIのチャネルID
チャネルシークレットMessaging APIのチャネルシークレット(表示されない欄)
チャネルアクセストークン(長期)5-1のトークン(表示されない欄)
チャネル ID(数字)LINEログインのチャネルID(Messaging APIとは別の番号)
LIFF IDLIFFタブのID(チャネルID-英数字 の形)
MCP設定を .mcp.json に追加しますかNo(矢印キー→で選んで決定)。STEP 10で、鍵をファイルに残さない方法でつなぎます

質問の順番や言葉は、ツールの版によって少し変わることがあります。画面の案内を優先してください。

LINEログインのチャネルIDを入れたあと、LIFF IDを聞かれている画面
LINEログインのチャネルIDを入れたあと、LIFF IDを聞かれている画面。
デプロイが完了し、MCP設定を追加するか聞かれている画面
デプロイ(Cloudflareへの設置)が終わり、最後の質問が出た画面。
ここは No を選びます。

5-5 完了画面で、URLとAPIキーを確認する

設定ツールの完了画面。Callback URL、LIFFエンドポイントURL、友だち追加URL、管理画面、API Keyが並ぶ
完了画面。上から、Callback URL、LIFFのエンドポイントURL、友だち追加URL、管理画面のURL、APIキーが表示されます。
  • WorkerのURLは、https://〇〇〇.〇〇〇.workers.dev の形です(Callback URLの /auth/callback より前の部分)。入力欄に入れておくと、このあとのコマンドが書き換わります。
  • APIキーは、この画面でしか表示されません。すぐにChromeのパスワードマネージャーなど、安全な場所に保存します。
    管理画面へのログイン(STEP 9)と、Claude Codeとの連携(STEP 10)で使います。

完了画面は、スクリーンショットに撮ったり、人に送ったりしないでください。
APIキーが写っています。
人に伝えるのは、URLだけを文字で。
保存し忘れたときや、人に見られたときは、STEP 10の方法Bで作り直せます。

STEP6

LINEにURLを設定するLINEとL Harnessをつなぎます

本人が操作5分

完了画面に出たURLを、LINE Developersの3か所に入れます。
(Worker名) の部分は、あなたのWorkerのURLに置き換えてください。

入れる場所入れる値
Messaging APIのチャネル、「Messaging API設定」タブのWebhook URLhttps://(Worker名).workers.dev/webhook
LINEログインのチャネル、「LINEログイン設定」タブのCallback URLhttps://(Worker名).workers.dev/auth/callback
LINEログインのチャネル、「LIFF」タブのアプリのエンドポイントURLhttps://(Worker名).workers.dev?liffId=(LIFF ID)

6-1 Webhookを設定して、検証する

ここで、ほかのツールからL Harnessへ切り替わります

Webhook URLを書き換えた時点で、前につながっていたツールには知らせが届かなくなります。
STEP 2で控えた元のURLがあれば、戻すときに使います。

  1. Webhook URLの「編集」を押してURLを入れ、「更新」を押します。
  2. 「検証」を押し、「成功」と出ればつながっています。
  3. 「Webhookの利用」をオンにします。
Webhook URLの検証で成功と表示されたダイアログ
「成功」と出れば、LINEからL Harnessへ知らせが届いています。
ウェブフックを使用するのスイッチがオンになっている
検証のあと、「Webhookの利用」をオンにするのを忘れずに。

6-2 Callback URLとLIFFのURLを入れる

LINEログインのチャネルで、Callback URLの「編集」から入れて「更新」します。
「LIFF」タブでアプリを開き、エンドポイントURLの「編集」から、仮の https://example.com を本物のURLに書き換えて「更新」します。

Callback URLが空のままだと、パソコンからQRコードで友だち追加した人が、エラーで止まってしまいます。

STEP7

LINE側の自動返信を止める返信をL Harnessにまかせます

本人が操作3分
先に、L Harness側のあいさつを用意する

あいさつメッセージを止めると、新しく友だち追加したお客さんに、何も届かなくなります。
止める前に、L Harnessの管理画面(STEP 9)の「友だち追加時設定」で、同じ内容のメッセージを用意してください。

LINE公式アカウントの管理画面 でアカウントを開き、右上の「設定」、左の「応答設定」を開きます。

  • あいさつメッセージ オフにします。
  • Webhook オンになっていることを確認します。
  • 応答方法 「手動チャット」にします(自動の応答メッセージが動かない状態)。
LINE公式アカウントの管理画面の応答設定。チャット、あいさつメッセージ、Webhookのスイッチ
応答設定の画面(この画像は変更する前で、あいさつメッセージがオンです)。
スイッチを押すと、左下に「保存しました」と出ます。
STEP8

友だち追加で動作確認スマホのLINEで試します

本人が操作3分

8-1 LINEログインのチャネルを公開する

LINEログインのチャネルは、作った直後は「開発中」です。
開発中のままだと、開発者として登録されていないLINEアカウントでは使えず、エラーになります(お客さんも使えません)。
チャネル名の横にある「開発中(Developing)」を押し、確認画面で「公開」を押します。

このチャネルを公開しますかという確認画面
公開は元に戻せません(戻すには、チャネルの削除と作り直しが必要)。
チャネル名の横が公開済みに変わった画面
チャネル名の横が「公開済み」と緑の点に変われば完了です。

8-2 スマホで友だち追加して、メッセージを送る

  1. 次のURLを、スマホのLINEで開きます(自分宛てのLINEのトークや、メモに貼って押すと開きやすいです)。
    https://(Worker名).workers.dev/auth/line?ref=setup
  2. LINEログインの確認画面で「許可」を押します。
  3. アカウントのトークで、「こんにちは」などを送ります。
    まだ返信の仕組みを作っていないので、返事は来ません。それで正常です。
すでに友だちになっている場合

友だち追加をやり直す必要はありません。
メッセージを送ると、L Harnessが自動で友だちとして記録します。

これから友だち追加してもらうときも、QRコードを直接読んでもらうより、このURL(友だち追加URL)を通してもらうと、流入経路などが正しく記録されます。

STEP9

管理画面にログイン友だちが記録されたかを確かめます

本人が操作2分
  1. 完了画面に出た「管理画面」のURLを開きます。
  2. 緑のログイン画面に、STEP 5-5で保存したAPIキーを入れて「ログイン」を押します。
  3. 左の「友だち管理」に、あなたが表示されていれば、ここまでの設定は成功です。
L Harnessの管理画面のログイン画面。API Keyの入力欄がある
管理画面のログイン画面。
L Harnessの管理画面のダッシュボード。友だち数などが表示されている
ログインすると、ダッシュボードが開きます。
「まだ何もここにはない」と出たとき

デプロイの途中に出た Deployment alias URL、つまり先頭に head. が付いたURLを開きます。
例 https://head.(プロジェクト名)-admin-〇〇〇.pages.dev

まだ何もここにはないと表示されたページ
この画面が出たら、URLの先頭に head. を付けます。

ダッシュボードの友だち数(LINEの集計)は、前日時点の数字です。
L Harnessを入れる前から友だちの人は、メッセージを送るまでL Harnessには記録されないため、数がずれることがあります。

STEP10

Claude CodeとつなぐMCPの登録と、安全のための設定

本人が操作5分

APIキーを使って、Claude CodeにL Harnessをつなぐ部品(MCP)を登録します。
どちらか1つの方法で行います。入力欄にWorkerのURLを入れてから、コピーしてください。

10-1 方法A 保存したAPIキーで登録する(ふつうはこちら)

コマンドを実行すると「APIキーを貼り付けてEnter」と出て止まります。
パスワードマネージャーからAPIキーをコピーし、貼り付けてreturnEnterを押します。
貼り付けても画面には何も表示されません。それで正常です。

ターミナルに貼り付けて実行
cd ~/line-harness && read -s "LHKEY?APIキーを貼り付けてEnter: " && echo && { claude mcp remove --scope local line-harness >/dev/null 2>&1; true; } && claude mcp add --scope local line-harness -e LINE_HARNESS_API_URL=https://(あなたのWorker名).workers.dev -e LINE_HARNESS_API_KEY="$LHKEY" -- npx -y @line-harness/mcp-server@latest && unset LHKEY && echo "登録しました" || echo "失敗しました。上に出た文章を確認してください"
PowerShellに貼り付けて実行
& {
  cd $HOME\line-harness
  $s = Read-Host "APIキーを貼り付けてEnter" -AsSecureString
  $k = [Runtime.InteropServices.Marshal]::PtrToStringBSTR([Runtime.InteropServices.Marshal]::SecureStringToBSTR($s))
  claude mcp remove --scope local line-harness 2>$null
  claude mcp add --scope local line-harness -e LINE_HARNESS_API_URL=https://(あなたのWorker名).workers.dev -e "LINE_HARNESS_API_KEY=$k" -- cmd /c npx -y @line-harness/mcp-server@latest
  if ($LASTEXITCODE -eq 0) { Write-Host "登録しました" } else { Write-Host "失敗しました。上に出た文章を確認してください" }
}

10-2 方法B APIキーを作り直して登録する(キーをなくした、見られたとき)

新しいAPIキーを作り、Cloudflareのキーを差し替え、Claude Codeに登録するところまでを1回で行います。
新しいキーは画面に表示せず、最後にクリップボードへコピーします。
古いキーは使えなくなります。

ターミナルに貼り付けて実行
cd ~/line-harness && NEWKEY=$(openssl rand -hex 32) && printf '%s' "$NEWKEY" | npx wrangler secret put API_KEY --config apps/worker/wrangler.toml && { claude mcp remove --scope local line-harness >/dev/null 2>&1; true; } && claude mcp add --scope local line-harness -e LINE_HARNESS_API_URL=https://(あなたのWorker名).workers.dev -e LINE_HARNESS_API_KEY="$NEWKEY" -- npx -y @line-harness/mcp-server@latest && printf '%s' "$NEWKEY" | pbcopy && unset NEWKEY && echo "完了。新しいAPIキーをクリップボードにコピーしました" || echo "失敗しました。上に出た文章を確認してください"
PowerShellに貼り付けて実行
& {
  cd $HOME\line-harness
  $b = New-Object byte[] 32
  [Security.Cryptography.RandomNumberGenerator]::Create().GetBytes($b)
  $NEWKEY = -join ($b | ForEach-Object { $_.ToString("x2") })
  $NEWKEY | npx.cmd wrangler secret put API_KEY --config apps/worker/wrangler.toml
  if ($LASTEXITCODE -ne 0) { Write-Host "失敗しました。上に出た文章を確認してください"; return }
  claude mcp remove --scope local line-harness 2>$null
  claude mcp add --scope local line-harness -e LINE_HARNESS_API_URL=https://(あなたのWorker名).workers.dev -e "LINE_HARNESS_API_KEY=$NEWKEY" -- cmd /c npx -y @line-harness/mcp-server@latest
  if ($LASTEXITCODE -ne 0) { Write-Host "失敗しました。上に出た文章を確認してください"; return }
  Set-Clipboard -Value $NEWKEY
  Write-Host "完了。新しいAPIキーをクリップボードにコピーしました"
}

「完了」と出たら、ほかの文字をコピーする前に、管理画面のログイン欄に貼り付けてログインし、パスワードマネージャーに保存(更新)します。
ブラウザが古いキーを自動で入れている場合は、欄を空にしてから貼り付けます。

10-3 送信などの操作を止める設定を置く

L HarnessのMCPには、読み取り専用のモードがありません。
そこで、Claude Codeの許可設定で、メッセージ送信や一斉配信などを禁止し、管理系の操作は毎回確認にします。
ステップ配信を作るときなどは、必要なものだけ、あとで禁止を外します。

ターミナルに貼り付けて実行(複数行をまとめて貼れます)
mkdir -p ~/line-harness/.claude && cat > ~/line-harness/.claude/settings.local.json <<'EOF'
{
  "permissions": {
    "deny": [
      "mcp__line-harness__send_message",
      "mcp__line-harness__broadcast",
      "mcp__line-harness__create_scenario",
      "mcp__line-harness__enroll_in_scenario",
      "mcp__line-harness__create_form",
      "mcp__line-harness__create_rich_menu",
      "mcp__line-harness__create_tracked_link",
      "mcp__line-harness__upload_image"
    ],
    "ask": [
      "mcp__line-harness__manage_friends",
      "mcp__line-harness__manage_tags",
      "mcp__line-harness__manage_scenarios",
      "mcp__line-harness__manage_broadcasts",
      "mcp__line-harness__manage_rich_menus",
      "mcp__line-harness__manage_forms",
      "mcp__line-harness__manage_tracked_links",
      "mcp__line-harness__manage_staff",
      "mcp__line-harness__manage_ad_platforms"
    ]
  }
}
EOF
echo "許可設定を作りました"
PowerShellに貼り付けて実行(複数行をまとめて貼れます)
$d = "$HOME\line-harness\.claude"
New-Item -ItemType Directory -Force -Path $d | Out-Null
[IO.File]::WriteAllText("$d\settings.local.json", @'
{
  "permissions": {
    "deny": [
      "mcp__line-harness__send_message",
      "mcp__line-harness__broadcast",
      "mcp__line-harness__create_scenario",
      "mcp__line-harness__enroll_in_scenario",
      "mcp__line-harness__create_form",
      "mcp__line-harness__create_rich_menu",
      "mcp__line-harness__create_tracked_link",
      "mcp__line-harness__upload_image"
    ],
    "ask": [
      "mcp__line-harness__manage_friends",
      "mcp__line-harness__manage_tags",
      "mcp__line-harness__manage_scenarios",
      "mcp__line-harness__manage_broadcasts",
      "mcp__line-harness__manage_rich_menus",
      "mcp__line-harness__manage_forms",
      "mcp__line-harness__manage_tracked_links",
      "mcp__line-harness__manage_staff",
      "mcp__line-harness__manage_ad_platforms"
    ]
  }
}
'@)
Write-Host "許可設定を作りました"
MCPの登録は、そのフォルダ専用です

この説明書の登録方法(--scope local)では、L Harnessのフォルダで作業するときだけ、Claude CodeからL Harnessを使えます。
ほかの作業中に、うっかりLINEへ送ってしまうことを防ぐためです。

GOAL確認

接続確認と使い方Claude Codeから読み取れたら、完成です

本人が起動Claude Codeが確認3分

MCPは、新しく始めたClaude Codeのセッションで読み込まれます。
L Harnessのフォルダで、Claude Codeを始めます。

  • ターミナルPowerShellで使う場合 下のコマンドを実行します。
  • デスクトップアプリで使う場合 新しいセッションを作り、作業フォルダにL Harnessのフォルダを選びます。
ターミナルに貼り付けて実行
cd ~/line-harness && claude
PowerShellに貼り付けて実行
cd $HOME\line-harness
claude

Claude Codeが開いたら、次の文を貼り付けて送ります。

Claude Codeに貼り付けて送信
成功の目安
  • Claude Codeが、友だちの人数と、あなたの表示名を答える。
  • 管理画面の「友だち管理」の人数と合っている。

途中で「このツールを使ってよいですか」と聞かれたら、内容を読んでから許可してください。

つながったら、こんな頼み方ができます

読み取りで答えられる頼み方の例です。そのまま貼り付けて使えます。

Claude Codeに貼り付けて送信(例)
Claude Codeに貼り付けて送信(例)
Claude Codeに貼り付けて送信(例)

友だちにタグを付ける、ステップ配信を登録するなど、LINEの中身を変える頼み方は、10-3の設定で確認や禁止になっています。
使うときは、内容を確かめてから許可してください。

PRODUCTIONテストから本番へ切り替える
本番切替

テスト用から、本番の公式LINEへテスト用アカウントで設定した方向けです

責任者の承認が必要定休日・営業時間外に

テストでの確認が終わったら、本番のLINE公式アカウントで、STEP 2からSTEP 11までを、同じように行います。
そのとき、次の点に気をつけます。

  • 変える前に、いまの状態を記録する本番のプロバイダー名、Messaging APIのチャネル名とチャネルID、いまのWebhook URL、あいさつメッセージなど応答設定の内容。戻すときに使います。
  • LINEログインとLIFFは、本番と同じプロバイダーに新しく作るプロバイダーが違うと、同じお客さんでもLINEのIDが別になります。テストで集めた友だちの情報は、本番には引き継がれません。
  • L Harnessは、同じものに追加するか、本番用にもう1つ入れるL Harnessは、1つの管理画面で複数のLINE公式アカウントを扱えます。テストと本番のデータを完全に分けたいときは、別のフォルダとプロジェクト名でSTEP 4〜5をもう一度行います。
  • チャネルアクセストークンを発行し直さないほかのシステムが使っていれば、そのシステムの送信が止まります(STEP 5-1)。
  • あいさつを先に用意してから、LINE側の自動返信を止めるSTEP 7の注意のとおりです。
  • 切り替えたあとに確かめるスタッフのスマホで友だち追加してあいさつが届くか、メッセージが管理画面に届くか、予約・問診などほかのシステムがこれまでどおり動くか。

うまくいかないときの戻し方

記録しておいた内容に戻します。
Webhook URLを元のURLに戻し、応答設定を元に戻せば、L Harnessを入れる前の動きに戻ります。

TROUBLEつまずき

よくあるエラーと直し方迷ったらClaudeに手伝ってもらう方法も使ってください

こんなとき原因と、直し方
LIFFアプリを追加すると「This name contains a reserved term」と出るアプリ名に「LINE」が入っています。LINEを含まない名前にします(STEP 3-4)。
スマホで「400 Bad Request」「developing status」と出るLINEログインのチャネルが開発中です。STEP 8-1の手順で公開します。
LINE Developersのボタンの名前が、説明書と違うChromeの自動翻訳で、言葉が変わっていることがあります(発行が「問題」、Fullが「満杯」など)。翻訳を切ると、英語の元の表示になります。
Webhookの検証で失敗するURLの最後が /webhook になっているか、WorkerのURLに打ち間違いがないかを確かめます。
管理画面を開くと「まだ何もここにはない」URLの先頭に head. を付けて開きます(STEP 9)。
管理画面で「APIキーが正しくありません」ブラウザが、前に保存した古いキーを自動で入れていることがあります。欄を空にしてから貼り付けます。
キーが分からないときは、STEP 10の方法Bで作り直します。
キーを貼り付けても、何も表示されない鍵の欄は、見えないように表示しない作りです。貼り付けたら、そのまま決定キーを押します。
コマンドの途中で止まってしまったCtrl+C で中止できます(MacもWindowsも同じ)。もう一度、最初からコマンドを実行します。
「'&&' は有効なステートメント区切りではありません」と出るMac用のコマンドを貼っています。ページ上部で Windows を選び、Windows用のコマンドをコピーします。
「スクリプトの実行が無効になっているため、npx.ps1 を読み込むことができません」と出るPowerShellの安全設定です。この説明書のように npx.cmd と書けば動きます。
または Set-ExecutionPolicy -Scope CurrentUser RemoteSigned を実行してから、もう一度試します。
Claude CodeからL Harnessにつながらない登録のコマンドが -- cmd /c npx ... の形になっているか確かめ、STEP 10をもう一度実行します。

Windows向けの手順は、公式の資料をもとに作っています。実際の画面の文言は、お使いの環境で少し違うことがあります。

Q&A質問

よくある質問Cloudflareのこと、ほかのサービスとの違いなど

ほかのサービス(Supabase、Firebase、AWSなど)ではだめですか

L Harnessを使うなら、Cloudflareが前提です。
L Harnessは、CloudflareのWorker(プログラムを動かす場所)、D1(データベース)、R2(画像の保存場所)、Pages(管理画面)を組み合わせて動くように作られていて、設定ツールもCloudflareへの設置を自動で行います。

Supabase、Firebase、AWS、自社のサーバーなどに置き換えるには、プログラムを大きく書き換える必要があり、公式には対応していません。
書き換えると、今後のL Harnessの更新も受けられなくなります。

ただし、ほかのサービスが使えなくなるわけではありません。
すでに予約・顧客管理などで使っているサービスは、そのまま使い続けられます。
必要になったら、L Harnessとプログラムでつないで、一緒に使う形にできます。

Cloudflareにしている理由は何ですか
  • L HarnessがCloudflare用に作られていて、設定ツールで自動で入れられる。
  • 無料の範囲が広く、小さなお店や院の規模なら、無料で動かせる見込み。
  • 自分のアカウントに置くので、お客さんの情報を、開発元ではなく自分の管理下に置ける。
  • 24時間、自動で動き続ける(パソコンの電源を切っても止まらない)。

無料の範囲と料金は変わることがあるため、Workers、D1、R2 の公式の料金ページで確認してください。

自分のCloudflareに入れる方法と、クラウド版の違いは

開発元が用意した場所を借りる、無料のクラウド版(L Harness Cloud)もあります。
すぐ始められる反面、お客さんの情報が開発元の環境に置かれ、自作の機能(AIチャットボットなど)を足せる範囲が限られます。
この説明書は、自分のCloudflareに入れる方法です。

テスト用のアカウントは、必ず作る必要がありますか

必須ではありません。
この説明書は、本番のLINEにそのまま入れても進められる書き方にしています。
ただ、本番のLINEは、お客さんへの返信やあいさつに影響が出るため、慣れていない方は、テスト用で一度試すと安心です(+約15分)。

パソコンの容量は、どのくらい使いますか

約1GBです(ほとんどがプログラムの部品)。
L Harnessの本体はCloudflare上で動くので、パソコンの中にデータが増え続けることはありません。

お金がかかるのは、どこですか

L Harness自体は無料です。
LINE公式アカウントは、こちらから送るメッセージの通数に応じて、LINEの料金プランがかかります(管理画面のダッシュボードに、残りの通数が出ます)。
Claude Codeは、ご自身のプランの範囲で使います。
AIチャットボットを作る場合は、AIの利用料が別にかかることがあります。

参考にした公式の情報

画面の写真は、個人情報やアカウントの情報を塗りつぶしています。
画面の表示や言葉は、LINEやCloudflareの更新で変わることがあります。

↑