BUPT助手

一个MCP小工具

如果没有了解过MCP和如何制作自己的MCP可以看看这个视频:https://youtu.be/wXAqv8uvY0M?si=CaQQNeJzZ0YhXPAN

其实本质上很简单,只需要制作tools,帮助大模型获取更多关于讨论话题的具体信息即可,这些工具可以是具体的操作,也可以是简单的操作说明书.

两个例子:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
@mcp.tool() # 只需要用 @mcp.tool() 修饰即可让大模型知道这是工具
def usage_guide() -> str:
"""
完整使用指南:

=== BUPT 教务系统 ===
1) 首先调用 login_to_BUPT_website(username, password) 完成首次登录
2) 可用 check_is_login() 检查登录态,返回 Login successful/failed
3) 获取页面内容请用 get_page_content_in_BUPT_website(url)
注意:URL 必须位于 https://jwgl.bupt.edu.cn/jsxsd/ 域名下

=== BUPT 信息门户系统 ===
1) 设置cookies供之后使用
2) 检查登录:check_is_login_in_BUPT_Menhu_website()
3) 获取内容:get_page_content_in_BUPT_Menhu_website(url)

=== 登录类型说明 ===
- 教务系统需要使用用户名和密码
- 信息门户需要设置cookies

=== 安全提醒 ===
- 不要在日志/响应中回显密码或验证码
- 两个系统的登录状态是独立的

=== 常用来访问的校内网址 ===
1) 教务系统:https://jwgl.bupt.edu.cn/jsxsd/
2) 信息门户:http://my.bupt.edu.cn/xs_index.jsp?urltype=tree.TreeTempUrl&wbtreeid=1541
3) 校内通知:http://my.bupt.edu.cn/list.jsp?urltype=tree.TreeTempUrl&wbtreeid=1154
4) 规章制度:http://my.bupt.edu.cn/list.jsp?urltype=tree.TreeTempUrl&wbtreeid=1536
5) 图书馆:https://lib.bupt.edu.cn/index.html
6) 校内文件:http://my.bupt.edu.cn/list.jsp?totalpage=15&PAGENUM=1&urltype=tree.TreeTempUrl&wbtreeid=2001

"""
return """
完整使用指南:

=== BUPT 教务系统 ===
1) 首先调用 login_to_BUPT_website(username, password) 完成首次登录
2) 可用 check_is_login() 检查登录态,返回 Login successful/failed
3) 获取页面内容请用 get_page_content_in_BUPT_website(url)
注意:URL 必须位于 https://jwgl.bupt.edu.cn/jsxsd/ 域名下

=== BUPT 信息门户系统 ===
1) 设置cookies供之后使用
2) 检查登录:check_is_login_in_BUPT_Menhu_website()
3) 获取内容:get_page_content_in_BUPT_Menhu_website(url)
注意:URL 必须位于 http://my.bupt.edu.cn/ 域名下

=== 登录类型说明 ===
1) 教务网站需要账号和密码
2) 信息门户网站需要设置cookies

=== 安全提醒 ===
- 不要在日志/响应中回显密码或验证码
- 两个系统的登录状态是独立的
"""
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
@mcp.tool()
def login_to_BUPT_JiaoWu_website(context: dict) -> str:
"""
Login to the BUPT website.
This is the first login, it will let you to get the access to the website.
You don't need to run this tool anymore, unless you want to change your username or password.
You need to provide the username and password.
Args:
username: The username to login with.
password: The password to login with.

Returns:
The result of the login.
"""
# 在 """ 中间的内容 """ 是大模型可以读取的工具说明
username = context.get('username')
password = context.get('password')
mylogin.username = username
mylogin.password = password
if mylogin.login().status_code == 200:
mylogin.is_login = True
return {"ok": True, "message": "Login successful"}
else:
return {"ok": False, "message": "Login failed"}

目前已经实现的v0.1可以在https://github.com/qshen0629/BUPT-assisant-mcp/tree/v0.1

问一问校车时间和开学时间这些还是能实现的,问题就是速度太慢,而且需要账号登录,还需要做很多完善工作.