uNotes
Server Details
Search university course materials, your flashcards, quizzes, streak and quota. All tools read-only.
TDQS
Scored across 52 tools
Descriptions work hard to delimit boundaries (e.g. search_library vs list_my_quizzes, get_document vs get_document_content), which raises the ceiling. But several pairs remain genuinely easy to confuse: get_document vs get_document_metadata, get_lecture vs get_lecture_audio, and the cluster of job-status tools (get_quiz_job, get_audio_overview, get_mind_map, get_import_status, get_upload_job) all behave similarly with different parameters.
The vast majority follow a snake_case verb_noun pattern (get_*, list_*, search_*, export_*, calculate_*, find_*, create_*). A few outliers such as billing_status break the verb-first convention, but the overall scheme remains predictable.
52 tools is far past the point where an agent can comfortably hold the surface in mind, and it spans many loosely related domains (billing, referrals, API keys, scopes, support tickets, streaks, study content). Scoping this into separate servers (study content, account/billing, social/community) would serve agents better.
Coverage across documents, lectures, quizzes, flashcards, mind maps, audio overviews, comments, and account admin is broad, with upload/create/list/get flows present. Minor lifecycle gaps exist (e.g. no obvious delete_document, no create_flashcard_set or create_comment visible, billing limited to status/list/upgrade), but agents can work around them.
Publisher details
- Operator
- Devino Solutions
- Operator website
- https://devino.ca
- Vendor relationship
- First-party
- Documentation
- https://unotes.net/docs
- Trust center
- Not available
- Restrictions
- Requires a uNotes account. Sign in with OAuth when your client asks.
Available Tools
52 toolsbilling_statusBilling statusARead-onlyIdempotentInspect
Get the user's plan, subscription status, renewal or end date and trial state. Pass refresh=true to re-read the subscription from the billing provider first (use it right after a purchase).
Inputs: refresh.
calculate_final_gradeCalculate final gradeARead-onlyIdempotentInspect
Work out what score is needed on the final exam: current is the average so far (percent), weight is how much the final is worth (percent of the course), target is the course grade wanted (percent).
Inputs: target (required), weight (required), current (required).
calculate_gpaCalculate gpaBRead-onlyIdempotentInspect
Compute a GPA from course grades on a grading scale (letter grades like 'A-' or percentages like 84). scale is a scale id such as standard-4-0 or university-of-toronto; credits default to 1. No account data is read or stored.
Inputs: courses (required), scale.
export_flashcard_setExport flashcard setARead-onlyIdempotentInspect
Export a flashcard set. format=tsv returns Anki-importable text inline; format=pdf returns a one-click download link.
Inputs: setId (required), format (required).
export_quizExport quizBRead-onlyIdempotentInspect
Get a one-click link to download a quiz as a printable PDF with an answer key.
Inputs: quizId (required).
find_documentsFind documentsARead-onlyIdempotentInspect
Look up finished documents by a name fragment or a pasted uNotes document link. For topic search across the library use search_library.
Inputs: keyword (required), excludeDocumentId.
find_similar_documentsFind similar documentsARead-onlyIdempotentInspect
Find documents whose file content is identical to a given document (by file hash), for spotting duplicates.
Inputs: documentId (required).
get_audio_overviewGet audio overviewARead-onlyIdempotentInspect
Check an audio overview: pass the jobId from create_audio_overview, or a documentId / lectureSessionId for the latest one. Once COMPLETED it includes the dialogue transcript and a time-limited audioUrl.
Inputs: jobId, documentId, lectureSessionId.
get_card_statesGet card statesARead-onlyIdempotentInspect
Get the user's spaced-repetition state (due date, stability, difficulty) for every card in one flashcard set they can read.
Inputs: setId (required).
get_chat_threadGet chat threadARead-onlyIdempotentInspect
Open one of the user's chat threads with all its messages. includeFileUrl=true also returns a time-limited link to the file attached to the thread, when there is one.
Inputs: threadId (required), includeFileUrl.
get_commentGet commentBRead-onlyIdempotentInspect
Open one comment with its author and the document it is on. Comments on public documents are public.
Inputs: commentId (required).
get_courseGet courseARead-onlyIdempotentInspect
Open one course (name, code, school, the user's favorite/like flags). withStats=true adds how many documents of each type it holds. Use list_course_documents for its documents.
Inputs: courseId (required), withStats.
get_documentGet documentARead-onlyIdempotentInspect
Get the metadata of a single uNotes document by ID: title, type, course, school, year, season, professor, language, popularity counters, and its public URL. Use get_document_content to read the actual text.
Inputs: documentId (required).
get_document_contentGet document contentARead-onlyIdempotentInspect
Get the full text content of a specific document, lecture session, or flashcard set. Use this when you need to read the actual content of a material to answer questions about it.
Inputs: documentId, flashcardSetId, lectureSessionId.
get_document_downloadGet document downloadARead-onlyIdempotentInspect
Check whether the user can download a document's original file today (their plan's daily limit) and get the one-click link to the document page, where the Download button is. The download itself counts against the daily limit when the user presses it.
Inputs: documentId (required).
get_document_metadataGet document metadataBRead-onlyIdempotentInspect
Get the school and course a document belongs to.
Inputs: documentId (required).
get_due_cardsGet due cardsARead-onlyIdempotentInspect
Get the user's spaced-repetition review queue: flashcards due now across all sets (oldest due first), plus how many are due and how many were learned today. limit=0 returns counts only.
Inputs: limit.
get_flashcard_setGet flashcard setARead-onlyIdempotentInspect
Get one flashcard set the user owns, with all its cards (prompt and answer).
Inputs: setId (required).
get_import_statusGet import statusARead-onlyIdempotentInspect
Check a Quizlet import started with import_quizlet.
Inputs: jobId (required).
get_lectureGet lectureARead-onlyIdempotentInspect
Open one of the user's lectures: title, status, notes, transcript and recording details.
Inputs: lectureId (required).
get_lecture_audioGet lecture audioARead-onlyIdempotentInspect
Say whether a lecture has a recording (format, length) and get a one-click link to the lecture page, where it plays.
Inputs: lectureId (required).
get_mind_mapGet mind mapARead-onlyIdempotentInspect
Check a mind map: pass the jobId from create_mind_map, or a documentId / lectureSessionId for the latest one. Once COMPLETED it includes the concept tree.
Inputs: jobId, documentId, lectureSessionId.
get_profileGet profileARead-onlyIdempotentInspect
Get the user's profile: name, username, email, whether a password is set, email-subscription state, notification categories and plan.
Inputs: no named parameters.
get_quizGet quizARead-onlyIdempotentInspect
Load an existing quiz of a course (or one named quiz of that course) so the user can take it again, with its questions and answer options. Spends no AI quota.
Inputs: courseId (required), quizId.
get_quiz_jobGet quiz jobARead-onlyIdempotentInspect
Check a quiz generation started with generate_quiz: pass the documentId (latest job for that document) or the jobId.
Inputs: jobId, documentId.
get_quota_statusGet quota statusARead-onlyIdempotentInspect
Get the authenticated user's plan tier and current usage against each quota (AI chat, quiz generation, flashcard generation, uploads, downloads, transcription minutes, audio overviews, mind maps). A null limit means unlimited.
Inputs: feature.
get_referral_summaryGet referral summaryARead-onlyIdempotentInspect
Show the user's Refer & Earn state: their personal invite link, clicks, signups, sales and earnings (pending, cleared, paid), plus their invite points. includeReferrals=true also lists the people they referred.
Inputs: includeReferrals.
get_schoolGet schoolARead-onlyIdempotentInspect
Open one school (name, abbreviation, course-code prefixes). Use list_schools_courses to browse its courses.
Inputs: schoolId (required).
get_study_streakGet study streakARead-onlyIdempotentInspect
Get the authenticated user's daily study streak: current streak length, longest streak, whether they already studied today (UTC), and milestone badges (7/30/100/365 days).
Inputs: no named parameters.
get_upload_jobGet upload jobARead-onlyIdempotentInspect
Check the progress of an upload started with upload_document or upload_document_from_url. Pass the jobId, or leave it out to list the user's uploads that are still running.
Inputs: jobId.
list_api_keysList api keysARead-onlyIdempotentInspect
List the user's active API keys (name, prefix, permissions, last used). The key value is never shown again after creation.
Inputs: no named parameters.
list_chat_threadsList chat threadsARead-onlyIdempotentInspect
List the user's AI chat threads (newest first, with messages). source='brain' (default) is the study-assistant chat that ask_brain writes to; source='copilot' lists the in-app copilot conversations. Filter by scope or by the document, lecture or flashcard set a chat is about.
Inputs: scope, source, documentId, flashcardSetId, +1 more.
list_connectionsList connectionsARead-onlyIdempotentInspect
List the AI apps connected to this uNotes account (with what each may do and when it last called) and the sign-in providers linked to it.
Inputs: no named parameters.
list_course_documentsList course documentsARead-onlyIdempotentInspect
List the documents of one course (use list_schools_courses to find the course id), optionally filtered by name, season or year, or get the course's document counts by type.
Inputs: courseId (required), name, skip, year, +3 more.
list_favoritesList favoritesARead-onlyIdempotentInspect
List the user's favorite courses, documents or schools. Optionally filter by name and page with skip and limit.
Inputs: entityType (required), skip, limit, query.
list_flashcard_setsList flashcard setsBRead-onlyIdempotentInspect
Search the public flashcard library (not just the user's own sets). query matches title and subject.
Inputs: skip, limit, query.
list_granted_scopesList granted scopesARead-onlyIdempotentInspect
Show which permission groups and scopes this connection currently holds.
Inputs: no named parameters.
list_lecturesList lecturesBRead-onlyIdempotentInspect
List the user's recorded lectures, newest edit first, optionally filtered by title.
Inputs: skip, limit, query.
list_my_commentsList my commentsARead-onlyIdempotentInspect
List the comments the user has written, newest first, each with the document it is on. Page with skip and limit.
Inputs: skip, limit.
list_my_courses_schoolsList my courses schoolsCRead-onlyIdempotentInspect
List the courses or the schools the user created, optionally filtered by name.
Inputs: type (required), name, skip, limit.
list_my_documentsList my documentsARead-onlyIdempotentInspect
List the documents the user uploaded. scope=all (default) filters by name, season, year or type; processing shows uploads still being processed; stats and counts give totals by document type; quiz_sources lists the documents a quiz can be generated from.
Inputs: name, skip, type, year, +3 more.
list_my_flashcardsList my flashcardsARead-onlyIdempotentInspect
List the authenticated user's own flashcard sets on uNotes, newest first. Use it for any question about the user's flashcards; optionally filter by title, subject, or course code. The document library search does not cover them.
Inputs: skip, limit, query.
list_my_quizzesList my quizzesARead-onlyIdempotentInspect
List the authenticated user's own quizzes on uNotes (quizzes for the courses where the user has uploaded documents), newest first. Use it for any question about the user's quizzes, such as "what quizzes do I have for CSI3131?": put the course code or quiz title in query. This is the tool for the user's quizzes; the document library search does not cover them.
Inputs: skip, limit, query.
list_notificationsList notificationsBRead-onlyIdempotentInspect
Page the user's notification history, newest first.
Inputs: skip, limit.
list_plansList plansARead-onlyIdempotentInspect
List the paid plans (Premium, Pro) with their billing periods and prices. Use the id with upgrade_plan.
Inputs: no named parameters.
list_quizzesList quizzesARead-onlyIdempotentInspect
Search the public quiz library by course, school or text (all published quizzes, not just the user's).
Inputs: skip, limit, query.
list_schools_coursesList schools coursesARead-onlyIdempotentInspect
Search for schools and courses on uNotes. Use this when the student needs to find a school or course for uploading a document or creating flashcards.
Inputs: type, limit, query, schoolId.
list_sign_in_methodsList sign in methodsARead-onlyIdempotentInspect
The ways the user can sign in to this uNotes account (Google, Apple, email and password), whether each one can be disconnected and why not, and the ones not connected yet. The last way in is never removable. Connecting a provider is a browser sign-in with that provider: give the user connectUrl. A password is set through request_password_reset.
Inputs: no named parameters.
list_support_ticketsList support ticketsBRead-onlyIdempotentInspect
List the support messages this user has sent, newest first.
Inputs: limit.
request_scopesRequest scopesAIdempotentInspect
Ask for more permissions. Returns a one-click approval link for the user; after they approve, the new permissions apply on the next call. Connections made with an API key have fixed permissions: create a new key instead.
Inputs: tiers (required).
search_librarySearch libraryARead-onlyIdempotentInspect
Search the public uNotes document library by title, course, or type keywords. Call it with the query alone whenever no scope id is already known — schoolId and courseId are optional narrowing hints, never prerequisites, and must never be requested from the user. Course codes and school names the user typed belong in the query text. It searches documents only: it is not for the user's own quizzes or flashcards, which have their own listing tools.
Inputs: query (required), limit, courseId, schoolId.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
Related MCP Connectors
Search, read, cite, create, and safely update a user's private KeepFlash knowledge library.
Search and read the articles, videos, podcasts, PDFs and notes you saved in Recall. Read-only.
1Search and read your own notes: insights, drafts, book and podcast notes. Read-only, OAuth.
Read-only search of Youth4work public jobs, assessed talent, exam mock tests and Indian colleges.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceProvides read-only access to an unofficial student wiki, enabling course catalog browsing, study-page navigation, Markdown page and discussion reading, full-text search, attachment and PDF retrieval, local OCR, and image handoff for client vision models without modifying the wiki.1MIT
- AlicenseAqualityBmaintenanceProvides read-only access to StudyLife data including courses, notes, sessions, and learning goals, enabling MCP clients to query study information via natural language.7AGPL 3.0
- AlicenseNot gradedqualityBmaintenanceExposes a student's unified, source-attributed academic context — today's and this week's classes, assignments, deadlines, recent changes, course and lecture details, search results, and conflicts — to AI agents via high-level tools and resources whose answers always carry citations and conflict notices. Corrections are propose-only, and no tool can submit assignments, change enrolment, or touch grades.1MIT
- AlicenseAqualityCmaintenanceProvides read-only access to BIT101 community posts, course reviews, personal schedules, grades, and Lexue calendar events, enabling natural language queries for Beijing Institute of Technology students.101MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.