codex_canvas_mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| CANVAS_OP_ITEM | Yes | Canvas credential item name or ID | |
| CANVAS_BASE_URL | Yes | Canvas HTTPS origin, such as https://school.instructure.com | |
| CANVAS_OP_FIELD | No | Concealed token field label; defaults to credential | credential |
| CANVAS_OP_VAULT | Yes | 1Password vault name or ID | |
| CANVAS_WRITE_POLICY | No | Path to write policy file (optional, to enable content authoring) | |
| CANVAS_KEYCHAIN_ACCOUNT | No | macOS Keychain account label when not using OP_SERVICE_ACCOUNT_TOKEN | |
| CANVAS_KEYCHAIN_SERVICE | No | macOS Keychain service label when not using OP_SERVICE_ACCOUNT_TOKEN | |
| OP_SERVICE_ACCOUNT_TOKEN | No | Service account token for 1Password CLI (alternative to Keychain) |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| canvas_get_current_userA | Read the authenticated Canvas user's profile. Read-only. |
| canvas_list_modulesA | List modules and module items for one Canvas course. Read-only. |
| canvas_read_apiB | Read one Canvas REST API v1 path with GET. Cannot make changes. |
| canvas_get_write_policyA | Show write-policy state and approved course IDs. Does not expose credentials. |
| canvas_write_pageA | Create or update exactly one Canvas page. Disabled by default. Requires a local per-course allowlist, exact user confirmation, and approval of this write action in the MCP client. This is not generic Canvas write access. |
| canvas_create_moduleA | Create exactly one Canvas module in an approved course. Disabled by default and requires explicit confirmation. |
| canvas_create_module_itemA | Add one existing Canvas content item or external URL to an existing module in an approved course. Disabled by default and requires explicit confirmation. |
| canvas_create_assignmentA | Create exactly one Canvas assignment in an approved course. Disabled by default and requires explicit confirmation. |
| canvas_create_discussionA | Create exactly one Canvas discussion in an approved course. Disabled by default and requires explicit confirmation. |
| canvas_create_classic_quizA | Create exactly one Canvas Classic Quiz in an approved course. New Quizzes are not supported by this tool. Disabled by default and requires explicit confirmation. |
| canvas_create_classic_quiz_questionA | Add one question to an existing Canvas Classic Quiz in an approved course. Disabled by default and requires explicit confirmation. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 11 tools
Each tool targets a distinct Canvas resource and action: user info, module listing, generic API read, write policy, and specific create operations for pages, modules, module items, assignments, discussions, and quizzes. The quiz and quiz-question pair are clearly hierarchical, and the generic read tool is distinct from the specific list tool.
All tools use the 'canvas_' prefix followed by a verb_noun pattern (get_user, list_modules, create_assignment, etc.). Minor deviations include 'read_api' instead of 'get_api' and 'write_page' instead of 'create_page', but the overall pattern is predictable and consistent.
With 11 tools, the set is well-scoped for a Canvas LMS integration focused on reading course structure and creating content items. Each tool has a clear purpose, and the count falls comfortably in the ideal 3-15 range without feeling bloated.
The tool surface covers reading (user, modules, generic API), creation (pages, modules, module items, assignments, discussions, quizzes, quiz questions), and page updates, but lacks explicit update/delete operations for most created entities. The generic canvas_read_api provides a workaround for reads, but delete operations are entirely absent, leaving a noticeable lifecycle gap.