Agent Skills

Python LINE

An MCP server for accessing and interacting with LINE Bot messages.

Install

Install and configure the MCP from https://github.com/amornpan/py-mcp-line now. Follow the repository's installation instructions, ask me for anything you can't complete yourself, and verify its tools load.
README

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 asyncio
  • Environment-based configuration using python-dotenv
  • Comprehensive 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.txt

Project 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.txt

Directory Structure Explanation

  • src/line/ - Main source code directory
    • __init__.py - Package initialization
    • server.py - Main server implementation
  • data/ - Data storage directory
    • messages.json - Stored LINE messages
  • tests/ - Test files directory
    • __init__.py - Test package initialization
    • test_line.py - LINE functionality tests
  • .env - Environment configuration file (not in git)
  • .env.example - Example environment configuration
  • .gitignore - Git ignore rules
  • README.md - Project documentation
  • Dockerfile - Docker configuration
  • requirements.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.json

API 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>/data
  • Includes resource descriptions and MIME types

Resource Reading

@app.read_resource()
async def read_resource(uri: AnyUrl) -> str
  • Reads messages of the specified type
  • Accepts URIs in the format line://<message_type>/data
  • Returns 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.0

These versions have been tested and verified to work together. The key components are:

  • fastapi and uvicorn for the API server
  • pydantic for data validation
  • line-bot-sdk for LINE Bot integration
  • mcp for Model Context Protocol implementation
  • python-dotenv for environment configuration
  • anyio for 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

Search skills and MCP servers

Search across 31,816 skills and MCPs