论文趋势: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_mcpHTTP/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.cliRSS XML输出
uv run python -m papers_trending_mcp.cli --xml开发
执行测试
pytestHTTP/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 testsLint 执行
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