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_messageor broadcast to all followers withbroadcast_text_message. - Send rich flex messages — Deliver highly customizable bubble or carousel messages to an individual user or broadcast them using
push_flex_messageorbroadcast_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 viaget_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.
문서
LINE Bot MCP Server
LINE Messaging API를 통합하여 AI 에이전트를 LINE 공식 계정에 연결하는 Model Context Protocol (MCP) 서버 구현입니다.

[!NOTE] 이 저장소는 미리보기 버전으로 제공됩니다. 실험적인 목적으로 제공되지만, 완전한 기능이나 포괄적인 지원을 포함하지 않을 수 있음을 유의하시기 바랍니다.
도구
-
push_text_message
- LINE을 통해 사용자에게 간단한 텍스트 메시지를 푸시합니다.
- 입력:
userId(string?): 메시지를 받을 사용자 ID입니다. 기본값은 DESTINATION_USER_ID입니다.userId또는DESTINATION_USER_ID중 하나는 반드시 설정해야 합니다.message.text(string): 사용자에게 보낼 일반 텍스트 내용입니다.
-
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'입니다.
-
broadcast_text_message
- LINE 공식 계정을 팔로우한 모든 사용자에게 LINE을 통해 간단한 텍스트 메시지를 브로드캐스트합니다.
- 입력:
message.text(string): 사용자에게 보낼 일반 텍스트 내용입니다.
-
broadcast_flex_message
- LINE 공식 계정을 추가한 모든 사용자에게 LINE을 통해 고도로 사용자 정의 가능한 플렉스 메시지를 브로드캐스트합니다.
- 입력:
message.altText(string): 플렉스 메시지를 표시할 수 없을 때 표시되는 대체 텍스트입니다.message.contents(any): 플렉스 메시지의 내용입니다. 메시지의 레이아웃과 구성 요소를 정의하는 JSON 객체입니다.message.contents.type(enum): 컨테이너 유형입니다. 단일 컨테이너는 'bubble', 여러 개의 스와이프 가능한 버블은 'carousel'입니다.
-
get_profile
- 표시 이름, 프로필 사진 URL, 상태 메시지 및 언어를 포함한 LINE 사용자의 상세 프로필 정보를 가져옵니다.
- 입력:
userId(string?): 프로필을 검색할 사용자 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: 텍스트를 클립보드에 복사용
-
get_follower_ids
- LINE 공식 계정을 친구로 추가한 사용자의 사용자 ID 목록을 가져옵니다. 이를 통해 메시지 전송을 위한 사용자 ID를 수동으로 준비하지 않고 얻을 수 있습니다.
- 입력:
start(string?): 다음 사용자 ID 배열을 가져오기 위한 연속 토큰입니다. 이전 응답의next속성에서 반환됩니다.limit(number?): 단일 요청에서 검색할 최대 사용자 ID 수입니다.
-
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를 사용하여 서버를 로컬에서 테스트하고 디버깅할 수 있습니다.
사전 요구 사항
- 저장소를 클론하세요:
git clone git@github.com:line/line-bot-mcp-server.git
cd line-bot-mcp-server
- 종속성을 설치하세요:
npm install
- 프로젝트를 빌드하세요:
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 인터페이스가 시작됩니다.
버전 관리
이 프로젝트는 시맨틱 버전 관리를 준수합니다.
기여
기여하기 전에 CONTRIBUTING을 확인하세요.