---
title: "StudioMeyer Academy Connect with MCP"
description: "A public entry for reading and a protected entry for personal features."
canonical: "https://studiomeyer.academy/en/developers/mcp"
language: en
markdown_versions: ["https://studiomeyer.academy/entwickler/mcp.md", "https://studiomeyer.academy/en/developers/mcp.md", "https://studiomeyer.academy/es/entwickler/mcp.md"]
publisher: "StudioMeyer Academy, https://studiomeyer.academy (llms.txt: https://studiomeyer.academy/llms.txt)"
---

## Choose an entry

Without an account: https://mcp.studiomeyer.academy/mcp?access=free. This entry exposes only public operations. Personal access: https://mcp.studiomeyer.academy/mcp with OAuth. Transport is Streamable HTTP; server version 0.6.0, protocol version 2025-11-25. An MCP client normally handles sign-in and initialization.

- [Your first request](https://studiomeyer.academy/en/developers/schnellstart)
- [Access and permissions](https://studiomeyer.academy/en/developers/anmeldung)

## Tools and schemas

tools/list exposes permitted tools with inputSchema, outputSchema and annotations. readOnlyHint, destructiveHint, idempotentHint and openWorldHint describe behavior; they do not grant human consent. The reference below maps tools to REST using the same registry. MCP results carry the same envelope in structuredContent.

## Read docs in the client

MCP resources: academy://docs/quickstart, academy://docs/errors and academy://docs/package-format. You can also read the linked HTTP documents. /v1/skill.md contains the complete workflow, including approvals and package boundaries.

- [quickstart.md](https://studiomeyer.academy/quickstart.md)
- [skill.md](https://studiomeyer.academy/v1/skill.md)
- [Use packages safely](https://studiomeyer.academy/en/developers/paketformat)
- [Understand errors](https://studiomeyer.academy/en/developers/fehler)

## Older tool names

Names marked as aliases below are explicitly registered. Use current tool names for new integrations. A retirement date has not been set. Dormant features such as arena and certificates are outside the current learning workflow.

- [Interface changes](https://studiomeyer.academy/en/changelog)

## Public source

The public MCP repository contains AGENTS.md, the Agent Plugin contract and current contribution rules. No private repository access is required.

- [MCP / GitHub](https://github.com/studiomeyer-io/mcp-academy)
- [AGENTS.md](https://github.com/studiomeyer-io/mcp-academy/blob/master/AGENTS.md)
- [plugin.json](https://github.com/studiomeyer-io/mcp-academy/blob/master/plugin.json)

## Operations

Start`academy_start`

Permissions

Public

Credit effect

None

- `GET /v1/start`

**MCP tools:** `academy_start`

**Older names:** `academy_welcome`

### Tool annotations

```
{
  "readOnlyHint": true,
  "destructiveHint": false,
  "idempotentHint": true,
  "openWorldHint": false
}
```

### Input schema

`No named fields`

### Output schema

`paths: array<object> (Required); links: array<object> (Required)`

[Complete schema in OpenAPI](https://studiomeyer.academy/v1/openapi.json#/paths/~1v1~1start/get)

The field overview lists names, types and requirement status. Nested structures, variants and validation rules are fully available in the linked OpenAPI contract.

List learning paths`academy_paths`

Permissions

Public

Credit effect

None

- `GET /v1/paths`

**MCP tools:** `academy_paths`

### Tool annotations

```
{
  "readOnlyHint": true,
  "destructiveHint": false,
  "idempotentHint": true,
  "openWorldHint": false
}
```

### Input schema

`No named fields`

### Output schema

`paths: array<object> (Required)`

[Complete schema in OpenAPI](https://studiomeyer.academy/v1/openapi.json#/paths/~1v1~1paths/get)

The field overview lists names, types and requirement status. Nested structures, variants and validation rules are fully available in the linked OpenAPI contract.

Read a path`academy_path`

Permissions

Public

Credit effect

None

- `GET /v1/paths/{pathSlug}`

**MCP tools:** `academy_path`

### Tool annotations

```
{
  "readOnlyHint": true,
  "destructiveHint": false,
  "idempotentHint": true,
  "openWorldHint": false
}
```

### Input schema

`pathId: string (Required)`

### Output schema

`path: object (Required); confirmedLessons: array<object> (Required); moduleMapping: string (Required)`

[Complete schema in OpenAPI](https://studiomeyer.academy/v1/openapi.json#/paths/~1v1~1paths~1{pathSlug}/get)

The field overview lists names, types and requirement status. Nested structures, variants and validation rules are fully available in the linked OpenAPI contract.

Read a module`academy_module`

Permissions

Public

Credit effect

None

- `GET /v1/paths/{pathSlug}/modules/{moduleSlug}`

**MCP tools:** `academy_module`

### Tool annotations

```
{
  "readOnlyHint": true,
  "destructiveHint": false,
  "idempotentHint": true,
  "openWorldHint": false
}
```

### Input schema

`pathId: string (Required); moduleId: string (Required)`

### Output schema

`pathId: string (Required); moduleId: string (Required); title: string (Required); lessons: array<object> (Required); steps: array<object> (Required); isContentContainer: boolean (Required)`

[Complete schema in OpenAPI](https://studiomeyer.academy/v1/openapi.json#/paths/~1v1~1paths~1{pathSlug}~1modules~1{moduleSlug}/get)

The field overview lists names, types and requirement status. Nested structures, variants and validation rules are fully available in the linked OpenAPI contract.

Read a lesson`academy_lesson`

Permissions

Public

Credit effect

None

- `GET /v1/lessons/{lessonSlug}`

**MCP tools:** `academy_lesson`

### Tool annotations

```
{
  "readOnlyHint": true,
  "destructiveHint": false,
  "idempotentHint": true,
  "openWorldHint": false
}
```

### Input schema

`level: integer (Required); slug: string (Required)`

### Output schema

`id: string (Required); requestedLocale: string (Required); content_locale: string (Required); fallback: boolean (Required); version: string | null (Required); status: string | null (Required); updated: string | null (Required); content: object (Required)`

[Complete schema in OpenAPI](https://studiomeyer.academy/v1/openapi.json#/paths/~1v1~1lessons~1{lessonSlug}/get)

The field overview lists names, types and requirement status. Nested structures, variants and validation rules are fully available in the linked OpenAPI contract.

Teaching plan for AI`academy_teach`

Permissions

Public

Credit effect

None

- `GET /v1/lessons/{lessonSlug}/teach`

**MCP tools:** `academy_teach`

**Older names:** `academy_tutor_context`

### Tool annotations

```
{
  "readOnlyHint": true,
  "destructiveHint": false,
  "idempotentHint": true,
  "openWorldHint": false
}
```

### Input schema

`level: integer (Required); slug: string (Required)`

### Output schema

`id: string (Required); requestedLocale: string (Required); content_locale: string (Required); fallback: boolean (Required); version: string | null (Required); status: string | null (Required); updated: string | null (Required); content: object (Required)`

[Complete schema in OpenAPI](https://studiomeyer.academy/v1/openapi.json#/paths/~1v1~1lessons~1{lessonSlug}~1teach/get)

The field overview lists names, types and requirement status. Nested structures, variants and validation rules are fully available in the linked OpenAPI contract.

Browse the library`academy_library`

Permissions

Public

Credit effect

None

- `GET /v1/library`

**MCP tools:** `academy_library`

### Tool annotations

```
{
  "readOnlyHint": true,
  "destructiveHint": false,
  "idempotentHint": true,
  "openWorldHint": false
}
```

### Input schema

`cursor: string (Optional); limit: integer (Optional); type: string (Optional); pathId: string (Optional); access: string (Optional)`

### Output schema

`items: array<object> (Required); nextCursor: string | null (Required)`

[Complete schema in OpenAPI](https://studiomeyer.academy/v1/openapi.json#/paths/~1v1~1library/get)

The field overview lists names, types and requirement status. Nested structures, variants and validation rules are fully available in the linked OpenAPI contract.

List prompts`academy_prompts`

Permissions

Public

Credit effect

None

- `GET /v1/prompts`
- `GET /v1/library/prompts`

**MCP tools:** `academy_prompts`

### Tool annotations

```
{
  "readOnlyHint": true,
  "destructiveHint": false,
  "idempotentHint": true,
  "openWorldHint": false
}
```

### Input schema

`cursor: string (Optional); limit: integer (Optional)`

### Output schema

`items: array<object> (Required); nextCursor: string | null (Required)`

[Complete schema in OpenAPI](https://studiomeyer.academy/v1/openapi.json#/paths/~1v1~1prompts/get)

The field overview lists names, types and requirement status. Nested structures, variants and validation rules are fully available in the linked OpenAPI contract.

Read a prompt`academy_prompt`

Permissions

Public

Credit effect

None

- `GET /v1/prompts/{id}`
- `GET /v1/library/prompts/{id}`

**MCP tools:** `academy_prompt`

### Tool annotations

```
{
  "readOnlyHint": true,
  "destructiveHint": false,
  "idempotentHint": true,
  "openWorldHint": false
}
```

### Input schema

`id: string (Required)`

### Output schema

`id: string (Required); requestedLocale: string (Required); content_locale: string (Required); fallback: boolean (Required); version: string | null (Required); status: string | null (Required); updated: string | null (Required); content: object (Required)`

[Complete schema in OpenAPI](https://studiomeyer.academy/v1/openapi.json#/paths/~1v1~1prompts~1{id}/get)

The field overview lists names, types and requirement status. Nested structures, variants and validation rules are fully available in the linked OpenAPI contract.

List playbooks`academy_playbooks`

Permissions

Public

Credit effect

None

- `GET /v1/playbooks`
- `GET /v1/library/playbooks`

**MCP tools:** `academy_playbooks`

### Tool annotations

```
{
  "readOnlyHint": true,
  "destructiveHint": false,
  "idempotentHint": true,
  "openWorldHint": false
}
```

### Input schema

`cursor: string (Optional); limit: integer (Optional); category: string (Optional)`

### Output schema

`items: array<object> (Required); nextCursor: string | null (Required)`

[Complete schema in OpenAPI](https://studiomeyer.academy/v1/openapi.json#/paths/~1v1~1playbooks/get)

The field overview lists names, types and requirement status. Nested structures, variants and validation rules are fully available in the linked OpenAPI contract.

List glossary`academy_glossary`

Permissions

Public

Credit effect

None

- `GET /v1/glossary`
- `GET /v1/library/glossary`

**MCP tools:** `academy_glossary`

### Tool annotations

```
{
  "readOnlyHint": true,
  "destructiveHint": false,
  "idempotentHint": true,
  "openWorldHint": false
}
```

### Input schema

`cursor: string (Optional); limit: integer (Optional)`

### Output schema

`items: array<object> (Required); nextCursor: string | null (Required)`

[Complete schema in OpenAPI](https://studiomeyer.academy/v1/openapi.json#/paths/~1v1~1glossary/get)

The field overview lists names, types and requirement status. Nested structures, variants and validation rules are fully available in the linked OpenAPI contract.

Read a term`academy_glossary_term`

Permissions

Public

Credit effect

None

- `GET /v1/glossary/{term}`
- `GET /v1/library/glossary/{term}`

**MCP tools:** `academy_glossary_term`

### Tool annotations

```
{
  "readOnlyHint": true,
  "destructiveHint": false,
  "idempotentHint": true,
  "openWorldHint": false
}
```

### Input schema

`term: string (Required)`

### Output schema

`id: string (Required); requestedLocale: string (Required); content_locale: string (Required); fallback: boolean (Required); version: string | null (Required); status: string | null (Required); updated: string | null (Required); content: object (Required)`

[Complete schema in OpenAPI](https://studiomeyer.academy/v1/openapi.json#/paths/~1v1~1glossary~1{term}/get)

The field overview lists names, types and requirement status. Nested structures, variants and validation rules are fully available in the linked OpenAPI contract.

List recipes`academy_recipes`

Permissions

Public

Credit effect

None

- `GET /v1/recipes`

**MCP tools:** `academy_recipes`

### Tool annotations

```
{
  "readOnlyHint": true,
  "destructiveHint": false,
  "idempotentHint": true,
  "openWorldHint": false
}
```

### Input schema

`cursor: string (Optional); limit: integer (Optional); phase: integer (Optional)`

### Output schema

`items: array<object> (Required); nextCursor: string | null (Required)`

[Complete schema in OpenAPI](https://studiomeyer.academy/v1/openapi.json#/paths/~1v1~1recipes/get)

The field overview lists names, types and requirement status. Nested structures, variants and validation rules are fully available in the linked OpenAPI contract.

Read a recipe`academy_recipe`

Permissions

Public

Credit effect

None

- `GET /v1/recipes/{id}`

**MCP tools:** `academy_recipe`

### Tool annotations

```
{
  "readOnlyHint": true,
  "destructiveHint": false,
  "idempotentHint": true,
  "openWorldHint": false
}
```

### Input schema

`id: string (Required)`

### Output schema

`id: string (Required); requestedLocale: string (Required); content_locale: string (Required); fallback: boolean (Required); version: string | null (Required); status: string | null (Required); updated: string | null (Required); content: object (Required)`

[Complete schema in OpenAPI](https://studiomeyer.academy/v1/openapi.json#/paths/~1v1~1recipes~1{id}/get)

The field overview lists names, types and requirement status. Nested structures, variants and validation rules are fully available in the linked OpenAPI contract.

Browse concepts`academy_concepts`

Permissions

Public

Credit effect

None

- `GET /v1/concepts`

**MCP tools:** `academy_concepts`

### Tool annotations

```
{
  "readOnlyHint": true,
  "destructiveHint": false,
  "idempotentHint": true,
  "openWorldHint": false
}
```

### Input schema

`cursor: string (Optional); limit: integer (Optional); query: string (Optional)`

### Output schema

`items: array<object> (Required); nextCursor: string | null (Required)`

[Complete schema in OpenAPI](https://studiomeyer.academy/v1/openapi.json#/paths/~1v1~1concepts/get)

The field overview lists names, types and requirement status. Nested structures, variants and validation rules are fully available in the linked OpenAPI contract.

Read about coaching`academy_coaching`

Permissions

Public

Credit effect

None

- `GET /v1/coaching`

**MCP tools:** `academy_coaching`

### Tool annotations

```
{
  "readOnlyHint": true,
  "destructiveHint": false,
  "idempotentHint": true,
  "openWorldHint": false
}
```

### Input schema

`No named fields`

### Output schema

`title: string (Required); description: string (Required); steps: array<string> (Required); accountHref: string (Required)`

[Complete schema in OpenAPI](https://studiomeyer.academy/v1/openapi.json#/paths/~1v1~1coaching/get)

The field overview lists names, types and requirement status. Nested structures, variants and validation rules are fully available in the linked OpenAPI contract.

Create an invitation`academy_invite`

Permissions

learn:write

Credit effect

None

- `POST /v1/me/invites`

**MCP tools:** `academy_invite`

### Tool annotations

```
{
  "readOnlyHint": false,
  "destructiveHint": false,
  "idempotentHint": false,
  "openWorldHint": false
}
```

### Input schema

`No named fields`

### Output schema

`id: string (Required); url: string (Required)`

[Complete schema in OpenAPI](https://studiomeyer.academy/v1/openapi.json#/paths/~1v1~1me~1invites/post)

The field overview lists names, types and requirement status. Nested structures, variants and validation rules are fully available in the linked OpenAPI contract.

Read a playbook`academy_playbook`

Permissions

Public

Credit effect

None

- `GET /v1/playbooks/{id}`
- `GET /v1/library/playbooks/{id}`

**MCP tools:** `academy_playbook`

### Tool annotations

```
{
  "readOnlyHint": true,
  "destructiveHint": false,
  "idempotentHint": true,
  "openWorldHint": false
}
```

### Input schema

`id: string (Required)`

### Output schema

`id: string (Required); requestedLocale: string (Required); content_locale: string (Required); fallback: boolean (Required); version: string | null (Required); status: string | null (Required); updated: string | null (Required); content: object (Required)`

[Complete schema in OpenAPI](https://studiomeyer.academy/v1/openapi.json#/paths/~1v1~1playbooks~1{id}/get)

The field overview lists names, types and requirement status. Nested structures, variants and validation rules are fully available in the linked OpenAPI contract.

Search content`academy_search, search`

Permissions

Public

Credit effect

None

- `GET /v1/search`

**MCP tools:** `academy_search, search`

### Tool annotations

```
{
  "readOnlyHint": true,
  "destructiveHint": false,
  "idempotentHint": true,
  "openWorldHint": false
}
```

### Input schema

`cursor: string (Optional); limit: integer (Optional); query: string (Required); type: string (Optional); pathId: string (Optional)`

### Output schema

`items: array<object> (Required); nextCursor: string | null (Required)`

[Complete schema in OpenAPI](https://studiomeyer.academy/v1/openapi.json#/paths/~1v1~1search/get)

The field overview lists names, types and requirement status. Nested structures, variants and validation rules are fully available in the linked OpenAPI contract.

Read content by ID`fetch`

Permissions

Public

Credit effect

None

- `GET /v1/items/{id}`

**MCP tools:** `fetch`

### Tool annotations

```
{
  "readOnlyHint": true,
  "destructiveHint": false,
  "idempotentHint": true,
  "openWorldHint": false
}
```

### Input schema

`id: string (Required)`

### Output schema

`id: string (Required); requestedLocale: string (Required); content_locale: string (Required); fallback: boolean (Required); version: string | null (Required); status: string | null (Required); updated: string | null (Required); content: object (Required)`

[Complete schema in OpenAPI](https://studiomeyer.academy/v1/openapi.json#/paths/~1v1~1items~1{id}/get)

The field overview lists names, types and requirement status. Nested structures, variants and validation rules are fully available in the linked OpenAPI contract.

Suggest suitable content`academy_suggest`

Permissions

Public

Credit effect

None

- `POST /v1/suggestions`

**MCP tools:** `academy_suggest`

### Tool annotations

```
{
  "readOnlyHint": true,
  "destructiveHint": false,
  "idempotentHint": false,
  "openWorldHint": false
}
```

### Input schema

`profile: object (Required)`

### Output schema

`suggestions: array<object> (Required)`

[Complete schema in OpenAPI](https://studiomeyer.academy/v1/openapi.json#/paths/~1v1~1suggestions/post)

The field overview lists names, types and requirement status. Nested structures, variants and validation rules are fully available in the linked OpenAPI contract.

Read your permissions`academy_my_access`

Permissions

Personal access

Credit effect

None

- `GET /v1/me/access`

**MCP tools:** `academy_my_access`

### Tool annotations

```
{
  "readOnlyHint": true,
  "destructiveHint": false,
  "idempotentHint": true,
  "openWorldHint": false
}
```

### Input schema

`No named fields`

### Output schema

`scopes: array<string> (Required); resource: string (Required); tools: array<string> (Required); hint: string (Required)`

[Complete schema in OpenAPI](https://studiomeyer.academy/v1/openapi.json#/paths/~1v1~1me~1access/get)

The field overview lists names, types and requirement status. Nested structures, variants and validation rules are fully available in the linked OpenAPI contract.

Read learning progress`academy_my_learning`

Permissions

learn:read

Credit effect

None

- `GET /v1/me/learning`

**MCP tools:** `academy_my_learning`

**Older names:** `academy_stats`

### Tool annotations

```
{
  "readOnlyHint": true,
  "destructiveHint": false,
  "idempotentHint": true,
  "openWorldHint": false
}
```

### Input schema

`No named fields`

### Output schema

`completedLessons: number (Required); recentCompletions: array<object> (Required); currentStreak: number (Required); longestStreak: number (Required); streakTimeZone: string (Required); quizCount: number (Required); notesCount: number (Required); learningPoints: object (Required); credits: object (Required)`

[Complete schema in OpenAPI](https://studiomeyer.academy/v1/openapi.json#/paths/~1v1~1me~1learning/get)

The field overview lists names, types and requirement status. Nested structures, variants and validation rules are fully available in the linked OpenAPI contract.

Continue learning`academy_continue`

Permissions

learn:read

Credit effect

None

- `GET /v1/me/continue`

**MCP tools:** `academy_continue`

**Older names:** `academy_next_lesson`

### Tool annotations

```
{
  "readOnlyHint": true,
  "destructiveHint": false,
  "idempotentHint": true,
  "openWorldHint": false
}
```

### Input schema

`No named fields`

### Output schema

`lesson: object | null (Required); href: string | null (Required); step: object | null (Required)`

[Complete schema in OpenAPI](https://studiomeyer.academy/v1/openapi.json#/paths/~1v1~1me~1continue/get)

The field overview lists names, types and requirement status. Nested structures, variants and validation rules are fully available in the linked OpenAPI contract.

Complete a lesson`academy_lesson_done`

Permissions

learn:write

Credit effect

None

- `POST /v1/me/progress/lessons/{lessonSlug}/complete`

**MCP tools:** `academy_lesson_done`

**Older names:** `academy_progress_complete`

### Tool annotations

```
{
  "readOnlyHint": false,
  "destructiveHint": false,
  "idempotentHint": true,
  "openWorldHint": false
}
```

### Input schema

`level: integer (Required); slug: string (Required)`

### Output schema

`lessonId: string (Required); completedAt: string (Required); firstCompletion: boolean (Required)`

[Complete schema in OpenAPI](https://studiomeyer.academy/v1/openapi.json#/paths/~1v1~1me~1progress~1lessons~1{lessonSlug}~1complete/post)

The field overview lists names, types and requirement status. Nested structures, variants and validation rules are fully available in the linked OpenAPI contract.

Complete a learning step`academy_step_done`

Permissions

learn:write

Credit effect

None

- `POST /v1/me/progress/steps/{stepId}/complete`

**MCP tools:** `academy_step_done`

### Tool annotations

```
{
  "readOnlyHint": false,
  "destructiveHint": false,
  "idempotentHint": true,
  "openWorldHint": false
}
```

### Input schema

`stepId: string (Required)`

### Output schema

`stepId: string (Required); completedAt: string (Required); firstCompletion: boolean (Required)`

[Complete schema in OpenAPI](https://studiomeyer.academy/v1/openapi.json#/paths/~1v1~1me~1progress~1steps~1{stepId}~1complete/post)

The field overview lists names, types and requirement status. Nested structures, variants and validation rules are fully available in the linked OpenAPI contract.

Read notes`academy_notes`

Permissions

learn:read

Credit effect

None

- `GET /v1/me/notes`

**MCP tools:** `academy_notes`

### Tool annotations

```
{
  "readOnlyHint": true,
  "destructiveHint": false,
  "idempotentHint": true,
  "openWorldHint": false
}
```

### Input schema

`cursor: string (Optional); limit: integer (Optional)`

### Output schema

`items: array<object> (Required); nextCursor: string | null (Required)`

[Complete schema in OpenAPI](https://studiomeyer.academy/v1/openapi.json#/paths/~1v1~1me~1notes/get)

The field overview lists names, types and requirement status. Nested structures, variants and validation rules are fully available in the linked OpenAPI contract.

Save a note`academy_note_save`

Permissions

learn:write

Credit effect

None

- `POST /v1/me/notes`

**MCP tools:** `academy_note_save`

### Tool annotations

```
{
  "readOnlyHint": false,
  "destructiveHint": false,
  "idempotentHint": true,
  "openWorldHint": false
}
```

### Input schema

`level: integer (Required); slug: string (Required); body: string (Required)`

### Output schema

`id: string (Required); lesson: object (Required); locale: string (Required); body: string (Required); createdAt: string (Required); updatedAt: string (Required)`

[Complete schema in OpenAPI](https://studiomeyer.academy/v1/openapi.json#/paths/~1v1~1me~1notes/post)

The field overview lists names, types and requirement status. Nested structures, variants and validation rules are fully available in the linked OpenAPI contract.

Delete a note`academy_note_delete`

Permissions

learn:write

Credit effect

None

- `DELETE /v1/me/notes/{id}`

**MCP tools:** `academy_note_delete`

### Tool annotations

```
{
  "readOnlyHint": false,
  "destructiveHint": true,
  "idempotentHint": false,
  "openWorldHint": false
}
```

### Input schema

`id: string (Required); confirm: boolean (Required)`

### Output schema

`deleted: boolean (Required); id: string (Required)`

[Complete schema in OpenAPI](https://studiomeyer.academy/v1/openapi.json#/paths/~1v1~1me~1notes~1{id}/delete)

The field overview lists names, types and requirement status. Nested structures, variants and validation rules are fully available in the linked OpenAPI contract.

Read a quiz`academy_quiz`

Permissions

learn:read

Credit effect

None

- `GET /v1/me/quiz/{lessonSlug}`

**MCP tools:** `academy_quiz`

### Tool annotations

```
{
  "readOnlyHint": true,
  "destructiveHint": false,
  "idempotentHint": true,
  "openWorldHint": false
}
```

### Input schema

`level: integer (Depends on variant); slug: string (Depends on variant); quizSlug: string (Depends on variant)`

### Output schema

`slug: string (Required); kind: string (Required); level: number (Required); lessonSlug: string | null (Required); locale: string (Required); title: string (Required); description: string | null (Required); passingScore: number (Required); questions: array<object> (Required)`

[Complete schema in OpenAPI](https://studiomeyer.academy/v1/openapi.json#/paths/~1v1~1me~1quiz~1{lessonSlug}/get)

The field overview lists names, types and requirement status. Nested structures, variants and validation rules are fully available in the linked OpenAPI contract.

Submit a quiz`academy_quiz_submit`

Permissions

learn:write

Credit effect

None

- `POST /v1/me/quiz/{lessonSlug}/submissions`

**MCP tools:** `academy_quiz_submit`

### Tool annotations

```
{
  "readOnlyHint": false,
  "destructiveHint": false,
  "idempotentHint": false,
  "openWorldHint": false
}
```

### Input schema

`quizSlug: string (Required); answers: object (Required)`

### Output schema

`attemptId: string (Required); score: number (Required); correct: number (Required); total: number (Required); passed: boolean (Required); perQuestion: array<object> (Required)`

[Complete schema in OpenAPI](https://studiomeyer.academy/v1/openapi.json#/paths/~1v1~1me~1quiz~1{lessonSlug}~1submissions/post)

The field overview lists names, types and requirement status. Nested structures, variants and validation rules are fully available in the linked OpenAPI contract.

Read reviews`academy_review`

Permissions

learn:read

Credit effect

None

- `GET /v1/me/review`

**MCP tools:** `academy_review`

### Tool annotations

```
{
  "readOnlyHint": true,
  "destructiveHint": false,
  "idempotentHint": true,
  "openWorldHint": false
}
```

### Input schema

`cursor: string (Optional); limit: integer (Optional)`

### Output schema

`items: array<object> (Required); nextCursor: string | null (Required)`

[Complete schema in OpenAPI](https://studiomeyer.academy/v1/openapi.json#/paths/~1v1~1me~1review/get)

The field overview lists names, types and requirement status. Nested structures, variants and validation rules are fully available in the linked OpenAPI contract.

Grade a review`academy_review_grade`

Permissions

learn:write

Credit effect

None

- `POST /v1/me/review/{cardId}/grade`

**MCP tools:** `academy_review_grade`

### Tool annotations

```
{
  "readOnlyHint": false,
  "destructiveHint": false,
  "idempotentHint": false,
  "openWorldHint": false
}
```

### Input schema

`id: string (Required); grade: string (Required)`

### Output schema

`id: string (Required); lesson: object (Required); locale: string (Required); dueAt: string (Required); intervalDays: number (Required); repetitions: number (Required)`

[Complete schema in OpenAPI](https://studiomeyer.academy/v1/openapi.json#/paths/~1v1~1me~1review~1{cardId}~1grade/post)

The field overview lists names, types and requirement status. Nested structures, variants and validation rules are fully available in the linked OpenAPI contract.

Create an installation plan`academy_install`

Permissions

learn:write

Credit effect

None

- `POST /v1/me/installs`

**MCP tools:** `academy_install`

### Tool annotations

```
{
  "readOnlyHint": false,
  "destructiveHint": false,
  "idempotentHint": false,
  "openWorldHint": false
}
```

### Input schema

`packageIds: array<string> (Required); existingLockfile: object (Optional); observedFiles: array<object> (Optional); consentDraft: boolean (Optional); consentCandidate: boolean (Optional); consentScripts: boolean (Optional)`

### Output schema

`status: string (Required); files: array<object> (Required); lockfile: object (Required)`

[Complete schema in OpenAPI](https://studiomeyer.academy/v1/openapi.json#/paths/~1v1~1me~1installs/post)

The field overview lists names, types and requirement status. Nested structures, variants and validation rules are fully available in the linked OpenAPI contract.

Read tracked installation plans`academy_installs`

Permissions

learn:read

Credit effect

None

- `GET /v1/me/installs`

**MCP tools:** `academy_installs`

### Tool annotations

```
{
  "readOnlyHint": true,
  "destructiveHint": false,
  "idempotentHint": true,
  "openWorldHint": false
}
```

### Input schema

`cursor: string (Optional); limit: integer (Optional)`

### Output schema

`items: array<object> (Required); nextCursor: string | null (Required)`

[Complete schema in OpenAPI](https://studiomeyer.academy/v1/openapi.json#/paths/~1v1~1me~1installs/get)

The field overview lists names, types and requirement status. Nested structures, variants and validation rules are fully available in the linked OpenAPI contract.

Check updates`academy_check_updates`

Permissions

learn:read

Credit effect

None

- `POST /v1/me/installs/check-updates`

**MCP tools:** `academy_check_updates`

### Tool annotations

```
{
  "readOnlyHint": true,
  "destructiveHint": false,
  "idempotentHint": true,
  "openWorldHint": false
}
```

### Input schema

`lockfile: object (Required); observedFiles: array<object> (Optional)`

### Output schema

`updates: array<object> (Required)`

[Complete schema in OpenAPI](https://studiomeyer.academy/v1/openapi.json#/paths/~1v1~1me~1installs~1check-updates/post)

The field overview lists names, types and requirement status. Nested structures, variants and validation rules are fully available in the linked OpenAPI contract.

Save feedback`academy_feedback`

Permissions

learn:write

Credit effect

None

- `POST /v1/me/feedback`

**MCP tools:** `academy_feedback`

### Tool annotations

```
{
  "readOnlyHint": false,
  "destructiveHint": false,
  "idempotentHint": false,
  "openWorldHint": false
}
```

### Input schema

`itemId: string (Required); disposition: string (Required); text: string (Optional)`

### Output schema

`id: string (Required); savedAt: string (Required)`

[Complete schema in OpenAPI](https://studiomeyer.academy/v1/openapi.json#/paths/~1v1~1me~1feedback/post)

The field overview lists names, types and requirement status. Nested structures, variants and validation rules are fully available in the linked OpenAPI contract.

Prepare a specific credit expense`academy_prepare_spend`

Permissions

learn:write, credits:spend

Credit effect

None

- `POST /v1/me/spend-quotes`

**MCP tools:** `academy_prepare_spend`

### Tool annotations

```
{
  "readOnlyHint": false,
  "destructiveHint": false,
  "idempotentHint": true,
  "openWorldHint": false
}
```

### Input schema

`purpose: string (Required); id: string (Depends on variant); level: integer (Depends on variant); slug: string (Depends on variant); message: string (Depends on variant); topic: string (Depends on variant); format: string (Depends on variant); preferredTime: string (Depends on variant)`

### Output schema

`id: string (Required); contentId: string (Required); contentVersion: string (Required); priceVersion: string (Required); credits: integer (Required); expiresAt: string (Required)`

[Complete schema in OpenAPI](https://studiomeyer.academy/v1/openapi.json#/paths/~1v1~1me~1spend-quotes/post)

The field overview lists names, types and requirement status. Nested structures, variants and validation rules are fully available in the linked OpenAPI contract.

Read premium catalog`academy_premium_catalog`

Permissions

Public

Credit effect

None

- `GET /v1/premium`

**MCP tools:** `academy_premium_catalog`

### Tool annotations

```
{
  "readOnlyHint": true,
  "destructiveHint": false,
  "idempotentHint": true,
  "openWorldHint": false
}
```

### Input schema

`cursor: string (Optional); limit: integer (Optional)`

### Output schema

`items: array<object> (Required); nextCursor: string | null (Required)`

[Complete schema in OpenAPI](https://studiomeyer.academy/v1/openapi.json#/paths/~1v1~1premium/get)

The field overview lists names, types and requirement status. Nested structures, variants and validation rules are fully available in the linked OpenAPI contract.

Read premium preview`academy_premium_preview`

Permissions

Public

Credit effect

None

- `GET /v1/premium/{id}`
- `GET /v1/premium/{id}/preview`

**MCP tools:** `academy_premium_preview`

### Tool annotations

```
{
  "readOnlyHint": true,
  "destructiveHint": false,
  "idempotentHint": true,
  "openWorldHint": false
}
```

### Input schema

`id: string (Required)`

### Output schema

`item: object (Required); price: object (Required); preview: string (Required)`

[Complete schema in OpenAPI](https://studiomeyer.academy/v1/openapi.json#/paths/~1v1~1premium~1{id}/get)

The field overview lists names, types and requirement status. Nested structures, variants and validation rules are fully available in the linked OpenAPI contract.

Read credit balance`academy_credits`

Permissions

learn:read

Credit effect

None

- `GET /v1/me/credits`

**MCP tools:** `academy_credits`

### Tool annotations

```
{
  "readOnlyHint": true,
  "destructiveHint": false,
  "idempotentHint": true,
  "openWorldHint": false
}
```

### Input schema

`No named fields`

### Output schema

`status: string (Required); bonusCredits: null (Depends on variant); subscriptionCredits: null (Depends on variant); euroValue: null (Depends on variant); spendingEnabled: boolean (Required); purchasesEnabled: boolean (Required); balances: array<object> (Depends on variant)`

[Complete schema in OpenAPI](https://studiomeyer.academy/v1/openapi.json#/paths/~1v1~1me~1credits/get)

The field overview lists names, types and requirement status. Nested structures, variants and validation rules are fully available in the linked OpenAPI contract.

Read ledger`academy_ledger`

Permissions

learn:read

Credit effect

None

- `GET /v1/me/credits/ledger`

**MCP tools:** `academy_ledger`

### Tool annotations

```
{
  "readOnlyHint": true,
  "destructiveHint": false,
  "idempotentHint": true,
  "openWorldHint": false
}
```

### Input schema

`cursor: string (Optional); limit: integer (Optional)`

### Output schema

`items: array<object> (Required); nextCursor: string | null (Required)`

[Complete schema in OpenAPI](https://studiomeyer.academy/v1/openapi.json#/paths/~1v1~1me~1credits~1ledger/get)

The field overview lists names, types and requirement status. Nested structures, variants and validation rules are fully available in the linked OpenAPI contract.

Unlock premium`academy_premium_unlock`

Permissions

credits:spend

Credit effect

Spend with approval

- `POST /v1/me/premium/{id}/unlock`

**MCP tools:** `academy_premium_unlock`

### Tool annotations

```
{
  "readOnlyHint": false,
  "destructiveHint": false,
  "idempotentHint": true,
  "openWorldHint": false
}
```

### Input schema

`id: string (Required); consent: object (Required)`

### Output schema

`entitlement: object (Required); ledgerEntryId: string (Required)`

[Complete schema in OpenAPI](https://studiomeyer.academy/v1/openapi.json#/paths/~1v1~1me~1premium~1{id}~1unlock/post)

The field overview lists names, types and requirement status. Nested structures, variants and validation rules are fully available in the linked OpenAPI contract.

List owned content`academy_my_premium`

Permissions

learn:read

Credit effect

None

- `GET /v1/me/premium`

**MCP tools:** `academy_my_premium`

### Tool annotations

```
{
  "readOnlyHint": true,
  "destructiveHint": false,
  "idempotentHint": true,
  "openWorldHint": false
}
```

### Input schema

`cursor: string (Optional); limit: integer (Optional)`

### Output schema

`items: array<object> (Required); nextCursor: string | null (Required)`

[Complete schema in OpenAPI](https://studiomeyer.academy/v1/openapi.json#/paths/~1v1~1me~1premium/get)

The field overview lists names, types and requirement status. Nested structures, variants and validation rules are fully available in the linked OpenAPI contract.

Read owned content`academy_premium_read`

Permissions

learn:read

Credit effect

None

- `GET /v1/me/premium/{id}`

**MCP tools:** `academy_premium_read`

### Tool annotations

```
{
  "readOnlyHint": true,
  "destructiveHint": false,
  "idempotentHint": true,
  "openWorldHint": false
}
```

### Input schema

`id: string (Required)`

### Output schema

`id: string (Required); requestedLocale: string (Required); content_locale: string (Required); fallback: boolean (Required); version: string | null (Required); status: string | null (Required); updated: string | null (Required); content: object (Required)`

[Complete schema in OpenAPI](https://studiomeyer.academy/v1/openapi.json#/paths/~1v1~1me~1premium~1{id}/get)

The field overview lists names, types and requirement status. Nested structures, variants and validation rules are fully available in the linked OpenAPI contract.

Ask the tutor`academy_tutor`

Permissions

learn:write, credits:spend

Credit effect

Spend with approval

- `POST /v1/me/tutor`
- `POST /v1/me/tutor/messages`

**MCP tools:** `academy_tutor`

### Tool annotations

```
{
  "readOnlyHint": false,
  "destructiveHint": false,
  "idempotentHint": true,
  "openWorldHint": true
}
```

### Input schema

`level: integer (Required); slug: string (Required); message: string (Required); consent: object (Required)`

### Output schema

`messageId: string (Required); response: string (Required); ledgerEntryId: string (Required)`

[Complete schema in OpenAPI](https://studiomeyer.academy/v1/openapi.json#/paths/~1v1~1me~1tutor/post)

The field overview lists names, types and requirement status. Nested structures, variants and validation rules are fully available in the linked OpenAPI contract.

Request coaching`academy_coaching_request`

Permissions

learn:write

Credit effect

Depends on input

- `POST /v1/me/coaching`

**MCP tools:** `academy_coaching_request`

### Tool annotations

```
{
  "readOnlyHint": false,
  "destructiveHint": false,
  "idempotentHint": true,
  "openWorldHint": false
}
```

### Input schema

`topic: string (Required); format: string (Required); preferredTime: string (Optional); confirm: boolean (Required); payment: object (Required)`

### Output schema

`id: string (Required); status: string (Required); payment: string (Required)`

[Complete schema in OpenAPI](https://studiomeyer.academy/v1/openapi.json#/paths/~1v1~1me~1coaching/post)

The field overview lists names, types and requirement status. Nested structures, variants and validation rules are fully available in the linked OpenAPI contract.

List legacy levels`academy_legacy_levels`

Permissions

Public

Credit effect

None

- `GET /v1/legacy/levels`

**MCP tools:** `academy_legacy_levels`

**Older names:** `academy_levels`

### Tool annotations

```
{
  "readOnlyHint": true,
  "destructiveHint": false,
  "idempotentHint": true,
  "openWorldHint": false
}
```

### Input schema

`No named fields`

### Output schema

`levels: array<object> (Required)`

[Complete schema in OpenAPI](https://studiomeyer.academy/v1/openapi.json#/paths/~1v1~1legacy~1levels/get)

The field overview lists names, types and requirement status. Nested structures, variants and validation rules are fully available in the linked OpenAPI contract.

List legacy lessons`academy_legacy_lessons`

Permissions

Public

Credit effect

None

- `GET /v1/legacy/levels/{level}/lessons`

**MCP tools:** `academy_legacy_lessons`

**Older names:** `academy_lessons`

### Tool annotations

```
{
  "readOnlyHint": true,
  "destructiveHint": false,
  "idempotentHint": true,
  "openWorldHint": false
}
```

### Input schema

`level: integer (Required)`

### Output schema

`lessons: array<object> (Required)`

[Complete schema in OpenAPI](https://studiomeyer.academy/v1/openapi.json#/paths/~1v1~1legacy~1levels~1{level}~1lessons/get)

The field overview lists names, types and requirement status. Nested structures, variants and validation rules are fully available in the linked OpenAPI contract.

## Sitemap

Public pages of this site as Markdown: [sitemap](https://studiomeyer.academy/sitemap.md). Curated entry point: [llms.txt](https://studiomeyer.academy/llms.txt), full text: [llms-full.txt](https://studiomeyer.academy/llms-full.txt).
