Skip to content
Studeia Docs
AI-assisted translation β€” last updated 2026-09-20. For original (pt-BR or en-US), use the language switcher.

Claude Code + LMS: manage courses, lessons, and classes from the terminal with claude mcp add

Tutorial for Claude Code users: register Studeia's MCP server with claude mcp add --transport http, authorize via OAuth, and operate courses, grades, and reports with your account permissions.

By Studeia Team 2026-09-20 8 min
Resposta curta

Run claude mcp add --transport http studeia https://<slug>.studeia.com/api/mcp, open /mcp in the session, and choose Authenticate: the browser shows the Studeia login and consent screen (with a notice that the callback goes to localhost). From there, Claude Code uses up to 130 connector tools β€” listing and editing courses, lessons, classes, grades, and reports β€” requesting permission per tool and always using your account's actual role. No API key needed: the connection is OAuth 2.1 with you.

If you already use Claude Code in the terminal, the shortest path to operating an LMS is the same as for any remote MCP server: claude mcp add, authenticate, ask. This tutorial shows the connection with Studeia β€” with OAuth on your account, real permissions, and auditing β€” and some flows that make sense in the terminal: generating teacher guides in bulk, reviewing a course, exporting IMS CC cartridges, posting grades from a CSV.

The screenshots show the terminal and Claude Code in English and the Studeia interface in Portuguese.

Quick answer

claude mcp add --transport http studeia https://<slug>.studeia.com/api/mcp
  1. /mcp β†’ studeia β†’ Authenticate β†’ login + consent in the browser
  2. The callback arrives at http://localhost:<port>/callback; the server appears as connected
  3. Ask in natural language; Claude Code requests permission per tool
  4. 1-hour token refreshed automatically; connection lasts up to 30 days; revoke from your profile whenever you want

Who this is for

  • Technical coordinators and developers who prefer the terminal over a dashboard.
  • Content teams that need bulk operations (dozens of lessons, guides, quizzes).
  • Anyone with an existing content repository (markdown, CSV, spreadsheets) who wants to push it to the LMS without copy-pasting.

If you don't use the terminal, the Claude.ai and ChatGPT tutorials cover the same connection through the interface.

Prerequisites

WhatDetail
Claude Code installed and logged inVersion with support for HTTP MCP servers (claude mcp add --transport http)
Role in StudeiaInstitutional administrator, coordinator, pedagogue, or teacher (if the institution allows it)
Connector enabledAn administrator enables it under Settings β†’ AI Connectors
Browser on the same machineThe OAuth consent callback goes to localhost β€” it must be your computer

Step 1 β€” Enable the connector in Studeia (admin)

Under Settings β†’ AI Connectors (ChatGPT / Claude), turn on Allow MCP connections and copy the MCP server URL (https://<slug>.studeia.com/api/mcp or your custom domain).

Studeia AI Connectors section with the toggles enabled and MCP server URLs shown
Settings β†’ AI Connectors: enable and copy the server URL

Step 2 β€” Register the server

# scope of the current project (default)
claude mcp add --transport http studeia https://<slug>.studeia.com/api/mcp

# or for all projects on your machine
claude mcp add -s user --transport http studeia https://<slug>.studeia.com/api/mcp

Claude Code confirms the registration. Nothing is sent to Studeia yet β€” only on authentication.

Terminal with the claude mcp add command and confirmation that the studeia server was added
claude mcp add --transport http: server registered

Step 3 β€” Authenticate

Open a session (claude) and type /mcp. The studeia server appears as needs authentication. Select it and choose Authenticate.

The /mcp panel is a simple list, inside the session itself, with one server per line and its status next to the name (connected, needs authentication, or failed). Use the arrow keys to select studeia and press Enter to open the server actions β€” the first one, when there is no token yet, is Authenticate.

The browser opens Studeia. Log in and review the consent screen. Notice the yellow warning: "the callback will go to a local address (localhost:…)" β€” this is expected for Claude Code. Only proceed if you initiated this connection on this computer.

Studeia consent screen with a warning that the callback goes to a local address
Consent initiated by Claude Code: localhost callback warning

Click Authorize. The browser redirects to http://localhost:<port>/callback, Claude Code exchanges the code for the token, and the server becomes connected, showing the count of tools available for your role.

Back in the terminal, the server line changes to connected and the panel shows the list of loaded tools (the number depends on your role: up to 130 for administrators, 67 for teachers) and the studeia:// resources. If you prefer to check outside the session, claude mcp list shows the same status, and claude mcp get studeia shows the details (scope, URL, status).

Step 4 β€” Use

Ask in natural language. On the first call of each tool, Claude Code requests permission β€” approve read ones without hesitation; for write ones, read the arguments before accepting.

> List the institution's courses with the number of lessons and publication status.

What you see in the session: Claude Code announces the call with the tool's full name (in the format studeia - list_courses), shows the arguments it will send, and waits for your decision β€” Yes (just this once), Yes, and don't ask again for this tool (for the rest of the session), or No. After the server response, it summarizes the result as text or a table. For a write tool like create_lesson, the permission request includes the full JSON of the content (title, type, lesson blocks): read it before accepting β€” it is exactly what will be saved in the LMS. Denying doesn't end anything; Claude Code simply continues without executing that action.

MCP resources worth reading first

The server exposes three resources that Claude Code can read before acting:

ResourcePurpose
studeia://docs/lesson-content-schemasSchema for all lesson types (slides, quiz, interactive…) β€” create_lesson and update_lesson_content validate against it
studeia://docs/api-endpointsInstitutional API endpoints reachable via call_institution_api
studeia://tenant/summaryWho you are in the connection: institution, role, scopes

Useful terminal workflows

Teacher guides in bulk

> For each lesson in the course "Digital Skills 3rd Grade" without a teacher guide,
  generate a guide with a summary, objectives, a 45-min script, and assessment criteria.
  Show me the first one before saving the rest.

Course review with real data

> Run the AI review on the "Fractions" course and list the 5 most urgent suggestions
  with the most frequent student misconceptions.

Export an IMS Common Cartridge

> Export the "Fractions" course as IMS CC and save it to ./exports/fractions.imscc

Grades from a CSV

> Read ./grades-exam1.csv (columns: email, grade) and post the grades to the
  "Exam 1" item in the gradebook for class 6A. Confirm the list with me before saving.

What doesn't exist as a dedicated tool

> List the rubrics API endpoints and create a 3-criteria rubric
  for the "Essay 2" assignment.

Claude Code calls list_api_endpoints and then call_institution_api β€” with the same permissions you would have on the web.

Security

  • Token stored locally, hash on the server: Claude Code stores the token on your machine; Studeia stores only the hash and connection metadata.
  • Scopes: read, write, offline_access. The write scope unlocks 68 tools; without it, the server only lists read tools.
  • Role re-read on every call: if your role changes or you leave the institution, the connection is revoked automatically.
  • Bound to the address: a token issued for school.studeia.com is not valid at studeia.com β€” if the URL changes, register and authenticate again.
  • Auditing: each call generates a mcp.tool_call entry in the institution's logs (tool, IDs, success, duration β€” never the content).
Institution log page filtered by mcp actions showing consent, token, and tool call entries
Institution logs: filter by mcp. to see each call

Common issues

SymptomWhat to do
Browser doesn't return to Claude CodeComplete the consent on the same machine; if the local port is blocked by a firewall, allow localhost
invalid_redirect_uri errorOnly http://localhost:<port>/callback and http://127.0.0.1:<port>/callback are accepted as local callbacks
401 resource_mismatchYou registered one URL and authenticated with another (subdomain vs. main address) β€” use the same URL in both steps
"The institution has not yet enabled AI connectors"Ask the administrator to enable the connector
Tool responds with forbiddenCourse is outside your classes or the action is administrator-only
needs authentication after weeksThe connection reached 30 days β€” /mcp β†’ Authenticate

Revoke

  • You: Profile β†’ AI Connections (ChatGPT / Claude) β†’ Revoke. The next Claude Code call fails within 60 seconds.
  • Administrator: Settings β†’ AI Connectors β†’ Active connections β†’ Revoke.
  • To remove the server from your machine: claude mcp remove studeia.

Frequently asked questions

Do I need an API key? No β€” OAuth 2.1 with your account.

Does it run in CI? No; consent is interactive. Use the public API with an mia_ key.

Other MCP clients? Only Claude Code, Claude.ai/Desktop/mobile, and ChatGPT have been validated.

Where is the token stored? On your machine; Studeia stores only the hash.


Full connector guide (permissions by role, catalog of 130 tools, security): Connect ChatGPT, Claude, or Claude Code to Studeia. For integrations without a human user, see the public API.

FAQ

Do I need an API key to use Claude Code with Studeia?

No. The connection uses OAuth 2.1 with your user account: Claude Code opens the browser for login and consent and stores a token that represents you, with your role and institution. API keys (mia_) still exist for integrations without a human user.

Does it work with other MCP clients and IDEs?

Studeia accepts callbacks from Claude, ChatGPT, and local addresses (http://localhost:<port>/callback). Any MCP client with OAuth and a local callback can technically work, but only Claude Code, Claude.ai/Desktop/mobile, and ChatGPT have been validated β€” treat other clients as unsupported.

Can I run the connector in CI or an automated script?

No. MCP consent is always interactive (human login + authorization screen) and the connection expires in 30 days. For unattended automation, use the institutional public API with an mia_ key and granular scopes.

Where is the Claude Code token stored?

In Claude Code's credential storage on your machine. Studeia stores only the token hash and connection metadata (client, scopes, dates). The access token lasts 1 hour and is refreshed automatically; the connection expires in 30 days.

How do I reconnect after the connection expires?

Type /mcp in the session, select studeia, and choose Authenticate again β€” the browser opens the consent screen and the connection is renewed for another 30 days. If you revoked it in your Studeia profile, the process is the same.

What can Claude Code do in the LMS?

Everything your account can do on the web, via MCP tools: list and edit courses, modules, and lessons (with content validation by type), teacher guides, classes, enrollments, grades, question banks, reports, export courses in IMS Common Cartridge, AI course review, and, for administrators, automations and AI configuration. Up to 130 tools, depending on your role.

Veja tambem

Claude Code + LMS: manage courses, lessons, and classes from the terminal with claude mcp add