README
🚀 Python LINE MCP 服务器
本项目是一个用 Python 实现的模型上下文协议(Model Context Protocol)服务器,它能提供对 LINE 机器人消息的访问。借助标准化接口,语言模型可阅读并分析 LINE 对话,为相关开发工作提供了便利。
🚀 快速开始
先决条件
以下组件需安装并配置:
- Python 3.8+
- FastAPI 0.104.1 或更高版本
- Uvicorn 0.34.0 或更高版本
- Pydantic 2.10.6 或更高版本
- LINE Bot SDK 3.5.0 或更高版本
安装
创建一个 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
运行以下命令安装依赖:
pip install -r requirements.txt
配置
创建一个 .env 文件,内容如下:
# 线上模式配置(推荐)
IS_PRODUCTION=true
LINE_CHANNEL_ID=your_channel_id
LINE_CHANNEL_SECRET=your_channel_secret
LINE_API_ENDPOINT=https://api.line.me
MCP_SERVER_URL=http://localhost:8000
# 或者开发模式:
IS_PRODUCTION=false
LINE_CHANNEL_ID=your_channel_id
LINE_CHANNEL_SECRET=your_channel_secret
将 your_channel_id 和 your_channel_secret 替换为你的 LINE 机器人凭证。
初始化服务器
uvicorn app.main:app --reload
访问接口
- 列出所有资源:
curl http://localhost:8000/mcp/resources - 获取特定资源:
curl http://localhost:8000/mcp/resources/{id}
✨ 主要特性
核心功能
- 使用 Python 的
asyncio进行异步操作 - 环境配置使用
python-dotenv - 符合 Model Context Protocol 1.2.0 标准
- 集成 LINE Messaging API
- 提供 RESTful API 接口
📦 安装指南
创建一个 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
运行以下命令安装依赖:
pip install -r requirements.txt
💻 使用示例
基础用法
# 初始化服务器
uvicorn app.main:app --reload
# 访问接口
# 列出所有资源
curl http://localhost:8000/mcp/resources
# 获取特定资源
curl http://localhost:8000/mcp/resources/{id}
📚 详细文档
项目结构
以下是项目的文件夹和文件结构:
your_project/
├── app/ # FastAPI 应用代码
│ ├── main.py # FastAPI 应用入口
│ └── routes/ # 路由定义
│ └── line_mcp.py # LINE MCP 路由
├── config/ # 配置文件
│ ├── .env # 环境变量配置
│ └── mcp_config.yml # MCP 配置
└── utils/ # 工具函数
└── line_bot_utils.py # LINE 机器人工具
API 实现细节
资源列表接口
@app.get("/mcp/resources")
def list_resources():
# 获取所有资源信息
resources = get_all_resources()
return {"status": "success", "data": resources}
资源读取接口
@app.get("/mcp/resources/{resource_id}")
def read_resource(resource_id: str):
# 读取特定资源内容
resource_content = fetch_resource_by_id(resource_id)
return {"status": "success", "data": resource_content}
资源创建接口
@app.post("/mcp/resources")
def create_resource(resource_data: ResourceData):
# 创建新资源
new_resource = create_new_resource(resource_data)
return {"status": "success", "data": new_resource}
🔧 技术细节
错误处理
该服务器包含完善的错误处理机制,包括:
- 参数验证
- 资源不存在异常
- 权限检查
- 网络连接异常
安全特性
支持以下安全措施:
- 环境变量配置
- 访问控制列表(ACL)
- 日志记录和监控
- 数据加密传输
📄 许可证
本项目基于 MIT 协议开源,使用前请仔细阅读相关文档和 LICENSE 文件。
联系方式
Amornpan Phornchaicharoen
如有任何问题或合作意向,请随时联系我。
⚠️ 重要提示
本项目基于 MIT 协议开源,使用前请仔细阅读相关文档和 LICENSE 文件。
Scan to join WeChat group