Canvas Lms MCP vs MCP Local Rag

A side-by-side look at the Canvas Lms MCP and MCP Local Rag MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.

Canvas Lms MCP logoCanvas Lms MCPEducation · Local subprocess (stdio)TypeScript MCP server for Canvas LMS — 115 read+write tools across 17 domains.67GreatAuth: api key requiredMCP Local Rag logoMCP Local RagKnowledge & Memory · Local subprocess (stdio)Privacy-first document search server running entirely locally. Supports semantic search over PDFs, DOCX, TXT, and Markdown files with LanceDB vector storage and local embeddings - no API keys or cloud services required.69GreatAuth: no auth required

Verdict: choose Canvas Lms MCP for education work as a local process; choose MCP Local Rag for knowledge & memory as a local process. You can also run both side by side in one mcpServers block.

Which MCP server should you choose?

Canvas Lms MCP logoChoose Canvas Lms MCP when

  • You need dedicated capabilities in the Education domain.
  • You prefer a local stdio subprocess transport.
  • Its auth model fits you: API key required.
  • You have the keys it needs: CANVAS_API_TOKEN, CANVAS_BASE_URL, CANVAS_PSEUDONYMIZE_STUDENTS.
  • You want tools like health_check, list_courses, get_course.
Explore Canvas Lms MCP

MCP Local Rag logoChoose MCP Local Rag when

  • You need dedicated capabilities in the Knowledge & Memory domain.
  • You prefer a local stdio subprocess transport.
  • Its auth model fits you: No auth required.
  • You have the keys it needs: BASE_DIR, BASE_DIRS, IGNORE_PATHS, DB_PATH, CACHE_DIR, HF_ENDPOINT.
  • You want tools like sync_start, sync_status, ingest_file.
Explore MCP Local Rag

Feature & specification comparison

Rows where the two servers differ are marked.

SpecCanvas Lms MCP logoCanvas Lms MCPMCP Local Rag logoMCP Local Rag
CategoryEducationKnowledge & Memory
Quality signal67/100 · Great69/100 · Great
Install commandConfirmedConfirmed
TransportLocal subprocess (stdio)Local subprocess (stdio)
AuthAPI key requiredNo auth required
PricingFreeFree
Required env varsCANVAS_API_TOKENCANVAS_BASE_URLCANVAS_PSEUDONYMIZE_STUDENTSBASE_DIRBASE_DIRSIGNORE_PATHSDB_PATHCACHE_DIRHF_ENDPOINT
Verified ownerCommunity listingCommunity listing
GitHub stars10416
Directory activity 2 views 0 installs 0 upvotes 9 views 0 installs 0 upvotes
Tools1749

Tools & capabilities

Canvas Lms MCP tools 174

  • health_checkCheck if the Canvas API is reachable and the token is valid. Returns ok/error status.
  • list_coursesList courses for the authenticated user. Use fields="slim" when enumerating courses for selection; switch to "full" once you have identified the target. slim returns id, name, course_code, term name, and workflow_state only. "full" (default) includes all Canvas fields plus `include` extras (teachers, total_students, syllabus_body, etc.). `state[]` narrows by course workflow state; `enrollment_state` narrows by the caller's enrollment state.
  • get_courseGet details for a single course. Defaults to requesting `term` and `total_students`. Pass `include` to replace the default set with custom Canvas include[] fields (teachers, permissions, syllabus_body, sections, etc.).
  • get_syllabusGet the syllabus HTML body for a course.
  • create_courseCreate a new course in a Canvas account. Returns the created course object.
  • update_courseUpdate an existing course. Only provided fields are changed; omitted fields are left as-is.
  • list_assignmentsList all assignments in a course. Use fields="slim" when enumerating assignments for selection; switch to "full" once you've identified the target. slim returns id, name, due_at, points_possible, published, and course_id only. "full" (default) includes all Canvas fields plus `include` extras (submission, all_dates, overrides, score_statistics, etc.). Use `bucket` to filter by past/upcoming/overdue/etc. Other filters: `search_term`, `assignment_ids`, `order_by`.
  • get_assignmentGet details for a single assignment by ID. Use `include` to request submission, overrides, all_dates, score_statistics, and other optional fields.
  • list_assignment_groupsList assignment groups (categories like Homework, Exams) in a course. Use `include=assignments` to nest assignments under each group; other includes add submission, overrides, score_statistics, etc.
  • create_assignmentCreate a new assignment in a course.
  • update_assignmentUpdate an existing assignment in a course.
  • delete_assignmentDelete an assignment from a course. This action is permanent.
  • +162 more on the listing page

MCP Local Rag tools 9

  • sync_startReconcile the index with all configured roots or one path
  • sync_statusPoll a running sync job
  • ingest_fileIngest or replace one file
  • ingest_dataIngest text, Markdown, or HTML already held by the client
  • query_documentsSearch with semantic matching and keyword boost
  • read_chunk_neighborsRead surrounding chunks from a search result
  • list_filesShow supported files and their ingestion state
  • delete_fileDelete an indexed file or an `ingest_data` item
  • statusShow index and search status

Ready-to-paste client configs

Paste either block (or both) into your client config, e.g. claude_desktop_config.json or ~/.cursor/mcp.json. We only show a config when the install command is confirmed.

Canvas Lms MCP

mcpServers (Claude Desktop / Cursor)
{
  "mcpServers": {
    "canvas-lms-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "canvas-lms-mcp"
      ],
      "env": {
        "CANVAS_API_TOKEN": "YOUR_CANVAS_API_TOKEN_HERE",
        "CANVAS_BASE_URL": "YOUR_CANVAS_BASE_URL_HERE",
        "CANVAS_PSEUDONYMIZE_STUDENTS": "YOUR_CANVAS_PSEUDONYMIZE_STUDENTS_HERE"
      }
    }
  }
}

MCP Local Rag

mcpServers (Claude Desktop / Cursor)
{
  "mcpServers": {
    "shinpr-mcp-local-rag": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-local-rag"
      ],
      "env": {
        "BASE_DIR": "YOUR_BASE_DIR_HERE",
        "BASE_DIRS": "YOUR_BASE_DIRS_HERE",
        "IGNORE_PATHS": "YOUR_IGNORE_PATHS_HERE",
        "DB_PATH": "YOUR_DB_PATH_HERE",
        "CACHE_DIR": "YOUR_CACHE_DIR_HERE",
        "HF_ENDPOINT": "YOUR_HF_ENDPOINT_HERE"
      }
    }
  }
}

Frequently asked questions

Canvas Lms MCP is categorized under Education and uses a local stdio subprocess. MCP Local Rag belongs to Knowledge & Memory and uses a local stdio subprocess. Pick Canvas Lms MCP for education work and MCP Local Rag for knowledge & memory.

Copy the mcpServers block from the config section on this page into your client's config (for example claude_desktop_config.json or ~/.cursor/mcp.json), then fully restart the client.

Canvas Lms MCP is listed as free. Auth: api key required. MCP Local Rag is listed as free. Auth: no auth required. If a server needs environment variables such as API keys, define them under the env key in your client's MCP config.

Yes. MCP clients support multiple servers: add canvas-lms-mcp and shinpr-mcp-local-rag as separate keys in the same mcpServers object, and your assistant will call tools from either one.

On AllMCPs, Canvas Lms MCP has a quality signal of 67/100 (Great) with 2 views, 0 installs and 10 GitHub stars. MCP Local Rag has 69/100 (Great) with 9 views, 0 installs and 416 GitHub stars.