home / skills / composiohq / awesome-claude-skills / canvas-automation

canvas-automation skill

/canvas-automation

This skill automates Canvas tasks via Rube MCP, discovering tools first and managing connections to execute schema-compliant operations reliably.

npx playbooks add skill composiohq/awesome-claude-skills --skill canvas-automation

Review the files below or copy the command above to add this skill to your agents.

Files (1)
SKILL.md
2.8 KB
---
name: canvas-automation
description: "Automate Canvas tasks via Rube MCP (Composio). Always search tools first for current schemas."
requires:
  mcp: [rube]
---

# Canvas Automation via Rube MCP

Automate Canvas operations through Composio's Canvas toolkit via Rube MCP.

**Toolkit docs**: [composio.dev/toolkits/canvas](https://composio.dev/toolkits/canvas)

## Prerequisites

- Rube MCP must be connected (RUBE_SEARCH_TOOLS available)
- Active Canvas connection via `RUBE_MANAGE_CONNECTIONS` with toolkit `canvas`
- Always call `RUBE_SEARCH_TOOLS` first to get current tool schemas

## Setup

**Get 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.

1. Verify Rube MCP is available by confirming `RUBE_SEARCH_TOOLS` responds
2. Call `RUBE_MANAGE_CONNECTIONS` with toolkit `canvas`
3. If connection is not ACTIVE, follow the returned auth link to complete setup
4. Confirm connection status shows ACTIVE before running any workflows

## Tool Discovery

Always discover available tools before executing workflows:

```
RUBE_SEARCH_TOOLS
queries: [{use_case: "Canvas operations", known_fields: ""}]
session: {generate_id: true}
```

This returns available tool slugs, input schemas, recommended execution plans, and known pitfalls.

## Core Workflow Pattern

### Step 1: Discover Available Tools

```
RUBE_SEARCH_TOOLS
queries: [{use_case: "your specific Canvas task"}]
session: {id: "existing_session_id"}
```

### Step 2: Check Connection

```
RUBE_MANAGE_CONNECTIONS
toolkits: ["canvas"]
session_id: "your_session_id"
```

### Step 3: Execute Tools

```
RUBE_MULTI_EXECUTE_TOOL
tools: [{
  tool_slug: "TOOL_SLUG_FROM_SEARCH",
  arguments: {/* schema-compliant args from search results */}
}]
memory: {}
session_id: "your_session_id"
```

## Known Pitfalls

- **Always search first**: Tool schemas change. Never hardcode tool slugs or arguments without calling `RUBE_SEARCH_TOOLS`
- **Check connection**: Verify `RUBE_MANAGE_CONNECTIONS` shows ACTIVE status before executing tools
- **Schema compliance**: Use exact field names and types from the search results
- **Memory parameter**: Always include `memory` in `RUBE_MULTI_EXECUTE_TOOL` calls, even if empty (`{}`)
- **Session reuse**: Reuse session IDs within a workflow. Generate new ones for new workflows
- **Pagination**: Check responses for pagination tokens and continue fetching until complete

## Quick Reference

| Operation | Approach |
|-----------|----------|
| Find tools | `RUBE_SEARCH_TOOLS` with Canvas-specific use case |
| Connect | `RUBE_MANAGE_CONNECTIONS` with toolkit `canvas` |
| 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` |

---
*Powered by [Composio](https://composio.dev)*

Overview

This skill automates Canvas LMS tasks using Composio's Canvas toolkit via the Rube MCP. It provides a clear, repeatable workflow for discovering tools, validating connections, and executing operations safely. The skill prioritizes live tool discovery so your automation always uses current schemas and endpoints.

How this skill works

Always start by calling RUBE_SEARCH_TOOLS to retrieve available Canvas tool slugs, input schemas, and recommended execution plans. Confirm an active Canvas connection with RUBE_MANAGE_CONNECTIONS before running any operations. Execute actions with RUBE_MULTI_EXECUTE_TOOL (including an explicit memory object) or run bulk jobs through RUBE_REMOTE_WORKBENCH and run_composio_tool(). Reuse session IDs during a workflow and handle pagination when reading multi-page responses.

When to use it

  • Automating course creation, enrollment, or content updates in Canvas at scale
  • Building agents that interact with Canvas without hardcoding API details
  • Running bulk operations or scheduled Canvas tasks via Rube MCP
  • Integrating Canvas actions into multi-step workflows that require tool discovery first
  • When multiple Canvas schemas may change frequently and you need live tool metadata

Best practices

  • Always call RUBE_SEARCH_TOOLS first — never hardcode tool slugs or argument names
  • Verify connection status via RUBE_MANAGE_CONNECTIONS and complete auth links if not ACTIVE
  • Supply the exact field names and types returned by the search results to avoid schema errors
  • Include a memory object (even an empty {}) in RUBE_MULTI_EXECUTE_TOOL calls
  • Reuse session IDs for a single workflow; generate fresh sessions for new workflows
  • Handle pagination tokens in responses and iterate until all data is fetched

Example use cases

  • Discovering and running the correct Canvas API tool to enroll a list of users into a course
  • Bulk-updating course modules or assignments using RUBE_REMOTE_WORKBENCH for batch execution
  • Automated verification: search tools, check connection, then query course rosters and export results
  • Embedding Canvas operations in multi-step agent workflows that require live schema validation
  • Recovering from a schema change by re-running RUBE_SEARCH_TOOLS and adapting arguments programmatically

FAQ

Do I need an API key to use Rube MCP?

No. Add https://rube.app/mcp as an MCP server in your client configuration—no API keys are required.

What should I do if a tool call fails with a schema error?

Rerun RUBE_SEARCH_TOOLS to get the current schema, update field names/types to match, and then retry. Check that the Canvas connection is ACTIVE.