Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
作者による説明(英語の原文)
MCP server exposing the Canvas LMS REST API (1,116 endpoints) for AI assistants
この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。
このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。
使っているAIアプリを選んで、設定をコピーしてください。
CANVAS_BASE_URL, CANVAS_TOKEN, CANVAS_MAX_PAGES「秘密」と表示された値は、あなたのアカウントの鍵です。絶対に人に教えたり、チャットに貼り付けたりしないでください。
必要なもの
どのアプリを使っていますか?
上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。
Claude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます
{
"mcpServers": {
"canvas-api": {
"command": "uvx",
"args": [
"canvas-api-mcp"
],
"env": {
"CANVAS_BASE_URL": "your-value",
"CANVAS_TOKEN": "your-value",
"CANVAS_MAX_PAGES": "your-value"
}
}
}
}ターミナルでこれを実行します
claude mcp add canvas-api --env CANVAS_BASE_URL=your-value --env CANVAS_TOKEN=your-value --env CANVAS_MAX_PAGES=your-value -- uvx canvas-api-mcp動かす前に、空欄の値を入力してください。
プロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます
{
"mcpServers": {
"canvas-api": {
"command": "uvx",
"args": [
"canvas-api-mcp"
],
"env": {
"CANVAS_BASE_URL": "your-value",
"CANVAS_TOKEN": "your-value",
"CANVAS_MAX_PAGES": "your-value"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
プロジェクトの .vscode/mcp.json に貼り付けます
{
"servers": {
"canvas-api": {
"type": "stdio",
"command": "uvx",
"args": [
"canvas-api-mcp"
],
"env": {
"CANVAS_BASE_URL": "your-value",
"CANVAS_TOKEN": "your-value",
"CANVAS_MAX_PAGES": "your-value"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
これはパソコンで動くサーバーですが、ChatGPTがつなげるのはインターネット上のサーバーだけです。ほかのアプリを選んでください。
選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。
CANVAS_MAX_PAGES envこの設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。
パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月8日にチェック
レジストリ名は、リポジトリを所有するGitHubアカウント JohannsenLum で確認済みです
このリポジトリはまだGitHubから読み取っていません
このリポジトリはまだGitHubから読み取っていません
これはパソコンで動くため、インターネット上のエンドポイントはありません
パソコンで動き、代わりにローカルの設定を使います
パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
入力が必要なもの:CANVAS_BASE_URL, CANVAS_TOKEN
あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。
GitHubリポジトリの最終更新は–、最新バージョン(1.1.0)がレジストリに届いたのは3 か月前です。
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにPython (uv)も必要です。
同じカテゴリには:Spec Driven Development, Remote Desktop Commander, Cape Winelands Visit Planner
同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。
カードの見方:↓ 週あたりのダウンロードi★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Cape Winelands wine farm finder and day-route planner
作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
Never miss an assignment deadline again.
Ask your AI what's due and it reads the answer straight from Canvas:
real deadlines, real submission status, no copying anything across.
An MCP server for Canvas LMS. 16 curated tools for everyday student work, plus a gateway that reaches every endpoint your Canvas instance exposes.
📖 Documentation: [mcp.johannsenlum.com/canvas-lms](https://mcp.johannsenlum.com/canvas-lms) · install guide · tool reference · skills · compliance
Personal-use software. Canvas's API Policy requires OAuth for applications used
by multiple people, and Canvas OAuth cannot be implemented safely by locally
installed software (no PKCE, and
client_secretcannot be shipped in a package).
Use this with your own token on your own account. See Compliance.
Real prompts, and which tool answers them.
You: What's due this week?
Claude: *(calls
whats_due)*: You have 3 things due: Problem Set 4 (Thu,
CS3230), a discussion reply (Fri, IS4302), and the Milestone 2 report (Sun,
EE2211).
You: How am I doing in my databases course, and what's on the syllabus for
week 6?
Claude: *(calls
my_grades, thenget_syllabus, then
course_contentfor the week 6 module)*: You're at 87% overall. Week 6 covers
normalization and has a reading plus a lab file due Friday.
You: Summarize the PDF lecture notes for lecture 8 and pull up my submission
for the essay so I can see the feedback.
Claude: *(calls
list_files+read_filefor the PDF, thenmy_submission
for the essay)*: ...
You: Reply to the "Project teams" discussion and say I'm free after 3pm for
the group meeting.
Claude: *(calls
post_discussion_reply✏️)*: Posted to the thread.
You: Has Canvas ever given me quiz statistics broken down by question, across
the whole semester?
Claude: *(calls
search_canvas_apito find the right endpoint, then
canvas_requestto call it)*: ...
The last example is the point of the gateway tools: if an endpoint exists on your Canvas instance, search_canvas_api can find it and canvas_request can call it, even though only 16 tools are hand-curated.
Note that the token expires. Since Instructure's October 2025 security update, accounts holding only student roles must set an expiry no more than 120 days out, and institutions often cap it lower (NUS allows 90). Write the date down: an expired token makes every tool return 401 at once, which looks like a broken install rather than a credential that simply ran out.
canvas-api-mcp is published on PyPI. Run it with:
uvx canvas-api-mcp
Install from source (contributors / unreleased `main`). Not part of the normal install path above, only needed if you want the latest unreleased code instead of the published PyPI release:
uvx --from git+https://github.com/JohannsenLum/canvas-api-mcp canvas-api-mcp
Or run from a local clone:
git clone https://github.com/JohannsenLum/canvas-api-mcp
cd canvas-api-mcp uv sync
One-click deeplinks exist for Cursor, VS Code, and LM Studio only. No other client has a documented install-link format. These prefill the config below but still need CANVAS_BASE_URL and CANVAS_TOKEN filled in afterward.
Your token stays on your machine, in your own config file. It is never transmitted anywhere except directly to your Canvas instance.
| Client | Deeplink? |
|---|---|
| Claude Code | no |
| Claude Desktop | no |
| Cursor | yes, above |
| VS Code | yes, above |
| LM Studio | yes, above |
| Zed | no |
| Windsurf | no (Windsurf only resolves servers in its own registry) |
Claude Code : ~/.claude.json
{
"mcpServers": { "canvas": { "command": "uvx", "args": ["canvas-api-mcp"], "env": { "CANVAS_BASE_URL": "https://canvas.yourschool.edu", "CANVAS_TOKEN": "your-token-here" } } } }
Claude Desktop : claude_desktop_config.json
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%\Claude\claude_desktop_config.json
No one-click install exists for Claude Desktop (it installs .mcpb bundles, not deeplinks). Copy this JSON in via Settings → Developer → Edit Config:
{
"mcpServers": { "canvas": { "command": "uvx", "args": ["canvas-api-mcp"], "env": { "CANVAS_BASE_URL": "https://canvas.yourschool.edu", "CANVAS_TOKEN": "your-token-here" } } } }
</details>
Cursor : ~/.cursor/mcp.json
Fallback for the button above, or if you'd rather paste it directly:
{
"mcpServers": { "canvas": { "command": "uvx", "args": ["canvas-api-mcp"], "env": { "CANVAS_BASE_URL": "https://canvas.yourschool.edu", "CANVAS_TOKEN": "your-token-here" } } } }
</details>
VS Code : .vscode/mcp.json
Fallback for the button above, or if you'd rather paste it directly. Note VS Code uses a servers key, not mcpServers:
{
"servers": { "canvas": { "type": "stdio", "command": "uvx", "args": ["canvas-api-mcp"], "env": { "CANVAS_BASE_URL": "https://canvas.yourschool.edu", "CANVAS_TOKEN": "your-token-here" } } } }
</details>
LM Studio : mcp.json (Program → Install → Edit mcp.json)
Fallback for the button above, or if you'd rather paste it directly:
{
"mcpServers": { "canvas": { "command": "uvx", "args": ["canvas-api-mcp"], "env": { "CANVAS_BASE_URL": "https://canvas.yourschool.edu", "CANVAS_TOKEN": "your-token-here" } } } }
</details>
Zed : settings.json
No deeplink exists for Zed. Add this under context_servers in your Zed settings:
{
"context_servers": { "canvas": { "source": "custom", "command": "uvx", "args": ["canvas-api-mcp"], "env": { "CANVAS_BASE_URL": "https://canvas.yourschool.edu", "CANVAS_TOKEN": "your-token-here" } } } }
</details>
Windsurf : ~/.codeium/windsurf/mcp_config.json
No deeplink exists for Windsurf. It only resolves servers from its own registry, so this has to be pasted in manually via Windsurf Settings → MCP Servers → Edit raw config:
{
"mcpServers": { "canvas": { "command": "uvx", "args": ["canvas-api-mcp"], "env": { "CANVAS_BASE_URL": "https://canvas.yourschool.edu", "CANVAS_TOKEN": "your-token-here" } } } }
</details>
| Tool | What it does |
|---|---|
whoami | Identity and your role in each course |
get_calendar_feed_url | Your private calendar .ics link (only when you ask for it) |
my_courses | Active courses with code, term, role |
whats_due | Everything due, soonest first |
my_grades | Current score per course |
list_assignments | A course's assignments and submission state |
get_assignment | One assignment in full, with rubric |
my_submission | Your submission, score, and feedback |
submit_assignment ✏️ | Submit work |
course_announcements | Recent announcements |
course_content | Modules and their contents |
list_files | Files in a course |
read_file | Extract text from PDF/DOCX/PPTX/text |
get_page | A Canvas wiki page by slug |
get_syllabus | A course's syllabus |
read_discussion | Topics, or one topic's replies |
post_discussion_reply ✏️ | Post to a discussion |
search_canvas_api | Find any endpoint by keyword (gateway) |
canvas_request ✏️ | Execute any endpoint (gateway) |
✏️ writes to Canvas. That's 3 write tools total: submit_assignment, post_discussion_reply, and canvas_request when called with a non-GET method (GET calls through canvas_request are read-only).
search_canvas_api + canvas_request reach all ~1,116 endpoints your instance exposes. What they may do is decided by Canvas from your token's permissions: a teacher token unlocks educator endpoints with no change to this server.
week_ahead, study_pack, grade_check.
canvas://me, `c
冒頭だけを表示しています。続きはリポジトリで読めます