MewCP Google Classroom MCP
Servidor MCP do Google Classroom hospedado, sem estado e multilocatário que permite que assistentes de IA gerenciem cursos, tarefas, trabalhos, alunos e atividades da sala de aula por meio do Google Classroom.
Documentação
Gerencie cursos, tarefas e alunos do Google Classroom com Agentes.
Um servidor Model Context Protocol (MCP) que expõe a API do Google Classroom para gerenciar cursos, trabalhos, comunicados, listas de alunos, entregas e responsáveis.
Visão Geral
O Servidor MCP do Google Classroom oferece gerenciamento completo do ciclo de vida do seu ambiente Google Classroom:
- Crie e gerencie cursos, tópicos, comunicados e trabalhos
- Gerencie listas de alunos e professores, convites e vínculos com responsáveis
- Leia e avalie entregas de alunos
Perfeito para:
- Educadores que automatizam a criação de cursos e a distribuição de conteúdo
- Administradores que gerenciam listas de alunos e comunicações com responsáveis em escala
- Desenvolvedores que criam integrações de gestão de aprendizagem sobre o Google Classroom
Ferramentas
Cursos
list_courses — Lista cursos que o usuário pode visualizar
Retorna uma lista de cursos que o usuário solicitante tem permissão para visualizar, opcionalmente filtrada por aluno, professor ou estado do curso.
Entradas:
- `student_id` (string, optional) — Restrict to courses with this student
- `teacher_id` (string, optional) — Restrict to courses with this teacher
- `course_states` (string, optional) — Restrict to courses in these states (e.g. ACTIVE, ARCHIVED)
- `page_size` (integer, optional) — Maximum number of courses to return
- `page_token` (string, optional) — Token for the next page of results
Saída:
{
"courses": [
{
"id": "123456789",
"name": "Introduction to Python",
"section": "Period 1",
"ownerId": "987654321",
"courseState": "ACTIVE",
"enrollmentCode": "abc123",
"updateTime": "2025-01-15T10:00:00.000Z"
}
],
"nextPageToken": "token_for_next_page"
}
get_course — Obtém um único curso
Retorna um curso pelo seu identificador.
Entradas:
- `id` (string, required) — Identifier of the course
Saída:
{
"id": "123456789",
"name": "Introduction to Python",
"section": "Period 1",
"ownerId": "987654321",
"courseState": "ACTIVE",
"enrollmentCode": "abc123",
"updateTime": "2025-01-15T10:00:00.000Z"
}
create_course — Cria um curso
Cria um novo curso. O usuário solicitante torna-se o proprietário.
Entradas:
- `body` (string, required) — JSON string representing the Course object to create
Saída:
{
"id": "123456789",
"name": "Introduction to Python",
"section": "Period 1",
"ownerId": "987654321",
"courseState": "PROVISIONED",
"enrollmentCode": "abc123",
"updateTime": "2025-01-15T10:00:00.000Z"
}
update_course — Substitui um curso
Substitui todos os campos de um curso pelos valores fornecidos.
Entradas:
- `id` (string, required) — Identifier of the course to update
- `body` (string, required) — JSON string representing the updated Course object
Saída:
{
"id": "123456789",
"name": "Advanced Python",
"section": "Period 2",
"ownerId": "987654321",
"courseState": "ACTIVE",
"updateTime": "2025-01-16T09:00:00.000Z"
}
patch_course — Atualiza parcialmente um curso
Atualiza apenas os campos especificados em update_mask.
Entradas:
- `id` (string, required) — Identifier of the course to patch
- `update_mask` (string, required) — Comma-separated list of fields to update (e.g. name,section)
- `body` (string, required) — JSON string with the fields to update
Saída:
{
"id": "123456789",
"name": "Advanced Python",
"section": "Period 1",
"ownerId": "987654321",
"courseState": "ACTIVE",
"updateTime": "2025-01-16T09:00:00.000Z"
}
delete_course — Exclui um curso
Exclui permanentemente um curso. Somente proprietários do curso podem excluí-lo.
Entradas:
- `id` (string, required) — Identifier of the course to delete
Saída:
{}
Apelidos de Curso
create_course_alias — Cria um apelido de curso
Cria um apelido para um curso para que ele possa ser referenciado por um identificador alternativo.
Entradas:
- `course_id` (string, required) — Identifier of the course
- `body` (string, required) — JSON string representing the CourseAlias object
Saída:
{
"alias": "d:intro-python-2025"
}
list_course_aliases — Lista apelidos de curso
Retorna todos os apelidos de um curso.
Entradas:
- `course_id` (string, required) — Identifier of the course
- `page_size` (integer, optional) — Maximum number of aliases to return
- `page_token` (string, optional) — Token for the next page of results
Saída:
{
"aliases": [
{ "alias": "d:intro-python-2025" },
{ "alias": "d:py101" }
]
}
delete_course_alias — Exclui um apelido de curso
Remove um apelido de um curso.
Entradas:
- `course_id` (string, required) — Identifier of the course
- `alias` (string, required) — The alias to delete
Saída:
{}
Comunicados
create_announcement — Cria um comunicado
Publica um novo comunicado em um curso.
Entradas:
- `course_id` (string, required) — Identifier of the course
- `body` (string, required) — JSON string representing the Announcement object
Saída:
{
"id": "111222333",
"courseId": "123456789",
"text": "Welcome to the course! Please review the syllabus.",
"state": "PUBLISHED",
"updateTime": "2025-01-15T10:00:00.000Z",
"creationTime": "2025-01-15T10:00:00.000Z"
}
list_announcements — Lista comunicados
Retorna comunicados em um curso, opcionalmente filtrados por estado.
Entradas:
- `course_id` (string, required) — Identifier of the course
- `announcement_states` (string, optional) — Filter by state (PUBLISHED, DRAFT, DELETED)
- `order_by` (string, optional) — Sort order (e.g. updateTime desc)
- `page_size` (integer, optional) — Maximum number of results
- `page_token` (string, optional) — Token for the next page
Saída:
{
"announcements": [
{
"id": "111222333",
"courseId": "123456789",
"text": "Welcome to the course!",
"state": "PUBLISHED",
"updateTime": "2025-01-15T10:00:00.000Z"
}
],
"nextPageToken": "token_for_next_page"
}
get_announcement — Obtém um comunicado
Retorna um único comunicado.
Entradas:
- `course_id` (string, required) — Identifier of the course
- `id` (string, required) — Identifier of the announcement
Saída:
{
"id": "111222333",
"courseId": "123456789",
"text": "Welcome to the course! Please review the syllabus.",
"state": "PUBLISHED",
"updateTime": "2025-01-15T10:00:00.000Z",
"creationTime": "2025-01-15T10:00:00.000Z"
}
patch_announcement — Atualiza um comunicado
Atualiza apenas os campos especificados em update_mask.
Entradas:
- `course_id` (string, required) — Identifier of the course
- `id` (string, required) — Identifier of the announcement
- `update_mask` (string, required) — Fields to update (e.g. text,state)
- `body` (string, required) — JSON string with updated fields
Saída:
{
"id": "111222333",
"courseId": "123456789",
"text": "Updated announcement text.",
"state": "PUBLISHED",
"updateTime": "2025-01-16T09:00:00.000Z"
}
delete_announcement — Exclui um comunicado
Exclui um comunicado. Somente comunicados em rascunho podem ser excluídos; comunicados publicados devem ser arquivados primeiro.
Entradas:
- `course_id` (string, required) — Identifier of the course
- `id` (string, required) — Identifier of the announcement
Saída:
{}
modify_announcement_assignees — Modifica destinatários do comunicado
Altera para quais alunos um comunicado é direcionado.
Entradas:
- `course_id` (string, required) — Identifier of the course
- `id` (string, required) — Identifier of the announcement
- `body` (string, required) — JSON string with assignee mode and student IDs
Saída:
{
"id": "111222333",
"courseId": "123456789",
"text": "Welcome to the course!",
"state": "PUBLISHED",
"assigneeMode": "INDIVIDUAL_STUDENTS",
"individualStudentsOptions": {
"studentIds": ["555111", "555222"]
},
"updateTime": "2025-01-16T09:00:00.000Z"
}
Trabalhos do Curso
create_course_work — Cria um item de trabalho
Cria uma tarefa, pergunta de resposta curta ou pergunta de múltipla escolha em um curso.
Entradas:
- `course_id` (string, required) — Identifier of the course
- `body` (string, required) — JSON string representing the CourseWork object
Saída:
{
"id": "222333444",
"courseId": "123456789",
"title": "Assignment 1: Hello World",
"description": "Write your first Python program.",
"workType": "ASSIGNMENT",
"state": "PUBLISHED",
"maxPoints": 100,
"dueDate": { "year": 2025, "month": 2, "day": 1 },
"dueTime": { "hours": 23, "minutes": 59 },
"updateTime": "2025-01-15T10:00:00.000Z"
}
list_course_work — Lista trabalhos
Retorna itens de trabalho em um curso, opcionalmente filtrados por estado.
Entradas:
- `course_id` (string, required) — Identifier of the course
- `course_work_states` (string, optional) — Filter by state (PUBLISHED, DRAFT, DELETED)
- `order_by` (string, optional) — Sort order (e.g. updateTime desc)
- `page_size` (integer, optional) — Maximum number of results
- `page_token` (string, optional) — Token for the next page
Saída:
{
"courseWork": [
{
"id": "222333444",
"courseId": "123456789",
"title": "Assignment 1: Hello World",
"workType": "ASSIGNMENT",
"state": "PUBLISHED",
"maxPoints": 100,
"updateTime": "2025-01-15T10:00:00.000Z"
}
],
"nextPageToken": "token_for_next_page"
}
get_course_work — Obtém um item de trabalho
Retorna um único item de trabalho.
Entradas:
- `course_id` (string, required) — Identifier of the course
- `id` (string, required) — Identifier of the coursework item
Saída:
{
"id": "222333444",
"courseId": "123456789",
"title": "Assignment 1: Hello World",
"workType": "ASSIGNMENT",
"state": "PUBLISHED",
"maxPoints": 100,
"dueDate": { "year": 2025, "month": 2, "day": 1 },
"updateTime": "2025-01-15T10:00:00.000Z"
}
patch_course_work — Atualiza um item de trabalho
Atualiza apenas os campos especificados em update_mask.
Entradas:
- `course_id` (string, required) — Identifier of the course
- `id` (string, required) — Identifier of the coursework item
- `update_mask` (string, required) — Fields to update (e.g. title,maxPoints)
- `body` (string, required) — JSON string with updated fields
Saída:
{
"id": "222333444",
"courseId": "123456789",
"title": "Assignment 1: Hello World (Updated)",
"workType": "ASSIGNMENT",
"state": "PUBLISHED",
"maxPoints": 50,
"updateTime": "2025-01-16T09:00:00.000Z"
}
delete_course_work — Exclui um item de trabalho
Exclui um item de trabalho.
Entradas:
- `course_id` (string, required) — Identifier of the course
- `id` (string, required) — Identifier of the coursework item
Saída:
{}
modify_course_work_assignees — Modifica destinatários do trabalho
Altera para quais alunos um item de trabalho é direcionado.
Entradas:
- `course_id` (string, required) — Identifier of the course
- `id` (string, required) — Identifier of the coursework item
- `body` (string, required) — JSON string with assignee mode and student IDs
Saída:
{
"id": "222333444",
"courseId": "123456789",
"title": "Assignment 1: Hello World",
"workType": "ASSIGNMENT",
"assigneeMode": "INDIVIDUAL_STUDENTS",
"individualStudentsOptions": {
"studentIds": ["555111", "555222"]
},
"updateTime": "2025-01-16T09:00:00.000Z"
}
Entregas de Alunos
list_student_submissions — Lista entregas de alunos
Retorna entregas para um item de trabalho, opcionalmente filtradas por usuário ou estado.
Entradas:
- `course_id` (string, required) — Identifier of the course
- `course_work_id` (string, required) — Identifier of the coursework item (use `-` for all)
- `user_id` (string, optional) — Restrict to submissions by this student
- `states` (string, optional) — Filter by state (TURNED_IN, RETURNED, CREATED)
- `page_size` (integer, optional) — Maximum number of results
- `page_token` (string, optional) — Token for the next page
Saída:
{
"studentSubmissions": [
{
"id": "333444555",
"courseId": "123456789",
"courseWorkId": "222333444",
"userId": "555111",
"state": "TURNED_IN",
"assignedGrade": 95,
"late": false,
"updateTime": "2025-01-31T22:00:00.000Z"
}
],
"nextPageToken": "token_for_next_page"
}
get_student_submission — Obtém uma entrega de aluno
Retorna uma única entrega de aluno.
Entradas:
- `course_id` (string, required) — Identifier of the course
- `course_work_id` (string, required) — Identifier of the coursework item
- `id` (string, required) — Identifier of the submission
Saída:
{
"id": "333444555",
"courseId": "123456789",
"courseWorkId": "222333444",
"userId": "555111",
"state": "TURNED_IN",
"assignedGrade": 95,
"late": false,
"updateTime": "2025-01-31T22:00:00.000Z"
}
patch_student_submission — Atualiza uma entrega de aluno
Atualiza campos em uma entrega, como a nota atribuída. Somente determinados campos podem ser atualizados por alunos ou professores.
Entradas:
- `course_id` (string, required) — Identifier of the course
- `course_work_id` (string, required) — Identifier of the coursework item
- `id` (string, required) — Identifier of the submission
- `update_mask` (string, required) — Fields to update (e.g. assignedGrade,draftGrade)
- `body` (string, required) — JSON string with updated fields
Saída:
{
"id": "333444555",
"courseId": "123456789",
"courseWorkId": "222333444",
"userId": "555111",
"state": "RETURNED",
"assignedGrade": 95,
"draftGrade": 95,
"updateTime": "2025-02-02T09:00:00.000Z"
}
return_student_submission — Devolve uma entrega ao aluno
Devolve uma entrega enviada ao aluno. O estado da entrega muda para RETURNED.
Entradas:
- `course_id` (string, required) — Identifier of the course
- `course_work_id` (string, required) — Identifier of the coursework item
- `id` (string, required) — Identifier of the submission
Saída:
{}
reclaim_student_submission — Reivindica uma tarefa enviada
Permite que um aluno reivindique uma entrega enviada para edição adicional. O estado da entrega volta para NEW.
Entradas:
- `course_id` (string, required) — Identifier of the course
- `course_work_id` (string, required) — Identifier of the coursework item
- `id` (string, required) — Identifier of the submission
Saída:
{}
Materiais de Trabalho do Curso
create_course_work_material — Cria um material de curso
Cria um recurso de material (documento, vídeo, link, etc.) em um curso.
Entradas:
- `course_id` (string, required) — Identifier of the course
- `body` (string, required) — JSON string representing the CourseWorkMaterial object
Saída:
{
"id": "444555666",
"courseId": "123456789",
"title": "Week 1 Reading: Python Basics",
"description": "Required reading for Week 1.",
"state": "PUBLISHED",
"updateTime": "2025-01-15T10:00:00.000Z",
"creationTime": "2025-01-15T10:00:00.000Z"
}
list_course_work_materials — Lista materiais de curso
Retorna materiais em um curso, opcionalmente filtrados por item do Drive ou URL.
Entradas:
- `course_id` (string, required) — Identifier of the course
- `material_drive_id` (string, optional) — Filter by Google Drive item ID
- `material_link` (string, optional) — Filter by material URL
- `page_size` (integer, optional) — Maximum number of results
- `page_token` (string, optional) — Token for the next page
Saída:
{
"courseWorkMaterial": [
{
"id": "444555666",
"courseId": "123456789",
"title": "Week 1 Reading: Python Basics",
"state": "PUBLISHED",
"updateTime": "2025-01-15T10:00:00.000Z"
}
],
"nextPageToken": "token_for_next_page"
}
get_course_work_material — Obtém um material de curso
Retorna um único material de curso.
Entradas:
- `course_id` (string, required) — Identifier of the course
- `id` (string, required) — Identifier of the material
Saída:
{
"id": "444555666",
"courseId": "123456789",
"title": "Week 1 Reading: Python Basics",
"description": "Required reading for Week 1.",
"state": "PUBLISHED",
"updateTime": "2025-01-15T10:00:00.000Z"
}
patch_course_work_material — Atualiza um material de curso
Atualiza apenas os campos especificados em update_mask.
Entradas:
- `course_id` (string, required) — Identifier of the course
- `id` (string, required) — Identifier of the material
- `update_mask` (string, required) — Fields to update (e.g. title,description)
- `body` (string, required) — JSON string with updated fields
Saída:
{
"id": "444555666",
"courseId": "123456789",
"title": "Week 1 Reading: Python Basics (Updated)",
"state": "PUBLISHED",
"updateTime": "2025-01-16T09:00:00.000Z"
}
delete_course_work_material — Exclui um material de curso
Exclui um material de curso.
Entradas:
- `course_id` (string, required) — Identifier of the course
- `id` (string, required) — Identifier of the material to delete
Saída:
{}
Alunos
create_student — Matricula um aluno
Adiciona um usuário como aluno de um curso usando um código de matrícula.
Entradas:
- `course_id` (string, required) — Identifier of the course
- `enrollment_code` (string, required) — Enrollment code of the course
- `body` (string, required) — JSON string representing the Student object
Saída:
{
"courseId": "123456789",
"userId": "555111",
"profile": {
"id": "555111",
"name": { "fullName": "Jane Smith" },
"emailAddress": "jane.smith@school.edu"
}
}
list_students — Lista alunos
Retorna todos os alunos matriculados em um curso.
Entradas:
- `course_id` (string, required) — Identifier of the course
- `page_size` (integer, optional) — Maximum number of results
- `page_token` (string, optional) — Token for the next page
Saída:
{
"students": [
{
"courseId": "123456789",
"userId": "555111",
"profile": {
"id": "555111",
"name": { "fullName": "Jane Smith" },
"emailAddress": "jane.smith@school.edu"
}
}
],
"nextPageToken": "token_for_next_page"
}
get_student — Obtém um aluno
Retorna um aluno específico em um curso.
Entradas:
- `course_id` (string, required) — Identifier of the course
- `user_id` (string, required) — Identifier of the student
Saída:
{
"courseId": "123456789",
"userId": "555111",
"profile": {
"id": "555111",
"name": { "givenName": "Jane", "familyName": "Smith", "fullName": "Jane Smith" },
"emailAddress": "jane.smith@school.edu"
}
}
delete_student — Remove um aluno
Remove um aluno de um curso.
Entradas:
- `course_id` (string, required) — Identifier of the course
- `user_id` (string, required) — Identifier of the student to remove
Saída:
{}
Professores
create_teacher — Adiciona um professor
Adiciona um usuário como coprofessor de um curso.
Entradas:
- `course_id` (string, required) — Identifier of the course
- `body` (string, required) — JSON string representing the Teacher object
Saída:
{
"courseId": "123456789",
"userId": "666111",
"profile": {
"id": "666111",
"name": { "fullName": "Prof. Jones" },
"emailAddress": "jones@school.edu"
}
}
list_teachers — Lista professores
Retorna todos os professores de um curso.
Entradas:
- `course_id` (string, required) — Identifier of the course
- `page_size` (integer, optional) — Maximum number of results
- `page_token` (string, optional) — Token for the next page
Saída:
{
"teachers": [
{
"courseId": "123456789",
"userId": "666111",
"profile": {
"id": "666111",
"name": { "fullName": "Prof. Jones" },
"emailAddress": "jones@school.edu"
}
}
],
"nextPageToken": "token_for_next_page"
}
get_teacher — Obtém um professor
Retorna um professor específico de um curso.
Entradas:
- `course_id` (string, required) — Identifier of the course
- `user_id` (string, required) — Identifier of the teacher
Saída:
{
"courseId": "123456789",
"userId": "666111",
"profile": {
"id": "666111",
"name": { "givenName": "Robert", "familyName": "Jones", "fullName": "Prof. Jones" },
"emailAddress": "jones@school.edu"
}
}
delete_teacher — Remove um professor
Remove um professor de um curso.
Entradas:
- `course_id` (string, required) — Identifier of the course
- `user_id` (string, required) — Identifier of the teacher to remove
Saída:
{}
Tópicos
create_topic — Cria um tópico
Cria um tópico em um curso para organizar trabalhos e materiais.
Entradas:
- `course_id` (string, required) — Identifier of the course
- `body` (string, required) — JSON string representing the Topic object
Saída:
{
"courseId": "123456789",
"topicId": "777888999",
"name": "Unit 1: Variables and Data Types",
"updateTime": "2025-01-15T10:00:00.000Z"
}
list_topics — Lista tópicos
Retorna todos os tópicos em um curso.
Entradas:
- `course_id` (string, required) — Identifier of the course
- `page_size` (integer, optional) — Maximum number of results
- `page_token` (string, optional) — Token for the next page
Saída:
{
"topic": [
{
"courseId": "123456789",
"topicId": "777888999",
"name": "Unit 1: Variables and Data Types",
"updateTime": "2025-01-15T10:00:00.000Z"
}
],
"nextPageToken": "token_for_next_page"
}
get_topic — Obter um tópico
Retorna um único tópico.
Entradas:
- `course_id` (string, required) — Identifier of the course
- `id` (string, required) — Identifier of the topic
Saída:
{
"courseId": "123456789",
"topicId": "777888999",
"name": "Unit 1: Variables and Data Types",
"updateTime": "2025-01-15T10:00:00.000Z"
}
patch_topic — Atualizar um tópico
Atualiza apenas os campos especificados em update_mask.
Entradas:
- `course_id` (string, required) — Identifier of the course
- `id` (string, required) — Identifier of the topic
- `update_mask` (string, required) — Fields to update (e.g. name)
- `body` (string, required) — JSON string with updated fields
Saída:
{
"courseId": "123456789",
"topicId": "777888999",
"name": "Unit 1: Introduction to Python",
"updateTime": "2025-01-16T09:00:00.000Z"
}
delete_topic — Excluir um tópico
Exclui um tópico de um curso.
Entradas:
- `course_id` (string, required) — Identifier of the course
- `id` (string, required) — Identifier of the topic to delete
Saída:
{}
Convites
create_invitation — Convidar um usuário para um curso
Cria um convite e envia um e-mail pedindo que o usuário entre em um curso como aluno ou professor.
Entradas:
- `body` (string, required) — JSON string representing the Invitation object (userId, courseId, role)
Saída:
{
"id": "888999111",
"userId": "555222",
"courseId": "123456789",
"role": "STUDENT"
}
list_invitations — Listar convites
Retorna convites pendentes, opcionalmente filtrados por usuário ou curso.
Entradas:
- `user_id` (string, optional) — Restrict to invitations for this user
- `course_id` (string, optional) — Restrict to invitations for this course
- `page_size` (integer, optional) — Maximum number of results
- `page_token` (string, optional) — Token for the next page
Saída:
{
"invitations": [
{
"id": "888999111",
"userId": "555222",
"courseId": "123456789",
"role": "STUDENT"
}
],
"nextPageToken": "token_for_next_page"
}
get_invitation — Obter um convite
Retorna um convite específico.
Entradas:
- `id` (string, required) — Identifier of the invitation
Saída:
{
"id": "888999111",
"userId": "555222",
"courseId": "123456789",
"role": "STUDENT"
}
delete_invitation — Excluir um convite
Exclui um convite pendente.
Entradas:
- `id` (string, required) — Identifier of the invitation to delete
Saída:
{}
accept_invitation — Aceitar um convite
Aceita um convite, adicionando o usuário convidado ao curso como aluno ou professor e removendo o convite.
Entradas:
- `id` (string, required) — Identifier of the invitation to accept
Saída:
{}
Registros
create_registration — Criar um registro de notificação push
Registra um feed Cloud Pub/Sub para receber notificações push do Classroom.
Entradas:
- `body` (string, required) — JSON string representing the Registration object (feed, cloudPubsubTopic)
Saída:
{
"registrationId": "999111222",
"feed": {
"feedType": "COURSE_ROSTER_CHANGES",
"courseRosterChangesInfo": { "courseId": "123456789" }
},
"cloudPubsubTopic": {
"topicName": "projects/my-project/topics/classroom-notifications"
},
"expiryTime": "2025-02-15T10:00:00.000Z"
}
delete_registration — Excluir um registro
Exclui um registro de notificação push.
Entradas:
- `registration_id` (string, required) — Identifier of the registration to delete
Saída:
{}
Perfis de Usuário
get_user_profile — Obter um perfil de usuário
Retorna o perfil de um usuário no contexto dos cursos do usuário autenticado.
Entradas:
- `user_id` (string, required) — Identifier of the user (or `me` for the authenticated user)
Saída:
{
"id": "987654321",
"name": {
"givenName": "John",
"familyName": "Doe",
"fullName": "John Doe"
},
"emailAddress": "john.doe@school.edu",
"photoUrl": "https://lh3.googleusercontent.com/a/photo"
}
Responsáveis
create_guardian_invitation — Convidar um responsável
Envia um convite por e-mail a um responsável pedindo que ele confirme sua relação com um aluno.
Entradas:
- `student_id` (string, required) — Identifier of the student
- `body` (string, required) — JSON string with the guardian's email address
Saída:
{
"studentId": "555111",
"invitationId": "aaa111bbb",
"invitedEmailAddress": "parent@email.com",
"state": "PENDING",
"creationTime": "2025-01-15T10:00:00.000Z"
}
get_guardian_invitation — Obter um convite de responsável
Retorna um convite de responsável específico.
Entradas:
- `student_id` (string, required) — Identifier of the student
- `invitation_id` (string, required) — Identifier of the guardian invitation
Saída:
{
"studentId": "555111",
"invitationId": "aaa111bbb",
"invitedEmailAddress": "parent@email.com",
"state": "PENDING",
"creationTime": "2025-01-15T10:00:00.000Z"
}
patch_guardian_invitation — Atualizar um convite de responsável
Atualiza um convite de responsável (por exemplo, cancelá-lo definindo o estado como COMPLETE).
Entradas:
- `student_id` (string, required) — Identifier of the student
- `invitation_id` (string, required) — Identifier of the guardian invitation
- `update_mask` (string, required) — Fields to update (e.g. state)
- `body` (string, required) — JSON string with updated fields
Saída:
{
"studentId": "555111",
"invitationId": "aaa111bbb",
"invitedEmailAddress": "parent@email.com",
"state": "COMPLETE",
"creationTime": "2025-01-15T10:00:00.000Z"
}
list_guardians — Listar responsáveis
Retorna todos os responsáveis confirmados de um aluno.
Entradas:
- `student_id` (string, required) — Identifier of the student
- `invited_email_address` (string, optional) — Filter by guardian email address
- `page_size` (integer, optional) — Maximum number of results
- `page_token` (string, optional) — Token for the next page
Saída:
{
"guardians": [
{
"studentId": "555111",
"guardianId": "bbb222ccc",
"invitedEmailAddress": "parent@email.com",
"guardianProfile": {
"id": "bbb222ccc",
"name": { "fullName": "Jane Parent" },
"emailAddress": "parent@email.com"
}
}
],
"nextPageToken": "token_for_next_page"
}
get_guardian — Obter um responsável
Retorna um responsável confirmado específico de um aluno.
Entradas:
- `student_id` (string, required) — Identifier of the student
- `guardian_id` (string, required) — Identifier of the guardian
Saída:
{
"studentId": "555111",
"guardianId": "bbb222ccc",
"invitedEmailAddress": "parent@email.com",
"guardianProfile": {
"id": "bbb222ccc",
"name": { "givenName": "Jane", "familyName": "Parent", "fullName": "Jane Parent" },
"emailAddress": "parent@email.com"
}
}
delete_guardian — Remover um responsável
Remove um responsável de um aluno, revogando o acesso dele aos e-mails de progresso do aluno.
Entradas:
- `student_id` (string, required) — Identifier of the student
- `guardian_id` (string, required) — Identifier of the guardian to remove
Saída:
{}
Referência de Parâmetros da API
Parâmetros Comuns
page_size— Número máximo de itens a retornar em uma única resposta. O servidor pode retornar menos.page_token— Token da resposta anterior no camponextPageToken. Passe-o para recuperar a próxima página de resultados.update_mask— Lista separada por vírgulas de caminhos de campos a atualizar em uma chamada PATCH. Somente os campos listados são alterados; os campos omitidos permanecem como estão.
Identificadores de Recursos
ID do Curso:
Numeric string assigned by Classroom, or an alias prefixed with "d:"
Example: 123456789 or d:intro-python-2025
ID do Usuário:
Numeric Google user ID, email address, or the literal "me" for the authenticated user
Example: 987654321 or student@school.edu or me
ID do Trabalho:
Numeric string assigned by Classroom.
Use "-" as a wildcard to list submissions across all coursework in list_student_submissions.
Example: 222333444
Solução de Problemas
Cabeçalhos Ausentes ou Inválidos
- Causa: Token OAuth não fornecido nos cabeçalhos da solicitação ou formato incorreto
- Solução:
- Verifique se os cabeçalhos
Authorization: Bearer YOUR_TOKENeX-Mewcp-Credential-Id: CREDENTIAL-IDestão presentes - Confirme que sua credencial do Google está ativa na sua conta MewCP
- Verifique se os cabeçalhos
Créditos Insuficientes
- Causa: As chamadas de API excederam seus limites de solicitação
- Solução:
- Verifique o uso de créditos no seu painel do Curious Layer
- Faça upgrade para um plano pago ou adicione créditos para limites maiores
- Entre em contato com o suporte para ajustes de crédito
Credencial Não Conectada
- Causa: Nenhuma credencial do Google Classroom vinculada à sua conta
- Solução:
- Vá para Credenciais no seu painel do MewCP
- Conecte sua conta do Google via OAuth
- Tente novamente a solicitação com o cabeçalho
X-Mewcp-Credential-Idcorreto
Payload de Solicitação Malformado
- Causa: O payload JSON passado para um parâmetro
bodyé inválido ou está faltando campos obrigatórios - Solução:
- Valide a sintaxe JSON antes de enviar
- Garanta que todos os campos obrigatórios para o tipo de recurso estejam incluídos
- Verifique se os tipos de parâmetros correspondem ao esquema da API do Google Classroom
Servidor Não Encontrado
- Causa: Nome de servidor incorreto no endpoint da API
- Solução:
- Verifique o formato do endpoint:
{server-name}/mcp/{tool-name} - Use o nome de servidor correto da documentação
- Verifique os servidores disponíveis na sua conta do Curious Layer
- Verifique o formato do endpoint:
Erro da API do Google Classroom
- Causa: A API upstream do Google Classroom retornou um erro (por exemplo, 403 Forbidden, 404 Not Found)
- Solução:
- Verifique o Painel de Status do Google Workspace para interrupções
- Confirme que sua conta do Google tem a função necessária (professor/admin) para a operação
- Garanta que o curso ou recurso solicitado exista e que você tenha acesso a ele
Recursos
- Documentação da API do Google Classroom — Guia oficial de introdução
- Referência da API do Google Classroom — Referência completa de endpoints
- Documentação do FastMCP — Especificação do FastMCP
- Credenciais do FastMCP — Pacote de manipulação de credenciais