Lessonspace MCP by usefulapi
by usefulapi.io · remote · no sign-in to list tools · v1.3.3 · published by io.usefulapi
Read Lessonspace sessions, recordings, transcripts, spaces and users; launch spaces, edit sessions.
9 tools: 2 can delete or cancel things and 7 only read.
Scanned Oct 21, 2026
- Deletes or cancels2Claude Code: deny: see these tools
- Can't be undone0Claude Code: ask
- Changes things0Claude Code: ask
- Only reads7Claude Code: allow: see these tools
1 check matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http lessonspace https://lessonspace.usefulapi.io/mcpFindings
Matches of fixed checks, with the text they matched.
The description mentions "credential".
What this check looks forMatched text
description: "...for one participant. The link is a live credential for a real person: share it only with t..."
Tools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
9 tools
Deletes or cancels 2Claude Code: deny
lessonspace_launch_spaceWRITE: create a space, or reuse the one with the same `id`, and get a join link (client_url) for one participant.1 finding
Why it is in this group
- The description's first verb is "write": a word for a change.
- The server marks it destructive (destructiveHint: true).
Findings
- Info
The description mentions "credential".
What this check looks forMatched text
description: "...for one participant. The link is a live credential for a real person: share it only with t..."
Description, as the server wrote it WRITE: create a space, or reuse the one with the same `id`, and get a join link (client_url) for one participant. The link is a live credential for a real person: share it only with that person and never post it elsewhere. Calling again with the same id reuses the space but issues a new link; it is not safe to repeat blindly. Lessonspace's own `secret` is never returned. POST /spaces/launch/.
Annotations the server declares
- title: Launch space
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
- openWorldHint: true
lessonspace_update_sessionWRITE: rename a session and optionally set who may watch its recording (a list of participant, admin, teacher, student; an empty list falls back to the organisation policy).No findings
Why it is in this group
- The name "lessonspace_update_session" says "update": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it WRITE: rename a session and optionally set who may watch its recording (a list of participant, admin, teacher, student; an empty list falls back to the organisation policy). The name is always sent (Lessonspace requires it). PATCH /organisations/sessions/{session}/.
Annotations the server declares
- title: Update session
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: true
- openWorldHint: true
Only reads 7Claude Code: allow
lessonspace_get_sessionOne session by uuid, with its space, participants, guests, tags, summary and recording state.No findings
Why it is in this group
- The name "lessonspace_get_session" says "get": a word for reading.
Description, as the server wrote it One session by uuid, with its space, participants, guests, tags, summary and recording state. GET /organisations/sessions/{session}/.
Annotations the server declares
- title: Get session
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
lessonspace_get_session_recordingThe playback URL of a session's recording.No findings
Why it is in this group
- The name "lessonspace_get_session_recording" says "get": a word for reading.
Description, as the server wrote it The playback URL of a session's recording. status 'ready' = the URL works now; 'preparing' = Lessonspace is still creating it (ask again in a minute); 'no_recording' = recording was disabled, so none exists. The URL is an access link: give it only to someone entitled to watch the recording. GET /organisations/sessions/{session}/playback/.
Annotations the server declares
- title: Get session recording URL
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
lessonspace_get_session_transcriptA signed download URL for a session's transcript.No findings
Why it is in this group
- The name "lessonspace_get_session_transcript" says "get": a word for reading.
Description, as the server wrote it A signed download URL for a session's transcript. Only works if transcription was switched on for the session (launch with transcribe=true). The URL is an access link: give it only to someone entitled to read the transcript. GET /organisations/sessions/{session}/transcript/.
Annotations the server declares
- title: Get session transcript URL
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
lessonspace_list_sessionsList the organisation's sessions (a session is one meeting held in a space): name, uuid, start/end time, space, participants (name, email, role), guests, billable seconds, tags, su…No findings
Why it is in this group
- The name "lessonspace_list_sessions" says "list": a word for reading.
Description, as the server wrote it List the organisation's sessions (a session is one meeting held in a space): name, uuid, start/end time, space, participants (name, email, role), guests, billable seconds, tags, summary and recording state. Filter by time, duration, participant, space, launch id or tags. Newest first as Lessonspace orders them. Each session's playback_url is an access link to its recording, and participant emails are personal data: treat both as sensitive and share them only with someone entitled to see them. GET /organisations/sessions/.
Annotations the server declares
- title: List sessions
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
lessonspace_list_space_sessionsSessions held in one space, with the join/leave log (who joined, left or went idle, and when) and the users connected now.No findings
Why it is in this group
- The name "lessonspace_list_space_sessions" says "list": a word for reading.
Description, as the server wrote it Sessions held in one space, with the join/leave log (who joined, left or went idle, and when) and the users connected now. Same filters as lessonspace_list_sessions. GET /spaces/{space}/sessions/.
Annotations the server declares
- title: List sessions of a space
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
lessonspace_list_spacesList the organisation's spaces (persistent rooms): id, name, slug, alias, url, tags, lock state, region and recording/transcription settings.No findings
Why it is in this group
- The name "lessonspace_list_spaces" says "list": a word for reading.
Description, as the server wrote it List the organisation's spaces (persistent rooms): id, name, slug, alias, url, tags, lock state, region and recording/transcription settings. The url of a space is a way in; treat it as sensitive. GET /organisations/spaces/.
Annotations the server declares
- title: List spaces
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
lessonspace_list_usersList the organisation's users: Lessonspace user id, name, email, role (teacher, student, admin), active state and external id.No findings
Why it is in this group
- The name "lessonspace_list_users" says "list": a word for reading.
Description, as the server wrote it List the organisation's users: Lessonspace user id, name, email, role (teacher, student, admin), active state and external id. Names and emails are personal data. GET /organisations/users/.
Annotations the server declares
- title: List users
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 1.3.3. Values in angle brackets are yours to fill in.
claude mcp add --transport http lessonspace https://lessonspace.usefulapi.io/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__lessonspace__lessonspace_list_sessions",
"mcp__lessonspace__lessonspace_get_session",
"mcp__lessonspace__lessonspace_get_session_recording",
"mcp__lessonspace__lessonspace_get_session_transcript",
"mcp__lessonspace__lessonspace_list_spaces",
"mcp__lessonspace__lessonspace_list_space_sessions",
"mcp__lessonspace__lessonspace_list_users"
],
"ask": [],
"deny": [
"mcp__lessonspace__lessonspace_update_session",
"mcp__lessonspace__lessonspace_launch_space"
]
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as lessonspace. Review it before you use it.