Maths lessons on an online whiteboard: solutions, worksheets, graphs and geometry, opened by a link
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Adds board text to the board the teacher has open, behind a live link (.../live/<id>). place "current_page": put it under what is on the page the teacher is on (write ONE page: the next step, a hint, a drawing). place "new_pages": add your pages after the last page (exercises, answers, a new topic). Call check_board first: a text with errors is not added. Nothing on the board is changed or removed; the teacher can undo the addition.
The live link the user gave you: .../live/<id>.
The whole board in the Notematics format: # title, :::companion, :::font and :::show lines under it, ## pages, Markdown with $...$ formulas and [words]{red highlight} spans, :::graph, :::geometry, :::solid blocks, and :::comment, :::say blocks and :::mood, :::show lines and marks (:::strike "+3", :::cancel, :::cross, :::underline, :::double, :::circle, :::box, and :::unmark to rub one out) under ### step headings. The ~~~notematics fence around it is optional.
"current_page" (under what is on the teacher's page; one page of text) or "new_pages" (after the last page).
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
Run in a terminal
claude mcp add --transport http notematics https://notematics.com/api/mcp
Adds board text to the board the teacher has open, behind a live link (.../live/<id>). place "current_page": put it under what is on the page the teacher is on (write ONE page: the next step, a hint, a drawing). place "new_pages": add your pages after the last page (exercises, answers, a new topic). Call check_board first: a text with errors is not added. Nothing on the board is changed or removed; the teacher can undo the addition.
| Argument | Type | Description |
|---|---|---|
| link* | string | The live link the user gave you: .../live/<id>. |
| text* | string | The whole board in the Notematics format: # title, :::companion, :::font and :::show lines under it, ## pages, Markdown with $...$ formulas and [words]{red highlight} spans, :::graph, :::geometry, :::solid blocks, and :::comment, :::say blocks and :::mood, :::show lines and marks (:::strike "+3", :::cancel, :::cross, :::underline, :::double, :::circle, :::box, and :::unmark to rub one out) under ### step headings. The ~~~notematics fence around it is optional. |
| place* | string | "current_page" (under what is on the teacher's page; one page of text) or "new_pages" (after the last page). |
{
"type": "object",
"required": [
"link",
"text",
"place"
],
"properties": {
"link": {
"type": "string",
"maxLength": 300,
"description": "The live link the user gave you: .../live/<id>."
},
"text": {
"type": "string",
"maxLength": 300000,
"description": "The whole board in the Notematics format: # title, :::companion, :::font and :::show lines under it, ## pages, Markdown with $...$ formulas and [words]{red highlight} spans, :::graph, :::geometry, :::solid blocks, and :::comment, :::say blocks and :::mood, :::show lines and marks (:::strike \"+3\", :::cancel, :::cross, :::underline, :::double, :::circle, :::box, and :::unmark to rub one out) under ### step headings. The ~~~notematics fence around it is optional."
},
"place": {
"enum": [
"new_pages",
"current_page"
],
"type": "string",
"description": "\"current_page\" (under what is on the teacher's page; one page of text) or \"new_pages\" (after the last page)."
}
},
"additionalProperties": false
}Checks a board text without publishing it. Returns what the board understood, page by page, and every problem with its line and how to fix it. Fix every ERROR, then call check_board again. When there are no errors, call publish_board.
| Argument | Type | Description |
|---|---|---|
| text* | string | The whole board in the Notematics format: # title, :::companion, :::font and :::show lines under it, ## pages, Markdown with $...$ formulas and [words]{red highlight} spans, :::graph, :::geometry, :::solid blocks, and :::comment, :::say blocks and :::mood, :::show lines and marks (:::strike "+3", :::cancel, :::cross, :::underline, :::double, :::circle, :::box, and :::unmark to rub one out) under ### step headings. The ~~~notematics fence around it is optional. |
{
"type": "object",
"required": [
"text"
],
"properties": {
"text": {
"type": "string",
"maxLength": 300000,
"description": "The whole board in the Notematics format: # title, :::companion, :::font and :::show lines under it, ## pages, Markdown with $...$ formulas and [words]{red highlight} spans, :::graph, :::geometry, :::solid blocks, and :::comment, :::say blocks and :::mood, :::show lines and marks (:::strike \"+3\", :::cancel, :::cross, :::underline, :::double, :::circle, :::box, and :::unmark to rub one out) under ### step headings. The ~~~notematics fence around it is optional."
}
},
"additionalProperties": false
}Returns the Notematics text format with a complete example. Read it before writing a board, unless you already have it.
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}Lists the voices this Notematics site can voice narration with now, language by language: each voice's id, name and whether it is a man's or a woman's, and the default voice of the language. A language that is not listed cannot be voiced now. Give a voice to publish_board as narration_voice.
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}Publishes a board and returns a link that opens it in the user's browser. Call check_board first. A board with errors is not published: the problems come back instead. With narration_language, the :::say blocks are voiced, so that the presentation plays with a voice. Give the link to the user exactly as returned.
| Argument | Type | Description |
|---|---|---|
| text* | string | The whole board in the Notematics format: # title, :::companion, :::font and :::show lines under it, ## pages, Markdown with $...$ formulas and [words]{red highlight} spans, :::graph, :::geometry, :::solid blocks, and :::comment, :::say blocks and :::mood, :::show lines and marks (:::strike "+3", :::cancel, :::cross, :::underline, :::double, :::circle, :::box, and :::unmark to rub one out) under ### step headings. The ~~~notematics fence around it is optional. |
| autoplay | boolean | true: the link opens the board straight in the presentation player, which plays it step by step (for a presentation, an explainer, a video lesson). Leave it out for a board to look at and work on. |
| narration_speed | number | How fast the voice speaks: 1 is normal, 0.85 or 0.75 slower (for younger students), 1.1 or 1.25 faster. |
| narration_voice | string | A voice id from get_voices for that language (a man's or a woman's voice, for example). Leave it out for the site's default voice of the language. |
| narration_language | string | The language of the :::say blocks, to voice them with the site's voice of that language. Leave it out for a board without narration, or to leave the voicing to the teacher. |
Reads the board behind a Notematics link the user gave you and returns it as board text, in the same format you write. Ink, images, widgets and the audio of narration cannot be written as text and are listed as left out (narration text is kept, as :::say; the wire man or girl as :::companion and the moods as :::mood; how steps appear as :::show; the marks drawn over what is written as :::strike, :::circle… lines; the look of words as spans). For a live link it also says which page the teacher is on.
| Argument | Type | Description |
|---|---|---|
| link* | string | The Notematics link the user gave you, exactly as given: .../live/<id> (the board open now) or .../s/<id>#<key> (a shared copy). |
{
"type": "object",
"required": [
"link"
],
"properties": {
"link": {
"type": "string",
"maxLength": 300,
"description": "The Notematics link the user gave you, exactly as given: .../live/<id> (the board open now) or .../s/<id>#<key> (a shared copy)."
}
},
"additionalProperties": false
}We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 4, 2026.
{
"type": "object",
"required": [
"text"
],
"properties": {
"text": {
"type": "string",
"maxLength": 300000,
"description": "The whole board in the Notematics format: # title, :::companion, :::font and :::show lines under it, ## pages, Markdown with $...$ formulas and [words]{red highlight} spans, :::graph, :::geometry, :::solid blocks, and :::comment, :::say blocks and :::mood, :::show lines and marks (:::strike \"+3\", :::cancel, :::cross, :::underline, :::double, :::circle, :::box, and :::unmark to rub one out) under ### step headings. The ~~~notematics fence around it is optional."
},
"autoplay": {
"type": "boolean",
"description": "true: the link opens the board straight in the presentation player, which plays it step by step (for a presentation, an explainer, a video lesson). Leave it out for a board to look at and work on."
},
"narration_speed": {
"enum": [
0.75,
0.85,
1,
1.1,
1.25
],
"type": "number",
"description": "How fast the voice speaks: 1 is normal, 0.85 or 0.75 slower (for younger students), 1.1 or 1.25 faster."
},
"narration_voice": {
"type": "string",
"maxLength": 160,
"description": "A voice id from get_voices for that language (a man's or a woman's voice, for example). Leave it out for the site's default voice of the language."
},
"narration_language": {
"enum": [
"ru",
"uk",
"en",
"fr",
"es",
"it"
],
"type": "string",
"description": "The language of the :::say blocks, to voice them with the site's voice of that language. Leave it out for a board without narration, or to leave the voicing to the teacher."
}
},
"additionalProperties": false
}