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.
Reads a coded message back to text in angka, koordinat, Merah Putih, Polybius, AZ (Atbash), AN (ROT13), kimia, jam, AND, Napoleon or ular. Kotak, rumput and semaphore are drawings and have no text reader. Returns the decoded text, the key used and a link to the SandiMorse page with the same input.
Code to read.
The coded message, for example numbers for angka, letter pairs for koordinat, times for jam or a formula for kimia.
Hour of the letter A in jam, 0 to 23. Default 8.
Step between letters: a number for angka (default 1) or minutes for jam (default 5).
Number for the letter A in angka. Default 1.
Letters per row in napoleon (default 6) or ular (default 4), 2 to 30.
Minute of the letter A in jam, 0 to 59. Default 0.
Reading order of ular: snake reads rows back and forth, column reads top to bottom. Default snake.
Language of the answer and of the page the link opens: id for Indonesian or en for English. Default id.
Column key word of koordinat: 5 different letters A to Z. Both key words are needed for a custom key.
Row key word of koordinat: 5 different letters A to Z.
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
Run in a terminal
claude mcp add --transport http sandimorse https://sandimorse.com/api/mcp
Reads a coded message back to text in angka, koordinat, Merah Putih, Polybius, AZ (Atbash), AN (ROT13), kimia, jam, AND, Napoleon or ular. Kotak, rumput and semaphore are drawings and have no text reader. Returns the decoded text, the key used and a link to the SandiMorse page with the same input.
| Argument | Type | Description |
|---|---|---|
| code* | string | Code to read. |
| hour | integer | Hour of the letter A in jam, 0 to 23. Default 8. |
| step | integer | Step between letters: a number for angka (default 1) or minutes for jam (default 5). |
| text* | string | The coded message, for example numbers for angka, letter pairs for koordinat, times for jam or a formula for kimia. |
| start | integer | Number for the letter A in angka. Default 1. |
| width | integer | Letters per row in napoleon (default 6) or ular (default 4), 2 to 30. |
| minute | integer | Minute of the letter A in jam, 0 to 59. Default 0. |
| reading | string | Reading order of ular: snake reads rows back and forth, column reads top to bottom. Default snake. |
| language | string | Language of the answer and of the page the link opens: id for Indonesian or en for English. Default id. |
| top_word | string | Column key word of koordinat: 5 different letters A to Z. Both key words are needed for a custom key. |
| left_word | string | Row key word of koordinat: 5 different letters A to Z. |
{
"type": "object",
"required": [
"code",
"text"
],
"properties": {
"code": {
"enum": [
"angka",
"koordinat",
"merah-putih",
"polybius",
"az",
"an",
"kimia",
"jam",
"and",
"napoleon",
"ular"
],
"type": "string",
"description": "Code to read."
},
"hour": {
"type": "integer",
"maximum": 23,
"minimum": 0,
"description": "Hour of the letter A in jam, 0 to 23. Default 8."
},
"step": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Step between letters: a number for angka (default 1) or minutes for jam (default 5)."
},
"text": {
"type": "string",
"maxLength": 300,
"minLength": 1,
"description": "The coded message, for example numbers for angka, letter pairs for koordinat, times for jam or a formula for kimia."
},
"start": {
"type": "integer",
"maximum": 1000,
"minimum": 0,
"description": "Number for the letter A in angka. Default 1."
},
"width": {
"type": "integer",
"maximum": 30,
"minimum": 2,
"description": "Letters per row in napoleon (default 6) or ular (default 4), 2 to 30."
},
"minute": {
"type": "integer",
"maximum": 59,
"minimum": 0,
"description": "Minute of the letter A in jam, 0 to 59. Default 0."
},
"reading": {
"enum": [
"snake",
"column"
],
"type": "string",
"description": "Reading order of ular: snake reads rows back and forth, column reads top to bottom. Default snake."
},
"language": {
"enum": [
"id",
"en"
],
"type": "string",
"description": "Language of the answer and of the page the link opens: id for Indonesian or en for English. Default id."
},
"top_word": {
"type": "string",
"maxLength": 12,
"minLength": 5,
"description": "Column key word of koordinat: 5 different letters A to Z. Both key words are needed for a custom key."
},
"left_word": {
"type": "string",
"maxLength": 12,
"minLength": 5,
"description": "Row key word of koordinat: 5 different letters A to Z."
}
},
"additionalProperties": false
}Writes a message in one of the scout codes on SandiMorse: kotak 1, 2 and 3, rumput, semaphore, angka, koordinat, Merah Putih, Polybius, AZ (Atbash), AN (ROT13), kimia, jam, AND, Napoleon or ular. Returns the coded text, or a picture for the drawn codes, with the key used and a link to the SandiMorse page with the same input.
| Argument | Type | Description |
|---|---|---|
| code* | string | Code to write in. |
| hour | integer | Hour of the letter A in jam, 0 to 23. Default 8. |
| step | integer | Step between letters: a number for angka (default 1) or minutes for jam (default 5). |
| text* | string | The message to encode. Drawn codes (kotak, rumput, semaphore) take up to 120 characters, the others up to 300. |
| start | integer | Number for the letter A in angka. Default 1. |
| style | string | Placement of AND in the AND code: syllable puts it after a consonant before a vowel and at the end of a word, every puts it between all letters. Default syllable. |
| width | integer | Letters per row in napoleon (default 6) or ular (default 4), 2 to 30. |
Lists the Morse and scout codes on SandiMorse with the name, what each one is, its key, whether it can encode and decode, an example message and a link to its page.
| Argument | Type | Description |
|---|---|---|
| query | string | Words to look for in the names, descriptions and keys of the codes. Empty lists all of them. |
| cursor | string | Opaque nextCursor from a previous page with identical filters and pageSize; absent on the first page. |
| category | string | Group of codes: morse, drawn, numbers, grid, letters or layout. |
| language | string | Language of the answer and of the page the link opens: id for Indonesian or en for English. Default id. |
| pageSize | integer | Codes per page. Default 20. |
{
"type": "object",
"required": [],
"properties": {
"query": {
"type": "string",
"maxLength": 200,
"minLength": 0,
"description": "Words to look for in the names, descriptions and keys of the codes. Empty lists all of them."
},
"cursor": {
"type": "string",
"maxLength": 2048,
"minLength": 1,
"description": "Opaque nextCursor from a previous page with identical filters and pageSize; absent on the first page."
},
"category": {
"enum": [
"morse",
"drawn",
"numbers",
"grid",
"letters",
"layout"
],
"type": "string",
"description": "Group of codes: morse, drawn, numbers, grid, letters or layout."
},
"language": {
"enum": [
"id",
"en"
],
"type": "string",
"description": "Language of the answer and of the page the link opens: id for Indonesian or en for English. Default id."
},
"pageSize": {
"type": "integer",
"maximum": 20,
"minimum": 1,
"description": "Codes per page. Default 20."
}
},
"additionalProperties": false
}Returns the Morse code chart for letters A to Z, digits 0 to 9 and punctuation, or the code of one character with its dot and dash counts and memory tips. Includes a link to the matching SandiMorse page.
| Argument | Type | Description |
|---|---|---|
| kind | string | Part of the chart: all (default), letters, digits or punctuation. |
| language | string | Language of the answer and of the page the link opens: id for Indonesian or en for English. Default id. |
| character | string | One letter, digit or punctuation mark to look up. Without it the chart is returned. |
{
"type": "object",
"required": [],
"properties": {
"kind": {
"enum": [
"all",
"letters",
"digits",
"punctuation"
],
"type": "string",
"description": "Part of the chart: all (default), letters, digits or punctuation."
},
"language": {
"enum": [
"id",
"en"
],
"type": "string",
"description": "Language of the answer and of the page the link opens: id for Indonesian or en for English. Default id."
},
"character": {
"type": "string",
"maxLength": 2,
"minLength": 1,
"description": "One letter, digit or punctuation mark to look up. Without it the chart is returned."
}
},
"additionalProperties": false
}Returns ten Morse code practice questions with their answers: letter to code, code to letter, words, listening and mixed rounds. Listening questions carry the code to play. Includes a link to the SandiMorse practice page.
| Argument | Type | Description |
|---|---|---|
| mode | string | Round type: letter-code, code-letter, words, listen or mixed (default). |
| round | integer | Question set number from 1; a different number gives a different set of ten questions. Default 1. |
| language | string | Language of the answer and of the page the link opens: id for Indonesian or en for English. Default id. |
{
"type": "object",
"required": [],
"properties": {
"mode": {
"enum": [
"letter-code",
"code-letter",
"words",
"listen",
"mixed"
],
"type": "string",
"description": "Round type: letter-code, code-letter, words, listen or mixed (default)."
},
"round": {
"type": "integer",
"maximum": 10000,
"minimum": 1,
"description": "Question set number from 1; a different number gives a different set of ten questions. Default 1."
},
"language": {
"enum": [
"id",
"en"
],
"type": "string",
"description": "Language of the answer and of the page the link opens: id for Indonesian or en for English. Default id."
}
},
"additionalProperties": false
}Translates text to Morse code or Morse code to text. Returns the result, a letter-by-letter breakdown with the dot and dash patterns, the signal timing at the chosen speed and a link to the SandiMorse translator with the same input. The widget plays the sound and blinks a lamp.
| Argument | Type | Description |
|---|---|---|
| wpm | integer | Sending speed in words per minute for the timing. Default 15. |
| text* | string | The text to translate, or Morse code written with dots and dashes (letters separated by spaces, words by /). |
| language | string | Language of the answer and of the page the link opens: id for Indonesian or en for English. Default id. |
| direction | string | text_to_morse (default) or morse_to_text. |
{
"type": "object",
"required": [
"text"
],
"properties": {
"wpm": {
"type": "integer",
"maximum": 30,
"minimum": 5,
"description": "Sending speed in words per minute for the timing. Default 15."
},
"text": {
"type": "string",
"maxLength": 300,
"minLength": 1,
"description": "The text to translate, or Morse code written with dots and dashes (letters separated by spaces, words by /)."
},
"language": {
"enum": [
"id",
"en"
],
"type": "string",
"description": "Language of the answer and of the page the link opens: id for Indonesian or en for English. Default id."
},
"direction": {
"enum": [
"text_to_morse",
"morse_to_text"
],
"type": "string",
"description": "text_to_morse (default) or morse_to_text."
}
},
"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 11, 2026.
| minute |
| integer |
| Minute of the letter A in jam, 0 to 59. Default 0. |
| reading | string | Reading order of ular: snake reads rows back and forth, column reads top to bottom. Default snake. |
| compress | boolean | Kimia: write equal neighbouring symbols with a number (HH as H2). Default true. |
| language | string | Language of the answer and of the page the link opens: id for Indonesian or en for English. Default id. |
| top_word | string | Column key word of koordinat: 5 different letters A to Z. Both key words are needed for a custom key. |
| left_word | string | Row key word of koordinat: 5 different letters A to Z. |
{
"type": "object",
"required": [
"code",
"text"
],
"properties": {
"code": {
"enum": [
"kotak-1",
"kotak-2",
"kotak-3",
"rumput",
"angka",
"semaphore",
"koordinat",
"merah-putih",
"polybius",
"az",
"an",
"kimia",
"jam",
"and",
"napoleon",
"ular"
],
"type": "string",
"description": "Code to write in."
},
"hour": {
"type": "integer",
"maximum": 23,
"minimum": 0,
"description": "Hour of the letter A in jam, 0 to 23. Default 8."
},
"step": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Step between letters: a number for angka (default 1) or minutes for jam (default 5)."
},
"text": {
"type": "string",
"maxLength": 300,
"minLength": 1,
"description": "The message to encode. Drawn codes (kotak, rumput, semaphore) take up to 120 characters, the others up to 300."
},
"start": {
"type": "integer",
"maximum": 1000,
"minimum": 0,
"description": "Number for the letter A in angka. Default 1."
},
"style": {
"enum": [
"syllable",
"every"
],
"type": "string",
"description": "Placement of AND in the AND code: syllable puts it after a consonant before a vowel and at the end of a word, every puts it between all letters. Default syllable."
},
"width": {
"type": "integer",
"maximum": 30,
"minimum": 2,
"description": "Letters per row in napoleon (default 6) or ular (default 4), 2 to 30."
},
"minute": {
"type": "integer",
"maximum": 59,
"minimum": 0,
"description": "Minute of the letter A in jam, 0 to 59. Default 0."
},
"reading": {
"enum": [
"snake",
"column"
],
"type": "string",
"description": "Reading order of ular: snake reads rows back and forth, column reads top to bottom. Default snake."
},
"compress": {
"type": "boolean",
"description": "Kimia: write equal neighbouring symbols with a number (HH as H2). Default true."
},
"language": {
"enum": [
"id",
"en"
],
"type": "string",
"description": "Language of the answer and of the page the link opens: id for Indonesian or en for English. Default id."
},
"top_word": {
"type": "string",
"maxLength": 12,
"minLength": 5,
"description": "Column key word of koordinat: 5 different letters A to Z. Both key words are needed for a custom key."
},
"left_word": {
"type": "string",
"maxLength": 12,
"minLength": 5,
"description": "Row key word of koordinat: 5 different letters A to Z."
}
},
"additionalProperties": false
}