LINE Official Account

공식

LINE Messaging API를 통합하여 AI 에이전트를 LINE Official Account에 연결합니다.

LINE Official Account MCP(으)로 무엇을 할 수 있나요?

  • Send text messages — Push a plain text message to a specific user via push_text_message or broadcast to all followers with broadcast_text_message.
  • Send rich flex messages — Deliver highly customizable bubble or carousel messages to an individual user or broadcast them using push_flex_message or broadcast_flex_message.
  • Manage rich menus — Create, list, set as default, cancel default, or delete rich menus with actions like postback, URI, and camera via create_rich_menu, get_rich_menu_list, and related tools.
  • Retrieve user and group info — Fetch a user's profile details (name, picture, status message) with get_profile, or get group chat summary including ID and icon via get_group_summary.
  • Monitor message quota — Check the monthly message limit and current usage of your LINE Official Account using get_message_quota.
  • Get follower IDs — Retrieve a paginated list of user IDs who added your account as a friend using get_follower_ids, with optional continuation token and limit.

문서

日本語版 READMEはこちら

LINE Bot MCP Server

npmjs

LINE Messaging API를 통합하여 AI 에이전트를 LINE 공식 계정에 연결하는 Model Context Protocol (MCP) 서버 구현입니다.

[!NOTE] 이 저장소는 미리보기 버전으로 제공됩니다. 실험적인 목적으로 제공되지만, 완전한 기능이나 포괄적인 지원을 포함하지 않을 수 있음을 유의하시기 바랍니다.

도구

  1. push_text_message

    • LINE을 통해 사용자에게 간단한 텍스트 메시지를 푸시합니다.
    • 입력:
      • userId (string?): 메시지를 받을 사용자 ID입니다. 기본값은 DESTINATION_USER_ID입니다. userId 또는 DESTINATION_USER_ID 중 하나는 반드시 설정해야 합니다.
      • message.text (string): 사용자에게 보낼 일반 텍스트 내용입니다.
  2. push_flex_message

    • LINE을 통해 사용자에게 고도로 사용자 정의 가능한 플렉스 메시지를 푸시합니다.
    • 입력:
      • userId (string?): 메시지를 받을 사용자 ID입니다. 기본값은 DESTINATION_USER_ID입니다. userId 또는 DESTINATION_USER_ID 중 하나는 반드시 설정해야 합니다.
      • message.altText (string): 플렉스 메시지를 표시할 수 없을 때 표시되는 대체 텍스트입니다.
      • message.contents (any): 플렉스 메시지의 내용입니다. 메시지의 레이아웃과 구성 요소를 정의하는 JSON 객체입니다.
      • message.contents.type (enum): 컨테이너 유형입니다. 단일 컨테이너는 'bubble', 여러 개의 스와이프 가능한 버블은 'carousel'입니다.
  3. broadcast_text_message

    • LINE 공식 계정을 팔로우한 모든 사용자에게 LINE을 통해 간단한 텍스트 메시지를 브로드캐스트합니다.
    • 입력:
      • message.text (string): 사용자에게 보낼 일반 텍스트 내용입니다.
  4. broadcast_flex_message

    • LINE 공식 계정을 추가한 모든 사용자에게 LINE을 통해 고도로 사용자 정의 가능한 플렉스 메시지를 브로드캐스트합니다.
    • 입력:
      • message.altText (string): 플렉스 메시지를 표시할 수 없을 때 표시되는 대체 텍스트입니다.
      • message.contents (any): 플렉스 메시지의 내용입니다. 메시지의 레이아웃과 구성 요소를 정의하는 JSON 객체입니다.
      • message.contents.type (enum): 컨테이너 유형입니다. 단일 컨테이너는 'bubble', 여러 개의 스와이프 가능한 버블은 'carousel'입니다.
  5. get_profile

    • 표시 이름, 프로필 사진 URL, 상태 메시지 및 언어를 포함한 LINE 사용자의 상세 프로필 정보를 가져옵니다.
    • 입력:
      • userId (string?): 프로필을 검색할 사용자 ID입니다. 기본값은 DESTINATION_USER_ID입니다.
  6. get_message_quota

    • LINE 공식 계정의 메시지 할당량 및 사용량을 가져옵니다. 월간 메시지 한도와 현재 사용량을 표시합니다.
    • 입력:
      • 없음
  7. get_rich_menu_list

    • LINE 공식 계정과 연결된 리치 메뉴 목록을 가져옵니다.
    • 입력:
      • 없음
  8. delete_rich_menu

    • LINE 공식 계정에서 리치 메뉴를 삭제합니다.
    • 입력:
      • 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 공식 계정을 친구로 추가한 사용자의 사용자 ID 목록을 가져옵니다. 이를 통해 메시지 전송을 위한 사용자 ID를 수동으로 준비하지 않고 얻을 수 있습니다.
    • 입력:
      • start (string?): 다음 사용자 ID 배열을 가져오기 위한 연속 토큰입니다. 이전 응답의 next 속성에서 반환됩니다.
      • limit (number?): 단일 요청에서 검색할 최대 사용자 ID 수입니다.
  13. get_group_summary

    • 그룹 ID를 사용하여 그룹 ID, 그룹 이름 및 그룹 아이콘 URL을 포함한 그룹 채팅 요약을 가져옵니다.
    • 입력:
      • groupId (string): 대상 그룹 채팅의 그룹 ID입니다.

설치 (npx 사용)

요구 사항:

  • Node.js v22 이상

1단계: LINE 공식 계정 만들기

이 MCP 서버는 LINE 공식 계정을 사용합니다. 계정이 없는 경우 이 지침에 따라 계정을 만드세요.

LINE 공식 계정이 있는 경우 이 지침에 따라 LINE 공식 계정에 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 공식 계정 만들기

이 MCP 서버는 LINE 공식 계정을 사용합니다. 계정이 없는 경우 이 지침에 따라 계정을 만드세요.

LINE 공식 계정이 있는 경우 이 지침에 따라 LINE 공식 계정에 Messaging API를 활성화하세요.

2단계: line-bot-mcp-server 이미지 빌드

이 저장소를 클론하세요:

git clone git@github.com: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 git@github.com: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"

이렇게 하면 LINE Bot MCP Server 도구와 상호 작용하고 기능을 테스트할 수 있는 MCP Inspector 인터페이스가 시작됩니다.

버전 관리

이 프로젝트는 시맨틱 버전 관리를 준수합니다.

http://semver.org/ 참조

기여

기여하기 전에 CONTRIBUTING을 확인하세요.