学术搜索代理服务

一个基于SerpApi Google Scholar API的多代理控制协议服务器,为研究代理提供结构化的学术搜索结果,支持所有官方参数配置。

  • by ZidongS
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 ZidongS/iKnow-MCP-Server-SerpApi-Google-Scholar-

使用说明

iKnow MCP服务器(SerpApi谷歌学者)

MCP(多代理控制协议)服务器,用于封装 SerpApi谷歌学者API,使研究代理能够提取结构化的学者SERP数据,并完全控制每个官方参数。布局镜像 Semantic-Scholar-MCP-Server,确保一致的工具和简单的部署。

亮点

  • 完整的参数覆盖范围 –公开所有记录在案的选项(q, cites, cluster, as_ylo/as_yhi, scisbd, hl, lr, start, num, as_sdt, safe, filter, as_vis, as_rr, no_cache, async, zero_trace, output, json_restrictor等等)。
  • 稳健验证 –强制执行互斥组合(例如。, cluster vs。 q/cites, no_cache vs。 async)并防止无效的数据类型或范围。
  • 代理友好工具 –提供三个MCP工具(google_scholar_search, google_scholar_cited_by, google_scholar_versions)涵盖探索、引文追踪和版本发现。
  • 灵活的配置 –通过环境变量接受SerpApi凭据或 config.yaml.

安装

先决条件

  • Python 3.12+
  • 点

安装依赖项

cd /mnt/sdb2/szd/Agent/iknow-mcp-server
pip install -e .

这将安装:

  • mcp –MCP服务器运行时
  • requests>=2.31 –HTTP客户端
  • pyyaml>=6.0 –配置解析

配置API密钥

SerpApi Google Scholar端点需要API密钥。选择以下选项之一:

  1. 环境变量(推荐)

    export SERPAPI_API_KEY=your_private_key
    
  2. 配置文件

    serpapi:
      api_key: your_private_key
    

环境变量会覆盖文件设置。

运行服务器

python server.py

默认情况下,MCP服务器绑定到 127.0.0.1:6667 并使用 sse 运输。

可用工具

google_scholar_search

功能齐全的SERP访问。例子:

google_scholar_search(
    query="graph neural network",
    as_ylo=2022,
    as_yhi=2024,
    hl="en",
    num=10,
    filter=1,
    as_vis=0
)

google_scholar_cited_by

具有可选过滤功能的正向引文探索:

google_scholar_cited_by(
    cites="1275980731835430123",
    query="applications",
    as_ylo=2019
)

google_scholar_versions

枚举每个Scholar版本(发布者副本、arXiv、存储库):

google_scholar_versions(
    cluster="1275980731835430123",
    num=5,
    hl="en"
)

所有工具都逐字返回SerpApi的JSON有效载荷,因此代理可以解析 organic_results、元数据、分页和辅助部分不会丢失。

错误处理

  • 缺少API密钥→ RuntimeError
  • 无效或冲突的参数→ ValueError
  • 上游非2xx响应→ RuntimeError 包括HTTP状态和有效载荷

开发说明

要添加新工具,请在中复制模式 server.py:创建一个 @mcp.tool,验证参数,调用 _perform_search,并返回JSON。扩展到其他SerpApi引擎只需要新的辅助函数和常量。