jcr_mcp

yosh3289/jcr_mcp

3.3

If you are the rightful owner of jcr_mcp and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.

The JCR Partition Table MCP Server provides a Model Context Protocol server for querying the latest journal partition tables using data from the ShowJCR repository.

Tools
  1. search_journal

    Search for journal information including impact factor, partition, and warning status.

  2. get_partition_trends

    Get analysis of journal partition trend changes.

  3. check_warning_journals

    Query international journal warning lists.

  4. compare_journals

    Compare comprehensive information of multiple journals.

JCR分区表MCP服务器

基于ShowJCR仓库数据的Model Context Protocol (MCP) 服务器,为大语言模型提供最新的期刊分区表查询功能。

功能特性

🔧 工具 (Tools)

  • search_journal - 搜索期刊信息,包括影响因子、分区、预警状态等
  • get_partition_trends - 获取期刊分区变化趋势分析
  • check_warning_journals - 查询国际期刊预警名单
  • compare_journals - 对比多个期刊的综合信息

📋 资源 (Resources)

  • jcr://database-info - 数据库基本信息和统计

💡 提示词 (Prompts)

  • journal_analysis_prompt - 期刊分析专用提示词模板

数据来源

本项目基于 ShowJCR 仓库的数据,包括:

  • 中科院分区表升级版 (2025、2023、2022年)
  • JCR期刊影响因子 (2024、2023、2022年)
  • 国际期刊预警名单 (2025、2024、2023、2021、2020年)
  • CCF推荐国际学术期刊目录 (2022年)
  • 计算领域高质量科技期刊分级目录 (2022年)

安装部署

1. 环境要求

  • Python 3.8+
  • SQLite3

2. 安装依赖

pip install -r requirements.txt

3. 数据同步

首次运行前需要同步数据:

python data_sync.py

选择"1"同步所有数据,等待下载和导入完成。

4. 启动服务器

python jcr_mcp_server.py

客户端测试

独立测试

python test_client.py

选择模式:

  • 模式1:自动测试所有功能
  • 模式2:交互式查询模式

Claude Desktop集成

在Claude Desktop配置文件中添加:

{
  "mcpServers": {
    "jcr-partition": {
      "command": "python",
      "args": ["path/to/jcr_mcp_server.py"],
      "cwd": "path/to/project"
    }
  }
}

使用示例

1. 期刊搜索

# 搜索Nature期刊
result = await session.call_tool("search_journal", {
    "journal_name": "Nature"
})

2. 分区趋势分析

# 获取Science期刊分区变化趋势
result = await session.call_tool("get_partition_trends", {
    "journal_name": "Science"
})

3. 期刊对比

# 对比三个顶级期刊
result = await session.call_tool("compare_journals", {
    "journal_list": "Nature,Science,Cell"
})

4. 预警期刊查询

# 查询预警期刊
result = await session.call_tool("check_warning_journals", {
    "keywords": "MDPI"
})

输出示例

期刊搜索结果

📚 期刊名称: NATURE

【2024年】
  📊 影响因子: 64.8
  🏆 分区: Q1
  📖 学科类别: Multidisciplinary Sciences

【2025年】
  🏆 分区: 1区
  📖 学科类别: 综合性期刊

期刊对比结果

📊 期刊对比分析结果

期刊名称                    最新影响因子      最新分区        预警状态       
----------------------------------------
Nature                    64.8           Q1             正常          
Science                   56.9           Q1             正常          
Cell                      64.5           Q1             正常          

💡 投稿建议:
  ⭐ Nature: 顶级期刊,强烈推荐
  ⭐ Science: 顶级期刊,强烈推荐  
  ⭐ Cell: 顶级期刊,强烈推荐

技术架构

数据层

  • SQLite数据库存储所有分区表数据
  • 支持多个年份的历史数据
  • 自动数据同步和验证机制

服务层

  • FastMCP框架构建MCP服务器
  • 异步处理提高性能
  • 完善的错误处理和日志记录

接口层

  • 标准MCP协议接口
  • 支持工具、资源、提示词三种类型
  • 兼容各种MCP客户端

扩展说明

添加新数据源

  1. data_sync.py中的data_sources字典添加新数据源
  2. 运行数据同步更新数据库
  3. jcr_mcp_server.py中更新解析逻辑

添加新工具

  1. jcr_mcp_server.py中使用@app.tool()装饰器
  2. 实现具体的查询逻辑
  3. 添加合适的文档字符串

部署到云端

可以将服务器部署到云平台,支持HTTP传输:

app.run(transport="streamable-http", host="0.0.0.0", port=8080)

相关链接

许可证

本项目基于MIT许可证开源。

贡献

欢迎提交Issue和Pull Request来改进这个项目!