Each result is capped at 48,000 characters. Longer output is cut off with a note on how to narrow the request.
MAK_API.md and KM_API.md document V3.x-era firmware. MAKCU V4.0xx and MAKXD 0.2.0+ differ, so the first read of either contract in a session starts with the firmware V4 notice, later reads carry a one-line reminder, and search or command results from them point to protocol/FIRMWARE_V4.md.
Which firmware build accepts which command comes from the live matrix at makcu.com/api/versions, refreshed every five minutes. Later builds can drop commands that earlier builds had. Every tool result ends with a line naming the latest released and latest builds and the date the matrix was updated.
Ranked full-text search across the protocol docs and SDK source. Use it first to find where a command, opcode, setting, method or constant is defined. Each hit gives the file path, line number, and the heading or symbol around it.
string
required
Text to find, e.g. KEY_INIT, 0x3E, controller handoff, NOR save.
'doc' | 'source' | 'all'
default:"all"
Search only documentation, only SDK source, or both.
'python' | 'rust' | 'cpp' | 'c' | 'csharp'
Limit source results to one SDK language.
string
Search only files whose path contains this text, e.g. protocol/ or rust/.
boolean
default:"false"
Treat query as a JavaScript regular expression.
integer
default:"20"
Maximum number of hits, from 1 to 100.

mak_read

Reads a file, one markdown section, or a range of lines. Use section for the large protocol docs and a line range for source files. A partial path such as MAK_API.md or controller.py works if only one file matches.
string
required
File path, e.g. protocol/MAK_API.md or python/makxd/controller.py.
string
A markdown heading, e.g. Frame. Markdown files only. If a heading appears more than once, add its parent: Controller > Physical-input masks.
integer
First line to read, counting from 1.
integer
Last line to read. This line is included.
integer
default:"400"
Maximum lines returned, from 1 to 3000.
boolean
default:"false"
Return only the file’s headings or symbols with line numbers, not the file itself.

mak_list

Lists the files in the snapshot with their sizes and line counts, plus the upstream commit the snapshot was taken from.
'doc' | 'source' | 'all'
default:"all"
List only documentation, only SDK source, or both.
'python' | 'rust' | 'cpp' | 'c' | 'csharp'
List only source files in one SDK language.
string
List only paths that contain this text.

mak_find_symbol

Finds a function, method, class, struct, trait or enum by name in all five SDKs. Names, argument counts and return types differ between languages, so compare them here before porting code from one SDK to another.
string
required
A symbol name or part of one, e.g. connect, controller_state, firmware_version.
'python' | 'rust' | 'cpp' | 'c' | 'csharp'
Limit results to one SDK language.
integer
default:"40"
Maximum number of matches, from 1 to 200.

mak_command

Looks up a device command in both contracts at once: the binary MAK_API form (opcode, payload, reply) and the ASCII KM_API form (km.* arguments and reply). It also lists the released and test firmware builds that do and don’t accept the command, taken from the live matrix. That includes commands the contracts don’t document yet, such as km.flick and 0x55 PHYS_BUTTONS. Call it with no name for the full catalog.
string
A km.* name (km.move, moveto), a MAK_API name (KEY_PRESS) or an opcode (0x18). Omit it for the catalog.

mak_firmware

The MAKCU firmware capability matrix from makcu.com/api/versions. With no build it lists every released and test build, the commands and opcodes that differ between builds, behaviour differences such as echo defaults and button stream formats, and the change log. With a build it lists that build’s notes, what it lacks, how it differs from the latest released build, and its behaviour. A build missing from the matrix resolves to the closest lower build, following the page’s downgrade rule.
string
V4.036, 4.036, 4036 (the number FIRMWARE_VERSION returns) or V30. Omit it for the overview.