使用说明
微信公众号文章信息提取服务
这是一个基于Python的微信公众号文章信息提取服务,支持两种模式:
- MCP Server模式 (基于stdio通信)
- HTTP Server模式 (基于HTTP通信)
功能特性
- 提取微信公众号文章的标题
- 提取文章作者信息
- 提取文章正文内容(以Markdown格式返回)
安装依赖
pip install -r requirements.txt
本地测试
在正式使用服务之前,可以先运行简单的测试脚本验证功能:
python simple_test.py
或者使用交互式测试脚本:
python test_extractor.py
MCP协议说明
MCP(Model Context Protocol)使用JSON-RPC 2.0标准进行通信,所有请求和响应均为JSON格式。
通信示例
工具列表请求:
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/list",
"params": {}
}
工具调用请求:
{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/call",
"params": {
"name": "extract_article_info",
"arguments": {
"url": "https://mp.weixin.qq.com/s/example"
}
}
}
响应格式:
{
"jsonrpc": "2.0",
"id": 2,
"result": {
"title": "文章标题",
"author": "作者",
"content": "# Markdown格式内容..."
}
}
启动服务
MCP Server模式 (stdio通信)
python mcp_server.py
服务将通过stdio与客户端通信,需要使用支持MCP协议的客户端来调用。
HTTP Server模式 (HTTP通信)
python http_mcp_server.py
服务将在 http://localhost:5002 上运行。
API接口
提取文章信息
POST /extract
请求体:
{
"url": "微信公众号文章链接"
}
响应:
{
"title": "文章标题",
"author": "作者",
"content": "文章内容(Markdown格式)"
}
健康检查
GET /health
使用示例
HTTP模式使用示例
curl -X POST http://localhost:5002/extract \
-H "Content-Type: application/json" \
-d '{"url": "your_wechat_article_url"}'
MCP模式使用示例
MCP Server需要通过支持MCP协议的客户端来调用,例如:
- Cherry Studio
- Cursor
- Cline
- Dify
- FastGPT
- N8N等
这些客户端会自动发现并调用本服务提供的工具。
JSON配置方式
STDIO模式配置
{
"mcpServers": {
"wechat-extractor-stdio": {
"command": "python3",
"args": [
"/Users/guanshilong/app/code/lingma/mcp/mcp_server.py"
],
"env": {
"PYTHONPATH": "/Users/guanshilong/app/code/lingma/mcp"
}
}
}
}
HTTP模式配置
{
"mcpServers": {
"wechat-extractor-http": {
"type": "http",
"url": "http://localhost:5002/sse"
}
}
}
不同客户端的配置文件位置:
- Claude Desktop:
~/.claude/claude_desktop_config.json - Cursor:
.cursor/mcp.json - VS Code:
.vscode/mcp.json
常见问题排查
端口冲突问题
如果遇到类似以下错误:
ERROR: [Errno 48] error while attempting to bind on address ('0.0.0.0', 5001): address already in use
这表示指定端口已被占用,请修改 [http_mcp_server.py](file:///Users/guanshilong/app/code/lingma/mcp/http_mcp_server.py) 文件中的端口号。
服务启动检查
可以通过以下方式验证服务是否正常运行:
# 检查端口是否被监听
netstat -an | grep 5002
# 或者使用lsof命令(macOS/Linux)
lsof -i :5002
微信文章提取失败
由于微信有反爬虫机制,可能会出现提取失败的情况。如果返回的结果中字段为空,请稍后再试或者检查文章链接是否有效。
