使用说明
论文趋势:MCP(多层感知机/移动通信协议/磁共振成像等,具体含义需根据上下文确定)
在用于ChatGPT应用的MCP服务器上,获取Hugging Face的热门论文信息。
功能
- 从Hugging Face的热门页面(https://huggingface.co/papers/trending)抓取最新论文信息
- 获取以下信息:
- 论文标题、网址
- 作者名
- 发布日期
- arXiv 网址
- GitHub网址、星标数
- 摘要(要旨)
- 以RSS、JSON/XML格式输出
- 作为MCP服务器运行
必要条件
- Python 3.13及以上版本
- uv(推荐)
安装
uv sync
如需安装开发依赖项:
uv sync --all-extras
使用方法
MCP设置(如ChatGPT Apps等)
claude_desktop_config.json 或者在MCP配置文件中添加以下内容:
{
"mcpServers": {
"papers-trending": {
"command": "uv",
"args": [
"--directory",
"/path/to/papers-trending-mcp",
"run",
"papers-trending-mcp"
]
}
}
}
可用工具
- **
fetch_trending_papers**获取Hugging Face上的热门论文- 参数:
limit(可选):获取论文数量(默认:10,最大:50)
- 返回值:论文信息的JSON数组
title论文标题urlHugging Face论文网址author作者/组织名(可为空)published发布日期(例如:“2025年10月6日”,可为null)arxiv_urlarXiv网址(可留空)github_urlGitHub仓库URL(可为null)github_starsGitHub星标数(例如:"3.3k"、可为null)abstract论文摘要
- 参数:
注意该工具会实时抓取Hugging Face上的信息。返回的数据是从实际网站上获取的准确信息。
启动MCP服务器(命令行)
stdio版(标准输入输出)
uv run python -m papers_trending_mcp
HTTP/SSE版(端口8000)
uv run python -m papers_trending_mcp.http_server
在HTTP版本的情况下,MCP客户端设置如下:
{
"mcpServers": {
"papers-trending-http": {
"url": "http://localhost:8000/sse"
}
}
}
CLI命令(用于RSS输出测试)
RSS JSON输出(默认)
uv run python -m papers_trending_mcp.cli
RSS XML输出
uv run python -m papers_trending_mcp.cli --xml
开发
执行测试
pytest
HTTP/SSE服务器的测试
基本端点测试
# サーバーを起動
uv run python -m papers_trending_mcp.http_server
# 別ターミナルでテスト実行
./tests/test_http_server.sh
完整的SSE通信流程测试
# サーバーを起動
uv run python -m papers_trending_mcp.http_server
# 別ターミナルでSSEレスポンステスト実行
./tests/test_sse_response.sh
本次测试将确认以下内容:
- 建立SSE连接并获取会话ID
- MCP(最小成本原则/多协议控制器/等,具体含义需根据上下文确定)
initialize请求 initialized通知tools/list获取工具列表tools/call然后实际执行抓取操作- 通过SSE流接收响应
注意在MCP SSE协议中/messages/ 对POST请求的直接响应为空,实际结果为 /sse 通过SSE流返回。
代码格式
black src tests
Lint 执行
ruff check src tests
故障排除
当ChatGPT MCP产生幻觉(胡言乱语的结果)时
已采取以下对策:
- 数据量限制默认显示10条,最多限制50条,以防止大量数据造成的混乱
- 详细说明在工具说明中明确记录每个字段的类型、含义和示例
- 防幻觉指令在工具说明中明确写明“不要凭空捏造”
- 实时增强明确数据是通过抓取获得的准确数据
确认方法:
# サーバーを再起動
uv run python -m papers_trending_mcp.http_server
# または ChatGPT Apps設定でMCPサーバーを再起動
推荐使用方法:
- 指示ChatGPT“获取最新的5篇论文”
limit加以利用 - 不要一次性获取大量数据
项目结构
papers-trending-mcp/
├── src/
│ └── papers_trending_mcp/
│ ├── __init__.py
│ ├── server.py # MCPサーバー(stdio)
│ ├── http_server.py # MCPサーバー(HTTP/SSE)
│ ├── scraper.py # スクレイピング機能
│ └── cli.py # CLIテストコマンド
├── tests/
│ ├── __init__.py
│ ├── test_scraper.py # スクレイパーユニットテスト
│ ├── test_http_server.sh # HTTPエンドポイント基本テスト
│ └── test_sse_response.sh # SSE通信フル動作テスト
├── pyproject.toml
└── README.md
