Criterial

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 name
  • app_type (required) — quiz, form, simulation, or content
  • html_content (optional) — Direct HTML (max 1MB, auto-activated)
  • tags (optional) — Array of tags for organizing
  • config (optional) — JSON scoring configuration
  • grading_enabled (optional) — Whether to report scores to LMS
  • ttl_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:

  1. Register your client: POST /api/auth/oauth2/register
  2. Authorize: GET /api/auth/oauth2/authorize
  3. Get token: POST /api/auth/oauth2/token
  4. 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

On this page