MCP Connection
Criterial exposes an MCP (Model Context Protocol) server that allows any AI agent to create and manage LTI applications.
Connect an agent
claude mcp add criterial-lti --transport http https://lti.criterial.cc/mcp
The agent will automatically discover 6 available tools.
Available Tools
create_lti_app
Creates a new LTI application. Returns an upload_url (presigned URL) where you must PUT your HTML.
Parameters:
name(required) — Application nameapp_type(required) —quiz,form,simulation, orcontenthtml_content(optional) — Direct HTML (max 1MB, auto-activated)tags(optional) — Array of tags for organizingconfig(optional) — JSON scoring configurationgrading_enabled(optional) — Whether to report scores to LMSttl_days(optional) — Days active (default: 7)
confirm_lti_app
Confirms HTML was uploaded and activates the application.
update_lti_app
Publishes a new version of an existing app.
list_lti_apps
Lists all active applications with submission counts.
get_submissions
Retrieves student submissions with payload, score, and telemetry.
get_lti_design_guidelines
Returns design rules, API contract, and security constraints. Call this BEFORE generating HTML.
Authentication
In production, MCP requires an OAuth 2.0 Bearer token. The flow:
- Register your client:
POST /api/auth/oauth2/register - Authorize:
GET /api/auth/oauth2/authorize - Get token:
POST /api/auth/oauth2/token - Use in MCP:
Authorization: Bearer <token>
In development (NODE_ENV !== 'production'), MCP does not require authentication.
Typical Flow
1. Agent calls get_lti_design_guidelines → understands constraints
2. Agent generates HTML following the rules
3. Agent calls create_lti_app → receives upload_url
4. Agent uploads HTML via PUT to upload_url
5. Agent calls confirm_lti_app → app activated
6. Teacher receives launch_url → adds it to LMS
7. Students interact → telemetry + grades automatic