本项目是一个用 Python 实现的模型上下文协议(Model Context Protocol)服务器,它能提供对 LINE 机器人消息的访问。借助标准化接口,语言模型可阅读并分析 LINE 对话,为相关开发工作提供了便利。
以下组件需安装并配置:
创建一个 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/resourcescurl http://localhost:8000/mcp/resources/{id}asyncio 进行异步操作python-dotenv创建一个 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 机器人工具
@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}
该服务器包含完善的错误处理机制,包括:
支持以下安全措施:
本项目基于 MIT 协议开源,使用前请仔细阅读相关文档和 LICENSE 文件。
如有任何问题或合作意向,请随时联系我。
⚠️ 重要提示
本项目基于 MIT 协议开源,使用前请仔细阅读相关文档和 LICENSE 文件。