MCP tools

Four read-only tools for the course material you import. Every request is scoped to your account.

Connection

Use Streamable HTTP at https://coursemcp.com/mcp. Your MCP client handles initialization and tool calls.

Connect the server, then follow your client's browser sign-in and authorization prompt. OAuth discovery and dynamic client registration are supported. You do not need to paste an access token. See the setup guide for client instructions.

Call tools/list for the current tool schemas. Search first, read selected passages for context, and request original pages when the text is insufficient. Course discovery is optional when you already know the course ID.

list_courses

Discover imported courses and indexing coverage. Skip this when a course_id is already known; search can search all your courses.

No arguments. Returns imported courses with IDs and indexing coverage.

Example tools/call params

{
  "name": "list_courses",
  "arguments": {}
}

read

Read up to six selected chunk_ids together, or page through a resource_id. By default, question reads follow up to two continuation chunks and stop before a different question; other passages get one following chunk. Set after explicitly (0–2) for broader or narrower context. before defaults to 0. Shared citations and overlapping chunks appear once. max_chars bounds total passage text. Resume remaining items with chunk_ids:[chunk_id], text_offset, after:0; follow next for source pagination. Prefer selected evidence to whole files.

Supply either chunk_ids or resource_id, never both. cursor and limit apply only to resource reads.

after
integer · min: 0 · max: 2
before
integer · default: 0 · min: 0 · max: 2
chunk_ids
array · min items: 1 · max items: 6 · items: string · uuid · unique items
cursor
integer · default: 0 · min: 0 · max: 100000
limit
integer · default: 4 · min: 1 · max: 8
max_chars
integer · default: 12000 · min: 2000 · max: 24000
resource_id
string · uuid
text_offset
integer · default: 0 · min: 0 · max: 100000

Example tools/call params

{
  "name": "read",
  "arguments": {
    "chunk_ids": [
      "00000000-0000-4000-8000-000000000001"
    ]
  }
}

Replace the example UUID with an ID returned by CourseMCP.

get_course_source

Inspect original evidence when equations, diagrams or extraction are unclear. Request one to four PDF page images; omit pages for a short-lived original-file link.

resource_id is required. Page images are supported for original PDFs. Omitting pages returns a temporary download link to the original file.

pages
array · min items: 1 · max items: 4 · items: integer · min: 1 · unique items
resource_id
string · uuid

Example tools/call params

{
  "name": "get_course_source",
  "arguments": {
    "pages": [
      1
    ],
    "resource_id": "00000000-0000-4000-8000-000000000002"
  }
}

Replace the example UUID with an ID returned by CourseMCP.

Results and citations

Successful calls return structuredContent and the same data as JSON text. Search and read results include a shared sources dictionary with titles, source URLs, and provenance. max_chars bounds passage text; metadata adds to the total response size.

Use next_cursor to continue a search. Reads return remaining items and next pagination information. Search evidence_role values are retrieval hints, not a guarantee of correctness. A related_only result is insufficient evidence for an answer on its own.

Original-source calls also return a resource link or page images in MCP content. Image display depends on your client. Download links expire; request a new link when needed.

Usage limits

Free accounts include 10 searches per calendar month and one course. The $4 USD/month plan includes 5,000 searches per calendar month and unlimited courses. Reads, course listings, and source requests do not consume the search allowance. Request rate and storage limits still apply.

Search defaults to 3 results and 4,000 excerpt characters, capped at 10 results and 16,000 characters. Reads allow up to 24,000 passage characters. Original PDF requests accept at most 4 pages per call.

Errors

Tool failures return isError: true and a text message containing a reason code. Authentication and rate-limit failures use HTTP status codes instead.

unauthorized · HTTP 401
Sign in or authorize the connection again. The WWW-Authenticate header points to OAuth discovery metadata.
rate_limited · HTTP 429
Back off before retrying. Avoid repeated immediate requests.
invalid_arguments
Check the tool schema, argument combinations, IDs, and bounds before retrying.
unknown_tool
Refresh tools/list or reconnect the client.
not_found
The resource is unavailable to this account. Discover an accessible resource rather than retrying the same ID.
not_ready
The source is not ready to read. Check indexing coverage before trying again.
monthly_query_limit_reached
The monthly search allowance is exhausted. Wait for the next calendar month or review your plan.