高校学科评估 MCP 服务器
这是一个基于 FastMCP 的高校学科评估查询服务器,提供智能化的高校、学科、排行榜等多维度查询功能。
功能特性
本 MCP 服务器提供以下八个工具:
1. search_university - 高校专业搜索
输入高校名,查看其所有学科及评估等级。
参数:
university_name: 高校名称(支持模糊匹配),如"清华大学"、"北京大学"max_results: 最大返回结果数,默认100
返回:
- 该高校的所有学科及其评估等级
- 按等级分组统计信息
2. search_discipline - 学科信息查询
输入学科名,查看开设该学科的所有高校及排名。
参数:
discipline_name: 学科名称(支持模糊匹配),如"计算机"、"法学"max_results: 最大返回结果数,默认100
返回:
- 开设该学科的高校列表,按等级排序
- 等级分布统计
3. filter_by_grade - 等级筛选查询
按评估等级(A+/A/A-/B+等)筛选查看学科点。
参数:
grades: 等级列表,可选值:A+, A, A-, B+, B, B-, C+, C, C-- 例如:["A+", "A"]
max_results: 最大返回结果数,默认100
返回:
- 符合条件的学科列表
- 按等级分类统计
4. browse_by_province - 地区浏览
按省份查看该地区高校的学科分布。
参数:
province: 省份名称,如"北京"、"上海"、"浙江"
返回:
- 该地区高校的学科分布统计
- 高校列表及其学科数
- 等级和专业门类分布
5. university_ranking - 高校排行榜
按学科数量、A+数量、一流大学数量等多维度排序。
参数:
rank_by: 排序方式,可选值:- "disciplines" - 按学科总数排序(默认)
- "a_plus" - 按A+学科数排序
- "a_grade" - 按A级及以上学科数排序
- "first_class" - 按一流大学学科数排序
limit: 返回前N个排名,默认50
返回:
- 按指定方式排序的高校排行榜
- 包含每所高校的学科统计信息
6. discipline_ranking - 学科排行榜
显示每个学科的开设高校数、A+数量统计。
参数:
rank_by: 排序方式,可选值:- "universities" - 按开设高校数排序(默认)
- "a_plus" - 按A+数量排序
- "a_grade" - 按A级及以上数量排序
limit: 返回前N个排名,默认50
返回:
- 按指定方式排序的学科排行榜
- 包含每个学科的Top高校信息
7. strong_disciplines - 强势学科分析
查看某高校或地区的A/A+学科。
参数:
university: 高校名称(模糊匹配),如"清华大学"、"北京大学"province: 省份名称,如"北京"、"上海"grades: 等级列表,默认["A+", "A", "A-"]
返回:
- 符合条件的强势学科列表
- 按等级分类统计
8. grade_analysis - 评估等级分析
统计各等级的学科点分布、热门学科。
参数:
- 无需参数
返回:
- 各等级的学科分布统计
- 按等级的详细分析(热门学科、分布特点等)
扩展工具
9. get_statistics - 获取统计信息
获取高校学科评估的统计信息。
参数:
group_by: 分组统计字段,可选值:- "所在省" - 按省份统计(默认)
- "一级学科" - 按学科统计
- "评估等级" - 按等级统计
- "院校类别" - 按高校类别统计
返回:
- 统计信息
环境配置
1. 安装依赖
pip install -r requirements.txt
2. 配置数据文件
将 第四轮学科评估结果.xlsx 文件放置在项目目录下,或设置环境变量:
export UNIVERSITY_EXCEL_PATH=/path/to/第四轮学科评估结果.xlsx
使用方法
本地运行
python mcp_server.py
服务器将在 http://localhost:9000/sse 启动。
配置到 Claude Desktop
Stdio 模式(推荐日常使用)
编辑 Claude Desktop 配置文件 (%APPDATA%\Claude\claude_desktop_config.json):
{
"mcpServers": {
"university-rankings": {
"command": "python",
"args": ["G:\\Desktop\\mcp_guokao\\university_rankings_mcp\\mcp_server.py"],
"env": {
"UNIVERSITY_EXCEL_PATH": "G:\\Desktop\\mcp_guokao\\university_rankings_mcp\\第四轮学科评估结果.xlsx"
}
}
}
}
SSE 模式(推荐开发测试)
- 启动 SSE 服务器:
python mcp_server.py
- 配置 Claude Desktop:
{
"mcpServers": {
"university-rankings": {
"url": "http://localhost:9000/sse"
}
}
}
阿里云函数计算部署
- 运行构建脚本安装依赖:
./build.sh
-
将以下文件上传到阿里云函数计算:
mcp_server.pyrun.sh第四轮学科评估结果.xlsxpython/目录(依赖包)
-
配置函数:
- 运行时:自定义运行时
- 启动命令:
./run.sh - 监听端口:9000
使用示例
示例 1: 查看高校的所有学科
帮我查看清华大学的所有学科及其评估等级
示例 2: 查询学科信息
计算机科学与技术专业在全国有哪些高校开设?排名前三的是哪些?
示例 3: 按等级筛选
帮我查找所有A+等级的学科
示例 4: 地区浏览
帮我看看北京有哪些高校,它们各有多少个学科
示例 5: 高校排行
帮我列出学科数量最多的前10所高校
示例 6: 学科排行
哪些学科的开设高校最多?
示例 7: 强势学科分析
北京大学有哪些A级及以上的学科?
示例 8: 等级分析
告诉我各等级学科的分布情况,特别是A+等级有多少个
项目结构
university_rankings_mcp/
├── mcp_server.py # FastMCP 服务器实现
├── university_assistant.py # 原始命令行工具(保留)
├── main.py # 命令行交互程序
├── build.sh # 构建脚本
├── run.sh # 启动脚本
├── requirements.txt # Python 依赖
├── 第四轮学科评估结果.xlsx # 数据文件(需自行准备)
└── README.md # 本文件
技术栈
- FastMCP: MCP 服务器框架
- Pandas: 数据处理和分析
- Python 3.11+: 运行环境
数据文件格式
数据文件应包含以下列:
一级学科: 学科名称评估等级: 评估等级(A+, A, A-, B+, B, B-, C+, C, C-)院校代码: 高校代码专业门类: 专业门类专业大类: 专业大类院校名称: 高校名称所在省: 所在省份所在市: 所在城市院校类别: 高校类别一流大学学科: 是否为一流大学学科(可为空)院校性质: 高校性质
注意事项
- 确保数据文件
第四轮学科评估结果.xlsx已正确配置 - 数据文件应包含第四轮学科评估的完整数据
- 返回结果默认限制为100条,可通过参数调整
- 模糊匹配功能支持部分名称匹配
与 guokao_mcp 的集成
两个 MCP 服务可以同时配置到 Claude Desktop:
{
"mcpServers": {
"guokao-helper": {
"command": "python",
"args": ["G:\\Desktop\\mcp_guokao\\guokao_mcp\\mcp_server.py"]
},
"university-rankings": {
"command": "python",
"args": ["G:\\Desktop\\mcp_guokao\\university_rankings_mcp\\mcp_server.py"]
}
}
}
这样可以在与 Claude 的对话中同时使用两个 MCP 服务的功能。
许可证
MIT License
