curricula-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| CURRICULA_BASE_URL | No | Base URL for the Curricula API. Defaults to https://mycurricula.com/api/v1. Use https://dev.curricula.com/api/v1 for the development sandbox. | https://mycurricula.com/api/v1 |
| CURRICULA_ACCESS_TOKEN | Yes | The OAuth access token issued by Curricula with the required scopes. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_accountsA | List accounts available to the authenticated administrator. Calls |
| get_accountA | Get an account's details. Calls |
| delete_accountB | Permanently delete an account. Calls |
| list_account_assignmentsA | List assignments for an account. Calls |
| list_account_departmentsB | List departments in an account. Calls |
| list_account_groupsA | List learner groups in an account. Calls |
| list_account_learnersA | List learners in an account. Calls |
| list_account_phishing_campaignsA | List phishing campaigns for an account. Calls |
| list_account_phishing_scenariosA | List phishing scenarios for an account. Calls |
| list_account_admin_usersB | List account administrators. Calls |
| list_account_summary_reports_for_accountB | List summary reports for an account. Calls |
| list_account_summary_reportsC | List account summary reports. Calls |
| get_account_summary_reportA | Get an account summary report. Calls |
| list_assignmentsA | List assignments. Calls |
| get_assignmentA | Get assignment details. Calls |
| list_assignment_learnersA | List learners assigned to an assignment. Calls |
| get_assignment_learner_activityB | Get learner activity for an assignment. Calls |
| get_assignment_completion_certificateB | Get a learner's assignment completion certificate. Calls |
| list_assignment_enrollment_conditionsA | List assignment enrollment conditions. Calls |
| list_assignment_enrollment_extrasB | List assignment enrollment extras. Calls |
| list_departmentsB | List departments. Calls |
| get_departmentA | Get department details. Calls |
| list_episodesA | List training episodes. Calls |
| get_episodeA | Get training episode details. Calls |
| list_groupsC | List learner groups. Calls |
| get_groupC | Get learner group details. Calls |
| list_learnersB | List learners. Calls |
| get_learnerA | Get learner details. Calls |
| list_phishing_campaignsC | List phishing campaigns. Calls |
| get_phishing_campaignA | Get phishing campaign details. Calls |
| list_phishing_campaign_attemptsA | List phishing attempts for a campaign. Calls |
| list_phishing_campaign_scenariosA | List scenarios attached to a phishing campaign. Calls |
| get_phishing_campaign_scenarioB | Get a campaign-scenario's details. Calls |
| list_phishing_campaign_scenario_attemptsB | List attempts for a campaign-scenario. Calls |
| get_phishing_campaign_scenario_campaignA | Get the campaign related to a campaign-scenario. Calls |
| get_phishing_campaign_scenario_scenarioB | Get the phishing scenario related to a campaign-scenario. Calls |
| report_phishing_attemptA | Mark a phishing attempt reported using a code or message ID. Calls |
| list_phishing_scenariosB | List phishing scenarios. Calls |
| get_phishing_scenarioB | Get phishing scenario details. Calls |
| list_admin_usersC | List administrator users. Calls |
| create_admin_userA | Create an administrator user. Calls |
| get_admin_userB | Get administrator user details. Calls |
| update_admin_userA | Update an administrator user. Calls |
| delete_admin_userA | Permanently delete an administrator user. Calls |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 44 tools
Most tools have clear resource-and-scope distinctions, such as list_account_learners vs list_learners. However, list_account_summary_reports_for_account and list_account_summary_reports are nearly identical, and list_account_admin_users vs list_admin_users could easily be confused.
Tool names overwhelmingly follow a consistent verb_noun snake_case pattern with list/get/create/update/delete prefixes. The main deviations are report_phishing_attempt, which uses an action verb rather than a CRUD prefix, and the awkward list_account_summary_reports_for_account name.
44 tools is well above the well-scoped range, and many are thin GET wrappers around nested REST endpoints. The surface area could be meaningfully reduced by consolidating account-scoped list variants or using parameters.
The tool surface is heavily read-only: only admin users have full create/update/delete coverage, plus one report action. There are no mutation tools for accounts, assignments, departments, groups, learners, phishing campaigns, phishing scenarios, or episodes, so management workflows cannot complete.