Provides access to LINE Bot messages through webhook events, enabling reading and analysis of LINE conversations with support for text, sticker, and image messages stored in JSON format.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Python LINE MCP Servershow me recent text messages from the LINE group chat"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Python LINE MCP Server
A Model Context Protocol server implementation in Python that provides access to LINE Bot messages. This server enables Language Models to read and analyze LINE conversations through a standardized interface.
Features
Core Functionality
Asynchronous operation using Python's
asyncioEnvironment-based configuration using
python-dotenvComprehensive logging system
LINE Bot webhook event handling
Message storage in JSON format
FastAPI integration for API endpoints
Pydantic models for data validation
Support for text, sticker, and image messages
Prerequisites
Python 3.8+
Required Python packages:
fastapi
pydantic
python-dotenv
mcp-server
line-bot-sdk
uvicorn
Installation
git clone https://github.com/amornpan/py-mcp-line.git
cd py-mcp-line
pip install -r requirements.txtProject Structure
PY-MCP-LINE/
├── src/
│ └── line/
│ ├── __init__.py
│ └── server.py
├── data/
│ └── messages.json
├── tests/
│ ├── __init__.py
│ └── test_line.py
├── .env
├── .env.example
├── .gitignore
├── README.md
├── Dockerfile
└── requirements.txtDirectory Structure Explanation
src/line/- Main source code directory__init__.py- Package initializationserver.py- Main server implementation
data/- Data storage directorymessages.json- Stored LINE messages
tests/- Test files directory__init__.py- Test package initializationtest_line.py- LINE functionality tests
.env- Environment configuration file (not in git).env.example- Example environment configuration.gitignore- Git ignore rulesREADME.md- Project documentationDockerfile- Docker configurationrequirements.txt- Project dependencies
Configuration
Create a .env file in the project root:
LINE_CHANNEL_SECRET=your_channel_secret
LINE_ACCESS_TOKEN=your_access_token
SERVER_PORT=8000
MESSAGES_FILE=data/messages.jsonAPI Implementation Details
Resource Listing
@app.list_resources()
async def list_resources() -> list[Resource]Lists available message types from the LINE Bot
Returns resources with URIs in the format
line://<message_type>/dataIncludes resource descriptions and MIME types
Resource Reading
@app.read_resource()
async def read_resource(uri: AnyUrl) -> strReads messages of the specified type
Accepts URIs in the format
line://<message_type>/dataReturns messages in JSON format
Supports filtering by date, user, or content
Usage with Claude Desktop
Add to your Claude Desktop configuration:
On MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json
On Windows: %APPDATA%/Claude/claude_desktop_config.json
{
"mcpServers": {
"line": {
"command": "python",
"args": [
"server.py"
],
"env": {
"LINE_CHANNEL_SECRET": "your_channel_secret",
"LINE_ACCESS_TOKEN": "your_access_token",
"SERVER_PORT": "8000",
"MESSAGES_FILE": "data/messages.json"
}
}
}
}Error Handling
The server implements comprehensive error handling for:
Webhook validation failures
Message storage errors
Resource access errors
URI validation
LINE API response errors
All errors are logged and returned with appropriate error messages.
Security Features
Environment variable based configuration
LINE message signature validation
Proper error handling
Input validation through Pydantic
Contact Information
Amornpan Phornchaicharoen
Feel free to reach out to me if you have any questions about this project or would like to collaborate!
Made with ❤️ by Amornpan Phornchaicharoen
Author
Amornpan Phornchaicharoen
Requirements
Create a requirements.txt file with:
fastapi>=0.104.1
pydantic>=2.10.6
uvicorn>=0.34.0
python-dotenv>=1.0.1
line-bot-sdk>=3.5.0
anyio>=4.5.0
mcp==1.2.0These versions have been tested and verified to work together. The key components are:
fastapianduvicornfor the API serverpydanticfor data validationline-bot-sdkfor LINE Bot integrationmcpfor Model Context Protocol implementationpython-dotenvfor environment configurationanyiofor asynchronous I/O support
Acknowledgments
LINE Developers for the LINE Messaging API
Model Context Protocol community
Python FastAPI community
Contributors to the python-dotenv project