成绩查询下载服务

一个基于Flask和FastMCP的服务,帮助学生搜索、筛选和下载JNTUH成绩单PDF,支持REST API和MCP接口。

  • by Harshrb2424
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 harshrb2424/jntuh-mcp-server

使用说明

📄 JNTUH结果MCP服务器

A. 烧瓶 + FastMCP 帮助学生的服务器 搜索、筛选和下载JNTUH结果 作为PDF。
它同时支持a REST API 对于web客户端和 MCP(模型上下文协议) Claude Desktop等人工智能助手的界面。

✨ 特性

  • 搜索结果 通过:
    • 学位类型(理学士、药学学士、医学技术硕士、药学硕士)
    • 学年、学期、规章制度
    • 考试类型(常规/补充)
    • RC/RV结果过滤器
  • 生成结果PDF 适用于任何大厅票号(HTNO)
  • 下载结果 直接从服务器以PDF格式
  • CSV数据示例 如果不存在,则提供
  • MCP支持 集成到Claude Desktop或其他启用MCP的客户端
  • CORS已启用 便于前端集成

📂 项目结构

project/
├── results_data/            # Results dataset directory (auto-created)
│   └── jntuh_results.csv   # Auto-generated sample data if not exists
├── static/
│   └── pdfs/               # Generated result PDFs (auto-created)
├── app.py                  # Flask REST API server
├── mcp.py                  # MCP server implementation
├── requirements.txt        # Python dependencies
├── README.md              # This file
├── .gitattributes         # Git attributes
└── .gitignore             # Git ignore rules

⚙️ 安装

1.️⃣ 克隆存储库

git clone https://github.com/yourusername/jntuh-results-mcp.git
cd jntuh-results-mcp

二️⃣ 安装依赖关系

pip install -r requirements.txt

依赖关系:

  • 烧瓶
  • 瓶子-CORS
  • 熊猫
  • 请求:
  • weasyprint
  • mcp(具体 mcp.server.fastmcp)

🚀 运行服务器

选项1-作为REST API运行

python app.py

默认情况下,它运行在:

http://0.0.0.0:5000

可用端点:

  • 健康检查: GET /api/health
  • 获取MCP上下文: GET /api/mcp/context
  • 搜索结果: POST /api/mcp/action/search_results
  • 生成PDF: POST /api/mcp/action/generate_result
  • 下载PDF: GET /static/pdfs/<filename>

选项2——作为MCP服务器运行

python mcp.py

注: MCP服务器运行 transport="stdio" 并且被设计为与MCP兼容的客户端(如Claude Desktop)一起使用。

🤖 MCP集成

Claude桌面配置

添加到您的Claude Desktop配置文件中:

{
  "mcpServers": {
    "jntuh-results": {
      "command": "python",
      "args": ["path/to/mcp.py"]
    }
  }
}

MCP提示流

当与Claude Desktop或任何兼容MCP的AI助手一起使用时:

  1. 向用户询问学位类型
  2. 询问年份→ 学期→ 法规
  3. 询问考试类型→ RC/RV过滤器
  4. 使用 filter_results 获取匹配结果的工具
  5. 询问大厅票号
  6. 使用 get_result_pdf 生成和共享PDF的工具

📊 API使用示例

搜索结果

curl -X POST http://localhost:5000/api/mcp/action/search_results \
  -H "Content-Type: application/json" \
  -d '{
    "degree_type": "BTech",
    "year": "IV",
    "semester": "I",
    "regulation": "R18",
    "exam_type": "Supplementary",
    "rc_rv": "No"
  }'

生成结果PDF

curl -X POST http://localhost:5000/api/mcp/action/generate_result \
  -H "Content-Type: application/json" \
  -d '{
    "examCode": "1866",
    "htno": "18A81A0501"
  }'

🛠️ 发展

以开发模式运行

export FLASK_ENV=development
python app.py

测试MCP工具

# Test the MCP server
python mcp.py

可用的MCP工具

  • get_filter_options():获取搜索结果的可用筛选器选项
  • filter_results():根据标准筛选结果(学位类型、年份、学期、法规、考试类型、is_rc_rv)
  • get_result_pdf():使用exam_code和htno为学生生成PDF结果

可用MCP资源

  • jntuh://results/all:从CSV数据中获取所有可用结果

📝 备注

  • 自动生成的样本数据:项目会自动创建示例 jntuh_results.csv 如果文件不存在,则返回7条示例记录
  • 目录创建:两者都有 results_data/ 和 static/pdfs/ 目录由应用程序自动创建
  • PDF存储:生成的PDF保存在 static/pdfs/ 使用基于时间戳的文件名: result_{htno}_{exam_code}_{timestamp}.pdf
  • 双服务器架构:用于web客户端的Flask REST API,用于AI助手的FastMCP服务器
  • 错误处理:两台服务器都包括对无效的大厅票号和考试代码的全面错误处理
  • 如果被滥用,JNTUH结果系统可能会阻止请求。保持交通合理
  • 确保您拥有适当的权限并遵守JNTUH的服务条款

📄 许可证

该项目根据MIT许可证获得许可。

🤝 贡献

  1. 分叉存储库
  2. 创建要素分支(git checkout -b feature/amazing-feature)
  3. 提交您的更改(git commit -m 'Add some amazing feature')
  4. 推到分支(git push origin feature/amazing-feature)
  5. 打开拉取请求

⚠️ 免责声明

此工具用于教育目的。请尊重JNTUH的服务器和服务条款。作者不对任何滥用此软件的行为负责。

📞 支持

如果您遇到任何问题或有疑问:

  • 在GitHub上打开一个问题
  • 联系人:harshrb2424@gmail.com

由以下材料制成❤️ JNTUH学生