Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Automate Google Classroom tasks via Rube MCP (Composio): course management, assignments, student rosters, and announcements. Always search tools first for current schemas.
.claude/skills/composiohq-google-classroom-automation-17598b/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-07 | ✗→✓ | ▲ Improved | 39% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 8% | 0% |
| case-11 | ✗→✓ | ▲ Improved | 21% | 0% |
| case-12 | ✗→✓ | ▲ Improved | -39% | 0% |
| case-15 | ✗→✓ | ▲ Improved | -5% | 0% |
Automate Google Classroom operations through Composio's Google Classroom toolkit via Rube MCP.
Toolkit docs: composio.dev/toolkits/google_classroom
RUBE_MANAGE_CONNECTIONS with toolkit google_classroomRUBE_SEARCH_TOOLS first to get current tool schemasGet Rube MCP: Add https://rube.app/mcp as an MCP server in your client configuration. No API keys needed — just add the endpoint and it works.
RUBE_SEARCH_TOOLS respondsRUBE_MANAGE_CONNECTIONS with toolkit google_classroomAlways discover available tools before executing workflows:
RUBE_SEARCH_TOOLS: queries=[{"use_case": "course management, assignments, student rosters, and announcements", "known_fields": ""}]This returns:
RUBE_SEARCH_TOOLS:
queries:
- use_case: "list all available Google Classroom tools and capabilities"Review the returned tools, their descriptions, and input schemas before proceeding.
After discovering tools, execute them via:
RUBE_MULTI_EXECUTE_TOOL:
tools:
- tool_slug: "<discovered_tool_slug>"
arguments: {<schema-compliant arguments>}
memory: {}
sync_response_to_workbench: falseFor complex workflows involving multiple Google Classroom operations:
RUBE_SEARCH_TOOLS with specific use caseRUBE_REMOTE_WORKBENCH for bulk operations or data processingAlways search for existing resources before creating new ones to avoid duplicates.
Many list operations support pagination. Check responses for next_cursor or page_token and continue fetching until exhausted.
RUBE_MANAGE_CONNECTIONS if connection expiredFor bulk operations, use RUBE_REMOTE_WORKBENCH with run_composio_tool() in a loop with ThreadPoolExecutor for parallel execution.
RUBE_SEARCH_TOOLS.RUBE_GET_TOOL_SCHEMAS to load full input schemas when schemaRef is returned instead of input_schema.| Operation | Approach | |-----------|----------| | Find tools | RUBE_SEARCH_TOOLS with Google Classroom-specific use case | | Connect | RUBE_MANAGE_CONNECTIONS with toolkit google_classroom | | Execute | RUBE_MULTI_EXECUTE_TOOL with discovered tool slugs | | Bulk ops | RUBE_REMOTE_WORKBENCH with run_composio_tool() | | Full schema | RUBE_GET_TOOL_SCHEMAS for tools with schemaRef |
> Toolkit docs: composio.dev/toolkits/google_classroom
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 8,143 | 5,601 | -31% | 1 | 1 | 0% | 1,650 | 1,308 | -21% | 0 | 0 | — |
case-10 | fail→fail | 8,039 | 1,592 | -80% | 1 | 1 | 0% | 1,402 | 1,275 | -9% | 0 | 0 | — |
case-02 | fail→fail | 7,730 | 5,315 | -31% | 1 | 1 | 0% | 1,358 | 1,259 | -7% | 0 | 0 | — |
case-03 | fail→fail | 15,697 | 5,683 | -64% | 1 | 1 | 0% | 3,147 | 1,230 | -61% | 0 | 0 | — |
case-04 | pass→fail | 10,752 | 7,706 | -28% | 1 | 1 | 0% | 2,277 | 1,402 | -38% | 0 | 0 | — |
case-05 | pass→pass | 11,801 | 13,997 | +19% | 1 | 1 | 0% | 2,669 | 4,061 | +52% | 0 | 0 | — |
case-06 | pass→pass | 12,018 | 10,931 | -9% | 1 | 1 | 0% | 2,604 | 3,239 | +24% | 0 | 0 | — |
case-07 | fail→pass | 9,863 | 6,227 | -37% | 1 | 1 | 0% | 1,627 | 2,264 | +39% | 0 | 0 | — |
case-08 | fail→pass | 7,465 | 2,859 | -62% | 1 | 1 | 0% | 1,378 | 1,489 | +8% | 0 | 0 | — |
case-09 | fail→fail | 11,251 | 4,947 | -56% | 1 | 1 | 0% | 2,153 | 1,965 | -9% | 0 | 0 | — |
case-11 | fail→pass | 9,738 | 5,667 | -42% | 1 | 1 | 0% | 1,793 | 2,172 | +21% | 0 | 0 | — |
case-12 | fail→pass | 12,684 | 1,820 | -86% | 1 | 1 | 0% | 2,246 | 1,371 | -39% | 0 | 0 | — |
case-13 | pass→pass | 4,653 | 2,715 | -42% | 1 | 1 | 0% | 802 | 1,480 | +85% | 0 | 0 | — |
case-14 | pass→pass | 13,129 | 7,346 | -44% | 1 | 1 | 0% | 2,628 | 2,465 | -6% | 0 | 0 | — |
case-15 | fail→pass | 10,448 | 4,496 | -57% | 1 | 1 | 0% | 1,997 | 1,894 | -5% | 0 | 0 | — |
case-16 | fail→fail | 8,599 | 2,965 | -66% | 1 | 1 | 0% | 1,684 | 1,515 | -10% | 0 | 0 | — |
case-17 | fail→fail | 9,591 | 3,382 | -65% | 1 | 1 | 0% | 2,081 | 1,410 | -32% | 0 | 0 | — |
case-18 | pass→pass | 9,546 | 7,437 | -22% | 1 | 1 | 0% | 1,845 | 2,460 | +33% | 0 | 0 | — |
case-19 | pass→fail | 5,971 | 5,383 | -10% | 1 | 1 | 0% | 998 | 1,907 | +91% | 0 | 0 | — |
case-20 | pass→fail | 8,411 | 3,340 | -60% | 1 | 1 | 0% | 1,656 | 1,605 | -3% | 0 | 0 | — |
case-21 | pass→pass | 3,849 | 2,168 | -44% | 1 | 1 | 0% | 811 | 1,412 | +74% | 0 | 0 | — |
case-22 | fail→pass | 3,060 | 1,563 | -49% | 1 | 1 | 0% | 452 | 1,303 | +188% | 0 | 0 | — |
case-23 | pass→pass | 6,036 | 3,543 | -41% | 1 | 1 | 0% | 1,114 | 1,626 | +46% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 23 cases were attempted, and 20 counted toward the lift figure. The other 3 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +13 percentage points is the difference between those two pass rates over the 20 comparable cases. 4 cases got worse with the skill loaded, and they are included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.