Learn MCP
fancyboi999/ai-engineering-from-scratch-zh
AI Engineering from Scratch 中 Model Context Protocol (MCP) 路线的专注交互 tutor。
Discussion forum facilitator for Canvas LMS. An agent skill from vishalsachdev/canvas-mcp.
$ npx skills add vishalsachdev/canvas-mcp --skill canvas-discussion-facilitator -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install vishalsachdev/canvas-mcp canvas-discussion-facilitator --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/vishalsachdev/canvas-mcp.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/canvas-discussion-facilitator .claude/skills/canvas-discussion-facilitator && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "canvas-discussion-facilitator" agent skill from https://github.com/vishalsachdev/canvas-mcp/tree/main/skills/canvas-discussion-facilitator into .claude/skills/canvas-discussion-facilitator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "canvas-discussion-facilitator", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/vishalsachdev/canvas-mcp/tree/main/skills/canvas-discussion-facilitatorType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add vishalsachdev/canvas-mcp --skill canvas-discussion-facilitator -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install vishalsachdev/canvas-mcp canvas-discussion-facilitator --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/vishalsachdev/canvas-mcp.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/canvas-discussion-facilitator .agents/skills/canvas-discussion-facilitator && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "canvas-discussion-facilitator" agent skill from https://github.com/vishalsachdev/canvas-mcp/tree/main/skills/canvas-discussion-facilitator into .agents/skills/canvas-discussion-facilitator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "canvas-discussion-facilitator", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add vishalsachdev/canvas-mcp --skill canvas-discussion-facilitator -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install vishalsachdev/canvas-mcp canvas-discussion-facilitator --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/vishalsachdev/canvas-mcp.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/canvas-discussion-facilitator .cursor/skills/canvas-discussion-facilitator && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "canvas-discussion-facilitator" agent skill from https://github.com/vishalsachdev/canvas-mcp/tree/main/skills/canvas-discussion-facilitator into .cursor/skills/canvas-discussion-facilitator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "canvas-discussion-facilitator", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/vishalsachdev/canvas-mcp.git --path skills/canvas-discussion-facilitator--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add vishalsachdev/canvas-mcp --skill canvas-discussion-facilitator -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install vishalsachdev/canvas-mcp canvas-discussion-facilitator --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/vishalsachdev/canvas-mcp.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/canvas-discussion-facilitator .gemini/skills/canvas-discussion-facilitator && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "canvas-discussion-facilitator" agent skill from https://github.com/vishalsachdev/canvas-mcp/tree/main/skills/canvas-discussion-facilitator into .gemini/skills/canvas-discussion-facilitator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "canvas-discussion-facilitator", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install vishalsachdev/canvas-mcp canvas-discussion-facilitatorInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add vishalsachdev/canvas-mcp --skill canvas-discussion-facilitator -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/vishalsachdev/canvas-mcp.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/canvas-discussion-facilitator .github/skills/canvas-discussion-facilitator && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "canvas-discussion-facilitator" agent skill from https://github.com/vishalsachdev/canvas-mcp/tree/main/skills/canvas-discussion-facilitator into .github/skills/canvas-discussion-facilitator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "canvas-discussion-facilitator", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add vishalsachdev/canvas-mcp --skill canvas-discussion-facilitator -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install vishalsachdev/canvas-mcp canvas-discussion-facilitator --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/vishalsachdev/canvas-mcp.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/canvas-discussion-facilitator .opencode/skills/canvas-discussion-facilitator && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "canvas-discussion-facilitator" agent skill from https://github.com/vishalsachdev/canvas-mcp/tree/main/skills/canvas-discussion-facilitator into .opencode/skills/canvas-discussion-facilitator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "canvas-discussion-facilitator", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
canvas-discussion-facilitatorDiscussion forum facilitator for Canvas LMS. An agent skill from vishalsachdev/canvas-mcp.
Canvas Discussion Facilitator is an agent skill from vishalsachdev/canvas-mcp. Discussion forum facilitator for Canvas LMS. Helps students and educators browse, read, reply to, and create discussion posts. Trigger phrases include "discussion posts", "reply to students", "check discussions", "forum participation", "post a discussion", or any discussion-related Canvas task.
Its SKILL.md is about 2.6k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Agent Workflows, covering MCP servers. The repository describes itself as: Canvas LMS MCP server — up to 102 tools and 8 agent skills for students & educators. Works with Claude, Cursor, Codex, and 40+ agents. The licence is MIT.
7 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit b054b91. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md.
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Canvas Discussion Facilitator loads about 2.6k tokens when it runs. Until then it costs about 81 tokens; SKILL.md has 1,284 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from vishalsachdev/canvas-mcp at commit b054b91, republished under its MIT licence (© vishalsachdev). 1,284 words, ~2,603 tokens.
.claude/skills/canvas-discussion-facilitator/SKILL.md (or your agent's skills folder).Facilitate discussion forum activity in Canvas LMS -- browse topics, read posts, reply to students, create new discussions, and monitor participation. Works for both students and educators.
ENABLE_DATA_ANONYMIZATION=true in the Canvas MCP server environment to anonymize supported student identity fields in output. This control does not by itself establish compliance.Ask the user which course to work with. Accept a course code, Canvas ID, or ask them to pick from a list.
If the user does not specify, use list_courses to show active courses and prompt:
Which course should I look at discussions for?
Call the MCP tool list_discussion_topics with the course identifier to retrieve all discussion forums.
Parameters:
course_identifier -- course code or Canvas IDinclude_announcements -- set to false (default) to see only discussions, or true to include announcementsData to surface per topic:
Present the list so the user can pick a topic to drill into.
Once the user selects a topic, call list_discussion_entries to retrieve posts.
Parameters:
course_identifier -- course code or Canvas IDtopic_id -- the selected discussion topic IDinclude_full_content -- set to true to see complete post bodiesinclude_replies -- set to true to see threaded repliesData to surface per entry:
If a post is truncated or the user wants the complete text, call get_discussion_entry_details.
Parameters:
course_identifier -- course code or Canvas IDtopic_id -- the discussion topic IDentry_id -- the specific entry IDinclude_replies -- set to true to also fetch all replies to this entryPresent the full post content along with any replies, timestamps, and author information.
When the user wants to respond to a specific post, call reply_to_discussion_entry.
Parameters:
course_identifier -- course code or Canvas IDtopic_id -- the discussion topic IDentry_id -- the entry being replied tomessage -- the reply content (HTML is supported)Before sending, always:
When the user wants to add a new post to an existing discussion (not a reply), call post_discussion_entry.
Parameters:
course_identifier -- course code or Canvas IDtopic_id -- the discussion topic IDmessage -- the post content (HTML is supported)Show the draft to the user and confirm before posting.
When the user needs an entirely new discussion forum, call create_discussion_topic.
Parameters:
course_identifier -- course code or Canvas IDtitle -- the discussion titlemessage -- the opening post / prompt for the discussiondelayed_post_at -- (optional) ISO 8601 datetime to schedule the discussion to appear laterlock_at -- (optional) ISO 8601 datetime to automatically lock the discussionrequire_initial_post -- set to true if students must post before seeing classmates' responsespinned -- set to true to pin the topic to the top of the discussion listConfirm the title, content, and any scheduling options with the user before creating.
list_discussion_topics to get all discussion forums in the course.list_discussion_entries to retrieve all posts.list_users or list_submissions to get enrolled students).Present participation as a summary:
## Discussion Participation: [Course Name]
### Topic: "Week 5 Reading Response" (due Mar 3)
- **Posted:** 28 / 32 students (88%)
- **Not posted:** Student_a1b2c3d, Student_e4f5g6h, Student_i7j8k9l, Student_m0n1o2p
### Topic: "Case Study Analysis" (due Mar 5)
- **Posted:** 15 / 32 students (47%)
- **Not posted:** [17 students listed]
### Students Missing Multiple Discussions
- Student_a1b2c3d -- missing 2 discussions
- Student_e4f5g6h -- missing 2 discussionsAfter identifying non-participants, offer to:
create_announcement with a general reminder about discussion deadlines.send_conversation to contact students who are behind on participation.When an educator wants to reply to student posts:
get_discussion_entry_details (include replies for context).reply_to_discussion_entry.list_discussion_topics to see all active discussions.list_discussion_entries with include_full_content=true to read posts.get_discussion_entry_details.reply_to_discussion_entry.list_discussion_entries to avoid duplicating points already made.post_discussion_entry.| Tool | Purpose |
|---|---|
list_courses | Find the target course |
list_discussion_topics | Browse all discussion forums in a course |
list_discussion_entries | View posts within a discussion topic |
get_discussion_entry_details | Read a single post with full content and replies |
get_discussion_topic_details | Get metadata about a discussion topic |
reply_to_discussion_entry | Reply to an existing post |
post_discussion_entry | Add a new top-level post to a discussion |
create_discussion_topic | Create a new discussion forum |
create_announcement | Post a course announcement (educator) |
send_conversation | Message specific students through Canvas (educator) |
list_users | Get enrolled students for participation tracking (educator) |
reply_to_discussion_entry, post_discussion_entry, create_discussion_topic, create_announcement).require_initial_post). If a student cannot see other posts, they need to post first.delayed_post_at and lock_at dates on topics. Do not attempt to post to locked discussions.User (educator): "Show me who hasn't posted in the Week 5 discussion for CS 101."
Agent: Calls list_discussion_topics to find the Week 5 topic, then list_discussion_entries to get all posts, then cross-references with enrolled students. Outputs a participation summary listing students who have not posted.
User: "Send them a reminder."
Agent: Drafts a reminder message referencing the discussion deadline, shows it for confirmation, then calls send_conversation to message the non-participating students.
User (student): "I need to reply to Maria's post in the Case Study discussion."
Agent: Calls list_discussion_topics to find the Case Study topic, then list_discussion_entries to locate Maria's post, then get_discussion_entry_details to read the full content. Helps draft a reply that references Maria's key arguments, shows the draft for confirmation, then calls reply_to_discussion_entry.
canvas-morning-check for educators who want a full course status before diving into discussions.© vishalsachdev, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in skills/canvas-discussion-facilitator of vishalsachdev/canvas-mcp.
Open the folder on GitHubat commit b054b91
Canvas Discussion Facilitator next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Canvas Discussion Facilitator this skillvishalsachdev/canvas-mcp | 286 | — | ~2.6k | Automated safety check: Pass | MIT | |
| Learn MCPfancyboi999/ai-engineering-from-scratch-zh | 1.2k | — | ~1.5k | Automated safety check: Pass | MIT | |
| MCP Server Builderanthropics/skills | 180k | 63 repos | ~2.3k | Automated safety check: Pass | Apache-2.0 | |
| MCP Server BuildershareAI-lab/learn-claude-code | 78k | 4 repos | ~1.2k | Automated safety check: Pass | MIT | |
| MCP Integration for Pluginsanthropics/claude-plugins-official | 38k | 11 repos | ~3.1k | Automated safety check: Pass | Apache-2.0 | |
| Microsoft Skill CreatorMicrosoftDocs/mcp | 1.9k | 3 repos | ~2.1k | Automated safety check: Pass | CC-BY-4.0 |
fancyboi999/ai-engineering-from-scratch-zh
AI Engineering from Scratch 中 Model Context Protocol (MCP) 路线的专注交互 tutor。
anthropics/skills
Guides the design and implementation of Model Context Protocol servers in TypeScript or Python, from tool naming and error messages to evaluation.
shareAI-lab/learn-claude-code
Walks through building MCP servers in Python or TypeScript that expose tools, resources and prompts to Claude, with templates, registration and testing.
anthropics/claude-plugins-official
Explains how to bundle Model Context Protocol servers in a Claude Code plugin, covering config files, stdio, SSE, HTTP and WebSocket server types, and authentication.
MicrosoftDocs/mcp
Create agent skills for Microsoft technologies using official documentation.
pascalorg/editor
Checks whether a sofa, table, bed or appliance fits in a measured Pascal room and reports only what the evidence supports, or asks for the missing measurements.
vishalsachdev/canvas-mcp
Accessibility audit and remediation for Canvas LMS courses. An agent skill from vishalsachdev/canvas-mcp.
vishalsachdev/canvas-mcp
Scaffold complete Canvas LMS course structures from specs, templates, or existing courses.
vishalsachdev/canvas-mcp
Learning designer quality check for Canvas LMS courses. An agent skill from vishalsachdev/canvas-mcp.
vishalsachdev/canvas-mcp
Educator morning course health check for Canvas LMS. An agent skill from vishalsachdev/canvas-mcp.
vishalsachdev/canvas-mcp
Educator peer review management for Canvas LMS. An agent skill from vishalsachdev/canvas-mcp.
vishalsachdev/canvas-mcp
Student weekly assignment planner for Canvas LMS. An agent skill from vishalsachdev/canvas-mcp.
Categories
Discussion forum facilitator for Canvas LMS. An agent skill from vishalsachdev/canvas-mcp. Canvas Discussion Facilitator is an agent skill from vishalsachdev/canvas-mcp. Discussion forum facilitator for Canvas LMS.
Canvas Discussion Facilitator fits situations like: phrases include discussion posts; reply to students; check discussions; forum participation.
Run `npx skills add vishalsachdev/canvas-mcp --skill canvas-discussion-facilitator -a claude-code`. Or copy the skill folder (skills/canvas-discussion-facilitator in vishalsachdev/canvas-mcp) into .claude/skills/canvas-discussion-facilitator in your project. Claude Code loads it when a task matches its description.
Run `npx skills add vishalsachdev/canvas-mcp --skill canvas-discussion-facilitator -a codex`. Or copy the skill folder (skills/canvas-discussion-facilitator in vishalsachdev/canvas-mcp) into .agents/skills/canvas-discussion-facilitator in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add vishalsachdev/canvas-mcp --skill canvas-discussion-facilitator -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/canvas-discussion-facilitator, .gemini/skills/canvas-discussion-facilitator, .github/skills/canvas-discussion-facilitator and .opencode/skills/canvas-discussion-facilitator in your project.
SKILL.md names no scripts, command-line tools or credentials: Canvas Discussion Facilitator is instructions for the agent only.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Canvas Discussion Facilitator is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.6k tokens (SKILL.md is roughly 10k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Canvas Discussion Facilitator: Learn MCP (fancyboi999/ai-engineering-from-scratch-zh, 1.2k stars), MCP Server Builder (anthropics/skills, 180k stars), MCP Server Builder (shareAI-lab/learn-claude-code, 78k stars) and MCP Integration for Plugins (anthropics/claude-plugins-official, 38k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
vishalsachdev (a GitHub user) maintains it in vishalsachdev/canvas-mcp, which has 286 GitHub stars. The repository holds 8 skills in this directory. The repository was last updated on October 10, 2026.
Source: vishalsachdev/canvas-mcp on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.