Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.deandesk.com/llms.txt

Use this file to discover all available pages before exploring further.

Institution-level integration - the MCP server is hosted by DeanDesk and authorized per institution. Once connected, the tools exposed to your AI client can read and write data across the institution and any selected school, subject to the scopes and roles you grant.
DeanDesk runs a Model Context Protocol (MCP) server for AI clients that support remote MCP connections. After authorization, the client can use DeanDesk tools to look up institution details, manage memberships, work with school users and courses, manage course materials and curricula, edit products and pages, read documentation, and store files in the institution Shared Drive.

How authorization works

The MCP server uses OAuth 2.1 with PKCE and supports dynamic client registration. When you add DeanDesk to an MCP client, the client opens a DeanDesk authorization page in your browser. You sign in with an institution Identity, review the requested scopes, choose a school context when school tools are needed, and approve the client. The tools that appear in your AI client depend on four things:
  • The scopes you approve
  • Your institution role
  • Your school role, when a selected school is required
  • The environment, because some migration tools are sandbox-only
Refresh tokens are issued when the client requests offline_access, so long-running clients can stay connected without asking you to sign in again.

How to set it up

Use the MCP endpoint provided by DeanDesk support or your institution administrator. For hosted DeanDesk environments, the endpoint is usually:
https://fath.ummahspot.com/agent/mcp
1

Add DeanDesk as a remote MCP server

In your MCP client’s settings, create a new server named DeanDesk and enter the DeanDesk MCP endpoint. Some clients call this a remote server URL, connector URL, or streamable HTTP endpoint.
2

Authorize the client

The client opens a browser window to DeanDesk. Sign in with your institution Identity, review the requested scopes, and approve only the access the client needs.
3

Select a school when needed

School-level tools require a selected school context. Choose the school during authorization when you want the client to manage school users, courses, course materials, curricula, rosters, products, assignments, surveys, pages, email drafts, or school settings.
4

Confirm the tools loaded

Return to the MCP client and refresh its tool list if needed. The DeanDesk tools that match your approved scopes and roles should now appear under the DeanDesk server.
Start with read-only scopes when testing a new client. Add write scopes only when the client needs to create, update, delete, or send data.

Available scopes

Scopes control which tools the AI client can call.
ScopeWhat it grants
institution:readRead institution profile, subscription, branding, and school list
institution:writeReserved for institution-level write operations
membership:readRead institution membership plans, memberships, and pending imports
membership:writeCreate, update, import, link, or sync institution memberships
school:readRead the selected school’s profile and basic setup
school.settings:readRead selected school settings, onboarding policies, metadata fields, and custom pages
school.settings:writeUpdate selected school settings, onboarding policies, metadata fields, and custom pages
students:readRead selected school users, rosters, and roster candidates
students:writeImport users and add or remove roster students
courses:readRead courses, course materials, curricula, course sidebar visibility, and course bulk-edit data
courses:writeImport, create, or update courses, course sidebar visibility, course materials, and curricula
assignments:readRead assignments, quizzes, surveys, submissions, and analytics
assignments:writeCreate or update assignments, quizzes, and surveys, and draft quizzes for chat review
communications:writeDraft school emails for review and sending
products:readRead products, prices, checkout settings, and product details
products:writeCreate, import, update, or add prices to products
files:readList school file-library records, read metadata, and create temporary view links
files:writeUpload files, update file metadata, or delete file-library records
migration:readRead migration workspaces
migration:writeCreate or update sandbox migration workspaces
memory:readBrowse and read institution or school Shared Drive files
memory:writeCreate, overwrite, organize, or delete Shared Drive files and folders
offline_accessIssue refresh tokens so the client can stay connected without re-authentication

Available tools

Your client only sees tools allowed by your approved scopes, role, selected school, and environment.

Institution and memberships

ToolScopeWhat it does
get_institution_infoinstitution:readShows institution context, branding, subscription state, and selected school context.
list_institution_schoolsinstitution:readLists schools in the institution and shows whether the token can act on them.
list_membership_plansmembership:readLists institution membership plans and term settings.
list_institution_membershipsmembership:readLists memberships with filters for status, tier type, payment source, and pagination.
get_institution_membershipmembership:readReads one membership record with editable details and metadata.
update_institution_membershipmembership:writeUpdates membership status, contact details, manual dates, payment source, notes, and metadata.
create_manual_membershipmembership:writeCreates a manual membership or queues it when the identity does not exist yet.
bulk_import_membershipsmembership:writeImports manual memberships in bulk and queues unknown identities for follow-up.
list_pending_membership_importsmembership:readLists pending membership imports that still need identity linking or sync resolution.
link_pending_membership_importmembership:writeLinks a pending import record to an identity and creates or reuses the membership.
sync_pending_membership_importsmembership:writeRuns a sync pass over pending membership imports.

Migration

ToolScopeWhat it does
list_migration_workspacesmigration:readLists migration workspaces for the institution.
create_migration_workspacemigration:writeCreates a sandbox migration workspace for an institution or selected school. Sandbox only.
update_migration_workspacemigration:writeUpdates migration staging data, mappings, validation summaries, or status. Sandbox only.

Shared Drive and documentation

ToolScopeWhat it does
list_shared_drive_directorymemory:readBrowses institution or school Shared Drive folders and files.
read_shared_drive_filememory:readReads a Shared Drive file by ID and returns text when available plus a signed download URL.
write_shared_drive_filememory:writeCreates or overwrites a text file in the Shared Drive.
create_shared_drive_foldermemory:writeCreates a Shared Drive folder, including intermediate folders when needed.
delete_shared_drive_entrymemory:writeDeletes a Shared Drive file or folder. Root institution and school folders cannot be deleted.
list_docsNo scope requiredLists DeanDesk documentation pages from the configured docs repository.
read_docNo scope requiredReads one documentation page by slug, such as finance/stripe.
search_docsNo scope requiredSearches documentation titles, slugs, and content.

School users, courses, materials, curricula, and rosters

ToolScopeWhat it does
get_school_infoschool:readReads the selected school’s profile, hostname, timezone, subscription plan, and registration policies.
list_usersstudents:readLists selected school users, with optional role and search filters.
import_usersstudents:writeBulk-imports regular user accounts or child student accounts with parent linking and welcome email content.
list_coursescourses:readLists all selected school courses with instructor, assistant, and term details.
import_coursescourses:writeBulk-imports courses, including instructors, assistants, terms, schedules, capacity, and tags.
get_course_bulk_edit_datacourses:readLoads the course spreadsheet dataset and valid edit options.
bulk_edit_coursescourses:writeBulk creates or updates courses using the same spreadsheet save flow as the web app.
update_course_sidebar_visibilitycourses:writeShows or hides course sidebar items such as curriculum, assignments, materials, surveys, students, attendance, and gradebook.
upload_course_imagecourses:writeUploads or replaces a course image from base64-encoded JPEG, PNG, or WebP bytes.
get_course_imagecourses:readReturns a temporary signed URL for a course image.
delete_course_imagecourses:writeDeletes a course image.
list_course_materialscourses:readLists course materials grouped by course-wide and section-specific groups.
get_course_materialcourses:readReads one course material with content and attached file metadata.
create_course_materialcourses:writeCreates one text material or one file material that uses an existing DeanDesk file.
upload_course_material_filecourses:writeUploads a small base64-encoded file and creates a file material for a course.
create_course_material_with_uploadcourses:writeUploads a file from a URL or enabled server-local path and creates a file material for a course in one call.
update_course_materialcourses:writeUpdates a course material title, sections, content, file, order, publication state, or availability date.
delete_course_materialcourses:writeDeletes a course material record. The uploaded file record is not deleted automatically.
reorder_course_materialscourses:writeReplaces the material order for a course.
preview_youtube_playlistcourses:readResolves a YouTube playlist and shows the public videos that would be imported.
import_youtube_playlist_materialscourses:writeImports a YouTube playlist as one text material per public video.
get_course_curriculumcourses:readReads the complete course curriculum with units, modules, material references, and assessment references.
replace_course_curriculumcourses:writeReplaces the entire course curriculum structure.
create_curriculum_unitcourses:writeCreates a curriculum unit.
bulk_create_curriculum_unitscourses:writeCreates multiple curriculum units in one tool call.
update_curriculum_unitcourses:writeUpdates a curriculum unit.
delete_curriculum_unitcourses:writeDeletes a curriculum unit and its nested curriculum content.
reorder_curriculum_unitscourses:writeReorders curriculum units.
create_curriculum_modulecourses:writeCreates a curriculum module inside a unit.
bulk_create_curriculum_modulescourses:writeCreates multiple curriculum modules or lessons in one tool call.
update_curriculum_modulecourses:writeUpdates a curriculum module.
delete_curriculum_modulecourses:writeDeletes a curriculum module from a unit.
reorder_curriculum_modulescourses:writeReorders modules within a unit.
add_curriculum_materialcourses:writeAdds an existing course material reference to a unit or module.
bulk_add_curriculum_materialscourses:writeAdds multiple existing course material references to units or modules in one tool call.
update_curriculum_materialcourses:writeUpdates a curriculum material reference, such as order or required status.
remove_curriculum_materialcourses:writeRemoves a material reference from the curriculum without deleting the underlying material.
reorder_curriculum_materialscourses:writeReorders material references within a unit or module.
add_curriculum_assessmentcourses:writeAdds an existing assignment as an assessment reference in a unit or module.
bulk_add_curriculum_assessmentscourses:writeAdds multiple existing assignments or quizzes as curriculum assessment references in one tool call.
update_curriculum_assessmentcourses:writeUpdates a curriculum assessment reference, such as order or required status.
remove_curriculum_assessmentcourses:writeRemoves an assessment reference from the curriculum without deleting the assignment.
reorder_curriculum_assessmentscourses:writeReorders assessment references within a unit or module.
move_curriculum_itemcourses:writeMoves a module, material reference, or assessment reference to another curriculum parent.
bulk_move_curriculum_itemscourses:writeMoves multiple modules, material references, or assessment references in one tool call.
duplicate_curriculum_itemcourses:writeDuplicates a curriculum unit or module with nested curriculum references.
list_rostersstudents:readLists rosters so the client can find roster IDs.
get_rosterstudents:readReads one roster, including associated courses and current students.
list_roster_student_candidatesstudents:readFinds students that can be added to a roster using roster panel filters.
bulk_add_roster_studentsstudents:writeAdds existing students to a roster by student ID.
bulk_remove_roster_studentsstudents:writeRemoves students from a roster by student ID.
For large course videos or files, use create_course_material_with_upload with a public or signed fileUrl. filePath is only for trusted local MCP deployments where MCP_ENABLE_SERVER_FILE_UPLOADS=true; hosted DeanDesk MCP servers cannot read files from an agent’s local disk.

File library

ToolScopeWhat it does
upload_filefiles:writeUploads a base64-encoded file into the selected school’s file library and returns its file ID.
list_filesfiles:readLists file-library records with optional filename, author, MIME type, tag, category, date, size, and full-text filters.
get_file_metadatafiles:readReads metadata for one file-library record.
get_file_view_linkfiles:readCreates a temporary signed URL for viewing a file.
update_file_metadatafiles:writeUpdates editable file metadata such as filename, author, tags, and categories.
delete_filefiles:writeDeletes one file-library record and its stored file object. Admin role required.

School settings and pages

ToolScopeWhat it does
get_school_configschool.settings:readReads branding, display settings, navigation visibility, homepage settings, timezone, and address.
update_school_configschool.settings:writeUpdates selected school configuration fields while leaving omitted fields unchanged.
get_onboarding_policiesschool.settings:readReads registration, onboarding, parent-child enrollment, application fee, and admissions workflow settings.
update_onboarding_policiesschool.settings:writeUpdates onboarding and registration policies. Fee amounts are provided in cents.
get_metadata_schemaschool.settings:readReads custom user metadata field definitions.
add_metadata_fieldschool.settings:writeAdds a custom user metadata field.
remove_metadata_fieldschool.settings:writeRemoves a custom user metadata field definition. Existing profile data is not automatically removed.
list_pagesschool.settings:readLists custom school pages with metadata, editor paths, and preview paths.
read_pageschool.settings:readReads a custom page with full HTML, CSS, blocks, typography, and attributes.
update_pageschool.settings:writeUpdates an existing custom page by page ID.
draft_pageschool.settings:writeCreates or replaces a custom HTML/CSS page draft for review and publishing.
get_page_manager_settingsschool.settings:readReads Page Manager state: header links, footer links, home page selection, global page theme, and published page candidates.
update_header_linksschool.settings:writeReplaces public header navigation links, including nested dropdowns.
update_footer_linksschool.settings:writeReplaces public footer links and optionally updates footer copyright text.
configure_home_pageschool.settings:writeSets the public home page to the default, programs landing page, or a published custom page.
get_global_page_themeschool.settings:readReads the global custom page CSS, uploaded global page fonts, and typography selections.
update_global_page_themeschool.settings:writeUpdates global custom page CSS and typography selections using existing uploaded font IDs.
upload_global_page_theme_fontschool.settings:writeUploads a base64-encoded WOFF2, WOFF, TTF, or OTF font into the global page theme.
delete_global_page_theme_fontschool.settings:writeDeletes an uploaded global page theme font and clears any typography selection that used it.

Products, discounts, communications, assignments, and surveys

ToolScopeWhat it does
list_productsproducts:readLists products with IDs, slugs, public URLs, type, status, prices, tuition settings, and course or program associations.
get_product_detailsproducts:readReads a complete single-product view by database ID or URL slug.
import_productsproducts:writeBulk-imports products and creates Stripe products and prices automatically. Price amounts are provided in cents.
create_productproducts:writeCreates one product with full control over product fields. Add prices separately with add_product_price.
add_product_priceproducts:writeAdds a new price to an existing product. Unit amount is provided in dollars.
update_productproducts:writeUpdates product fields such as name, description, type, tags, images, metadata, and associations.
list_product_membership_plansproducts:readLists active membership plan IDs available for members-only tuition product restrictions.
bulk_update_productsproducts:writeUpdates product-page bulk edit fields for multiple existing products.
update_product_priceproducts:writeUpdates editable price details such as nickname, billing start mode, active status, and metadata.
archive_product_priceproducts:writeArchives/deactivates an existing product price.
archive_productproducts:writeArchives/deactivates a product and its prices, with optional subscription handling.
reactivate_productproducts:writeReactivates an archived product and can optionally reactivate its prices.
list_product_donationsproducts:readLists recent donations for a donation product with pagination.
list_discountsproducts:readLists discounts with IDs, active status, application type, amount, code/rule/sibling/bundle summary, subscription duration, and usage counts.
get_discountproducts:readReads one discount’s full configuration, including rules, product/price scope, usage constraints, subscription duration, and metadata.
get_discount_rule_fieldsproducts:readLists user, identity, and derived fields available for rule-based discount conditions.
create_discountproducts:writeCreates code, rule-based, sibling, or bundle discounts with product/price scope and usage constraints.
update_discountproducts:writeUpdates an existing discount. Product and price arrays replace the existing scope when provided.
delete_discountproducts:writePermanently deletes a discount after confirmation.
validate_discount_codeproducts:readValidates a manual discount code for a user and optional product or price.
check_discount_eligibilityproducts:readChecks active rule-based discounts a user qualifies for, optionally scoped to a product or price.
check_user_discountproducts:readChecks whether a user qualifies for one specific discount and returns the reason.
calculate_discountproducts:readCalculates the discount amount and final price for a specific discount and price.
draft_emailcommunications:writeDrafts an email for admin review, including subject, HTML body, and audience selection.
list_assignmentsassignments:readLists assignments for a course with type, due date, points, and submission counts.
create_assignmentassignments:writeCreates a standard non-quiz assignment for a course and notifies enrolled students.
update_assignmentassignments:writeUpdates an existing standard assignment.
create_quiz_assignmentassignments:writeCreates and saves a quiz assignment directly, including questions, options, correct answers, quiz settings, and optional multiple submissions.
bulk_create_quiz_assignmentsassignments:writeCreates multiple quiz assignments in one tool call and can place each quiz into a curriculum unit or module.
update_quiz_assignmentassignments:writeUpdates an existing quiz assignment directly, including multiple-submission settings, and recalculates total points when questions change.
draft_quizassignments:writePrepares quiz data for the DeanDesk chat interactive editor; non-chat MCP clients should use the direct quiz tools.
get_assignment_submissionsassignments:readReads staff-facing assignment or quiz submissions with class performance, question analytics, and per-student attempt history.
list_surveysassignments:readLists course surveys with due dates, question counts, anonymous-response setting, and multiple-submission setting.
get_surveyassignments:readReads one survey and its questions; teachers and admins also receive staff-facing analytics when available.
create_surveyassignments:writeCreates a course survey with multiple choice, rating, or short-answer questions and no grades or correct answers.
update_surveyassignments:writeUpdates survey metadata, questions, Keep Responses Anonymous, due date, section, or multiple-submission settings.
get_survey_analyticsassignments:readReads survey submissions and analytics, including class aggregates, rating distributions, answer summaries, and per-user timelines.

Best practices

  • Grant the minimum scopes needed for the task.
  • Use a dedicated client name for each MCP client so you can revoke clients independently.
  • Review write actions in your institution audit history.
  • Read existing records before asking the client to update or delete them.
MCP tools that send communications or modify DeanDesk data act on your institution’s behalf. Treat client authorizations like API keys and grant write scopes only to clients you trust.