谷歌课堂MCP(本地)
此MCP服务器提供了多种读写工具:
classroom_get_user_enrollmentsclassroom_get_courseclassroom_list_coursesclassroom_create_courseclassroom_update_courseclassroom_set_course_stateclassroom_archive_courseclassroom_activate_courseclassroom_delete_courseclassroom_list_course_studentsclassroom_list_course_teachersclassroom_add_teacher_to_courseclassroom_remove_teacher_from_courseclassroom_add_student_to_courseclassroom_remove_student_from_courseclassroom_list_invitationsclassroom_get_invitationclassroom_create_invitationclassroom_delete_invitationclassroom_accept_invitationclassroom_list_course_topicsclassroom_create_topicclassroom_create_announcementclassroom_list_coursework_materialsclassroom_create_coursework_materialclassroom_list_courseworkclassroom_create_assignmentclassroom_clone_courseclassroom_list_student_submissionsclassroom_set_draft_gradeclassroom_set_assigned_gradeclassroom_turn_in_submissionclassroom_reclaim_submissionclassroom_return_submission
1) Google工作区设置
- 创建(或选择)Google Cloud项目。
- 启用 谷歌课堂API.
- 创建一个 服务账户 并下载其JSON密钥。
- 启用 全域授权 在那个服务帐户上。
- 在Google管理控制台中,转到
Security > API controls > Domain-wide delegation并添加:
- 客户端ID:服务帐户客户端ID - OAuth作用域(逗号分隔): - https://www.googleapis.com/auth/classroom.courses.readonly - https://www.googleapis.com/auth/classroom.courses - https://www.googleapis.com/auth/classroom.rosters.readonly - https://www.googleapis.com/auth/classroom.rosters - https://www.googleapis.com/auth/classroom.profile.emails - https://www.googleapis.com/auth/classroom.topics.readonly - https://www.googleapis.com/auth/classroom.topics - https://www.googleapis.com/auth/classroom.announcements - https://www.googleapis.com/auth/classroom.coursework.students.readonly - https://www.googleapis.com/auth/classroom.coursework.students - https://www.googleapis.com/auth/classroom.coursework.me - https://www.googleapis.com/auth/classroom.courseworkmaterials.readonly - https://www.googleapis.com/auth/classroom.courseworkmaterials
- 确保委派的管理员用户可以读取您域中的课堂数据。
2) 本地安装
cd /home/carlos/classroom-mcp
bash setup.sh
cp .env.example .env
# edit .env可选策略 .env:
CLASSROOM_REQUIRED_TEACHERS=osvalin15@certificacionmontessori.com,online@asociacionmontessori.mx
CLASSROOM_OBSOLETE_TEACHERS=presidencia@asociacionmontessori.mx设置后,这些教师将自动添加到:
classroom_create_courseclassroom_clone_course
过时的过滤器行为:
classroom_list_courses和classroom_get_user_enrollments排除包含任何教师的课程CLASSROOM_OBSOLETE_TEACHERS.- 如果
CLASSROOM_OBSOLETE_TEACHERS未设置,默认排除为presidencia@asociacionmontessori.mx. - 集
CLASSROOM_OBSOLETE_TEACHERS=(空)禁用此筛选器。
3) 在Codex注册
codex mcp add classroom -- /home/carlos/classroom-mcp/run.sh
codex mcp list4) Codex中的示例提示
En qué materias está registrado el usuario guiarodrigo@asociacionmontessori.mx?5) 烟雾测试(便携式)
运行带有自动清理功能的完整写入路径冒烟测试:
cd /home/carlos/classroom-mcp
./smoke_test.sh您可以用标志覆盖输入:
./smoke_test.sh \
--teacher-email carlos@certificacionmontessori.com \
--student-email carlos@asociacionmontessori.com.mx \
--course-id 765463029199或在中设置默认值 .env:
SMOKE_TEST_TEACHER_EMAILSMOKE_TEST_STUDENT_EMAILSMOKE_TEST_COURSE_ID
仅在调试时保留生成的工件(无需清理):
./smoke_test.sh --keep-artifacts6) 管理员烟雾测试(课程生命周期+邀请)
这涵盖了较新的管理工具:
- 创建/更新/存档/激活/删除课程
- 添加/删除教师
- 创建/获取/列出/接受/删除邀请
cd /home/carlos/classroom-mcp
./admin_smoke_test.sh使用显式输入:
./admin_smoke_test.sh \
--admin-email admin@asociacionmontessori.com.mx \
--teacher-email carlos@certificacionmontessori.com \
--student-email carlos@asociacionmontessori.com.mx默认值可以存在 .env:
ADMIN_SMOKE_ADMIN_EMAILADMIN_SMOKE_TEACHER_EMAILADMIN_SMOKE_STUDENT_EMAIL
7) 克隆课程示例(MCP)
使用新工具将结构+内容安全地克隆为草稿:
classroom_clone_course(
source_course_id="844288618274",
new_course_name="Copia de F12 - Lenguaje",
teacher_emails=["carlos@certificacionmontessori.com"],
student_emails=["carlos@asociacionmontessori.com.mx"],
copy_topics=true,
copy_coursework=true,
copy_coursework_materials=true,
force_draft_for_created_work=true
)备注
- 如果用户存在于您的工作区域之外,谷歌可能会返回403/404。
- 如果您也需要存档课程,请咨询
course_state="ARCHIVED". acting_user_email允许您模拟教师/管理员进行需要特定角色权限的操作。classroom_create_announcement不支持真正的课堂主题绑定;如果topic_id发送后,它将作为文本标记附加。classroom_create_course默认为PROVISIONED在上线前进行更安全的设置。classroom_create_course默认值ownerId到acting_user_email(或GOOGLE_WORKSPACE_ADMIN_EMAIL)如果没有提供。classroom_delete_course永久删除该课程;更喜欢classroom_archive_course当有疑问时。classroom_clone_course创建新课程,可以复制主题、课程作业和课程作业材料,并可选择教师/学生注册。classroom_clone_course默认值force_draft_for_created_work=true以避免意外发布克隆内容。
