返回市场
派-麦普-线程

派-麦普-线程

作者:amornpan18 星标更新:2025-03-01

项目介绍

Python LINE MCP Server

版本 Python MCP FastAPI 许可证

这是一个使用Python实现的Model Context Protocol服务器,提供对LINE Bot消息的访问。此服务器使语言模型能够通过标准化接口读取和分析LINE对话。

功能

核心功能

  • 使用Python的asyncio进行异步操作
  • 使用python-dotenv基于环境配置
  • 完整的日志系统
  • 处理LINE Bot的webhook事件
  • 将消息存储为JSON格式
  • 集成FastAPI用于API端点
  • 使用Pydantic模型进行数据验证
  • 支持文本、贴纸和图像消息

先决条件

  • Python 3.8+
  • 所需的Python包:
    • fastapi
    • pydantic
    • python-dotenv
    • mcp-server
    • line-bot-sdk
    • uvicorn

安装

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=你的频道密钥
LINE_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
  • 读取指定类型的消息
  • 接受格式为line://<message_type>/data的URI
  • 返回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": "你的频道密钥",
        "LINE_ACCESS_TOKEN": "你的访问令牌",
        "SERVER_PORT": "8000",
        "MESSAGES_FILE": "data/messages.json"
      }
    }
  }
}

错误处理

服务器实现了全面的错误处理:

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

所有错误都被记录并返回适当的错误信息。

安全特性

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

联系信息

Amornpan Phornchaicharoen

电子邮件 LinkedIn HuggingFace GitHub

如果您有任何关于这个项目的问题或希望合作,请随时联系我!


由Amornpan Phornchaicharoen制作❤️

作者

Amornpan 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

这些版本已经过测试并确认可以一起工作。关键组件包括:

  • fastapiuvicorn用于API服务器
  • pydantic用于数据验证
  • line-bot-sdk用于LINE Bot集成
  • mcp用于Model Context Protocol实现
  • python-dotenv用于环境配置
  • anyio用于异步I/O支持

致谢

  • LINE Developers提供的LINE Messaging API
  • Model Context Protocol社区
  • Python FastAPI社区
  • 对python-dotenv项目有贡献的人