LINE消息处理服务器

一个基于Python的Model Context Protocol服务器实现,提供对LINE Bot消息的标准化访问接口,支持异步操作、消息存储和API端点管理。

  • by amornpan
  • Python
  • 本地部署
  • 20 星标
  • 更新于
在 GitHub 查看 amornpan/py-mcp-line

使用说明

Python LINE MCP服务器

Python中的模型上下文协议服务器实现,提供对LINE Bot消息的访问。该服务器使语言模型能够通过标准化的界面读取和分析LINE对话。

特性

核心功能

  • 使用Python的异步操作 asyncio
  • 基于环境的配置使用 python-dotenv
  • 综合测井系统
  • LINE Bot webhook事件处理
  • JSON格式的消息存储
  • 针对API端点的FastAPI集成
  • 用于数据验证的Pydantic模型
  • 支持文字、贴纸和图像消息

先决条件

  • Python 3.8+
  • 所需的Python包:
    • 快速
    • 媒染剂
    • python dotenv
    • mcp服务器
    • 线路机器人sdk
    • 优维康

安装

git clone https://github.com/amornpan/py-mcp-line.git
cd py-mcp-line
pip install -r requirements.txt

项目结构

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

目录结构说明

  • src/line/ -主源代码目录
    • __init__.py -包初始化
    • server.py -主服务器实现
  • data/ -数据存储目录
    • messages.json -存储的LINE消息
  • tests/ -测试文件目录
    • __init__.py -测试包初始化
    • test_line.py -LINE功能测试
  • .env -环境配置文件(非git格式)
  • .env.example -环境配置示例
  • .gitignore -Git忽略规则
  • README.md -项目文件
  • Dockerfile -Docker配置
  • requirements.txt -项目依赖关系

配置

创建一个 .env 项目根目录中的文件:

LINE_CHANNEL_SECRET=your_channel_secret
LINE_ACCESS_TOKEN=your_access_token
SERVER_PORT=8000
MESSAGES_FILE=data/messages.json

API实现详细信息

资源列表

@app.list_resources()
async def list_resources() -> list[Resource]
  • 列出LINE Bot中可用的消息类型
  • 返回URI格式为的资源 line://<message_type>/data
  • 包括资源描述和MIME类型

资源阅读

@app.read_resource()
async def read_resource(uri: AnyUrl) -> str
  • 读取指定类型的消息
  • 接受以下格式的URI line://<message_type>/data
  • 以JSON格式返回消息
  • 支持按日期、用户或内容进行筛选

使用Claude Desktop

添加到您的Claude Desktop配置中:

在MacOS上: ~/Library/Application Support/Claude/claude_desktop_config.json 在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"
      }
    }
  }
}

错误处理

服务器为以下对象实现了全面的错误处理:

  • 网钩验证失败
  • 消息存储错误
  • 资源访问错误
  • URI验证
  • LINE API响应错误

所有错误都会被记录下来,并返回相应的错误消息。

安全功能

  • 基于环境变量的配置
  • LINE消息签名验证
  • 正确的错误处理
  • 通过Pydantic进行输入验证

联系方式

阿莫伦潘Phornchaicharoen

如果您对这个项目有任何疑问或想合作,请随时与我联系!


由以下材料制成❤️ 作者Amornpan Phornchaicharoen

作者

阿莫伦潘Phornchaicharoen

需求

创建一个 requirements.txt 文件包含:

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

这些版本已经过测试和验证,可以协同工作。关键组件包括:

  • fastapi 和 uvicorn 用于API服务器
  • pydantic 用于数据验证
  • line-bot-sdk 用于LINE Bot集成
  • mcp 用于模型上下文协议实现
  • python-dotenv 用于环境配置
  • anyio 用于异步I/O支持

致谢

  • LINE消息API的LINE开发人员
  • 模型上下文协议社区
  • Python快速API社区
  • python dotenv项目的贡献者