Every change Wellknown observed on this MCP server, newest first, with what it was before and what it became. Tool-surface changes carry the definition diff. Nothing here is edited after the fact.
Certificate recorded, valid to 2027-01-12
Authorization not required
Changed the definition of "push_circuit"
⟨29 unchanged words⟩ componentId, pinName}, end: {...}, color?, waypoints?: [{x, y}] (the wire's route, 16 points at most)}], in the shape of the setupsheet's circuit; 40 components, 120 wires, 48 ⟨18 unchanged words⟩
Added "submit_answer"; changed the definition of "read_setup" and "read_simulation" (22 tools before, 23 now)
⟨11 unchanged words⟩ , components and wires (circuit), probes,levels.levels (without their hints: hints come through read_simulation as the visitor reveals them). Plus, when it exists, schema.png, the ⟨10 unchanged words⟩
⟨13 unchanged words⟩ events after since_ms (2000 at most). `serial` is the full serial output of the current run (up to 16 KiB), reset at each compile and NOT starved by pin events: prefer it over reconstructing serial from `events`. During a turn on a real bench, `serial` and the serial events come from the bench's board (since the turn began or the last compile), `t` on the turn's clock.
Added "decode_capture"; changed the definition of "bench_snapshot", "capture_analog", "capture_logic" and 12 more (21 tools before, 22 now)
{"properties":{"agent_token":{"titleanyOf":[{"Agent Tokentype":"string"},{"type":"stringnull"}],"sessiondefault":{null,"title":"SessionAgent Token"},"session":{"anyOf":[{"
Unknown → Live
First tool surface recorded: 21 tools
https://lab.picodev.fr/mcp (mcp_streamable_http) — from mcp_registry, with the record
Showing the latest 8 events. The API returns up to 500 and filters by kind: ?kind=tool_surface_changed
Submit an answer — Challenge mode: propose `value` as the answer of the current level's test `test` (an answer test of the level's brief). One answer per second at most. The hub checks it and returns {test, ok}; the verdict is also shown in the bench. For a hint, ask the visitor to reveal one in the bench.
Sample the voltage of 1 to 4 board pins (0-13thedigital,board's own numbers: Nano A0-A7 = 14-21, Uno A0-A5 =A0-A7;14-19, Mega A0-A15 = 54-69; by default the setup's scope probes) at ⟨66 unchanged words⟩
{"properties":{"agent_token":{"titleanyOf":[{"Agent Tokentype":"string"},{"type":"stringnull"}],"default":null,"title":"Agent Token"},"duration_ms":{"default":1000,"title":"Duration ⟨22 unchanged words⟩ ,"type":"integer"},"session":{"titleanyOf":[{"Sessiontype":"string"},{"type":"stringnull"}}],"requireddefault":[null,"sessiontitle",:"agent_tokenSession"]}},"title":"capture_analogArguments","type":"object"}
⟨48 unchanged words⟩ no browser or running simulation needed then). trigger {pin, edge}: pin among pins, edge rising, falling or any; the recording then lasts wait_ms + duration_ms (10 000 ms at most) and keeps pre_ms (0 to wait_ms) before the first matching edge within wait_ms and duration_ms after it; with no such edge, the whole recording. Read the result withread_capture.read_capture, decode it with decode_capture.
{"$defs":{"Trigger":{"properties":{"agent_tokenedge":{"title":"Agent TokenEdge","type":"string"},"pin":{"title":"Pin","type":"integer"}},"required":["pin","edge"],"title":"Trigger","type":"object"}},"properties":{"agent_token":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Agent Token"},"duration_ms":{"default":1000,"title":"Duration ⟨12 unchanged words⟩ "default":null,"title":"Pins"},"sessionpre_ms":{"default":0,"title":"SessionPre Ms","type":"integer"},"session":{"anyOf":[{"type":"string"},{"type":"null"}],"requireddefault":null,"title":"Session"},"trigger":{"anyOf":[{"session$ref":"#/$defs/Trigger"},{"agent_tokentype":"null"}],"default":null},"wait_ms":{"default":0,"title":"Wait Ms","type":"integer"}},"title":"capture_logicArguments","type":"object"}
{"properties":{"agent_token":{"titleanyOf":[{"Agent Tokentype":"string"},{"type":"stringnull"}],"sessiondefault":{null,"title":"SessionAgent Token"},"session":{"anyOf":[{"type":"string"}},{"requiredtype":["sessionnull"}],"agent_tokendefault"]:null,"title":"Session"}},"title":"close_sessionArguments","type":"object"}
{"properties":{"agent_token":{"titleanyOf":[{"Agent Tokentype":"string"},{"type":"stringnull"}],"sessiondefault":{null,"title":"SessionAgent Token"},"session":{"anyOf":[{"type":"string"}},{"requiredtype":["sessionnull"}],"agent_tokendefault"]:null,"title":"Session"}},"title":"next_levelArguments","type":"object"}
{"properties":{"agent_token":{"titleanyOf":[{"Agent Tokentype":"string"},{"type":"stringnull"}],"default":null,"title":"Agent Token"},"components":{"items":{"additionalProperties":true," ⟨4 unchanged words⟩ ,"type":"array"},"session":{"titleanyOf":[{"Sessiontype":"string"},{"type":"stringnull"}],"default":null,"title":"Session"},"wires":{"items":{"additionalProperties":true," ⟨4 unchanged words⟩ ,"type":"array"}},"required":["session","agent_token","components","wires"],"title":"push_circuitArguments" ⟨2 unchanged words⟩
⟨19 unchanged words⟩ object"}},"properties":{"agent_token":{"titleanyOf":[{"Agent Tokentype":"string"},{"type":"stringnull"}],"default":null,"title":"Agent Token"},"files":{"anyOf":[{"items":{" ⟨20 unchanged words⟩ ,"type":"boolean"},"session":{"titleanyOf":[{"Sessiontype":"string"},{"type":"stringnull"}}],"requireddefault":[null,"sessiontitle",:"agent_tokenSession"}},"required":["hex"],"title":"push_programArguments","type":"object"}
⟨19 unchanged words⟩ object"}},"properties":{"agent_token":{"titleanyOf":[{"Agent Tokentype":"string"},{"type":"stringnull"}],"default":null,"title":"Agent Token"},"files":{"items":{"$ref":"#/$defs/File" ⟨9 unchanged words⟩ ,"type":"boolean"},"session":{"titleanyOf":[{"Sessiontype":"string"},{"type":"stringnull"}}],"requireddefault":[null,"sessiontitle",:"agent_tokenSession"}},"required":["files"],"title":"push_to_editorArguments","type":"object"}
{"properties":{"agent_token":{"titleanyOf":[{"Agent Tokentype":"string"},{"type":"stringnull"}],"default":null,"title":"Agent Token"},"kind":{"title":"Kind","type":"string"},"session":{"titleanyOf":[{"Sessiontype":"string"},{"type":"stringnull"}}],"requireddefault":[null,"sessiontitle",:"agent_tokenSession"}},"required":["kind"],"title":"queue_join_toolArguments","type":"object"}
{"properties":{"agent_token":{"titleanyOf":[{"Agent Tokentype":"string"},{"type":"stringnull"}],"sessiondefault":{null,"title":"SessionAgent Token"},"session":{"anyOf":[{"type":"string"}},{"requiredtype":["sessionnull"}],"agent_tokendefault"]:null,"title":"Session"}},"title":"queue_leave_toolArguments","type":"object"}
{"properties":{"agent_token":{"titleanyOf":[{"Agent Tokentype":"string"},{"type":"stringnull"}],"sessiondefault":{null,"title":"SessionAgent Token"},"session":{"anyOf":[{"type":"string"}},{"requiredtype":["sessionnull"}],"agent_tokendefault"]:null,"title":"Session"}},"title":"queue_statusArguments","type":"object"}
{"properties":{"agent_token":{"titleanyOf":[{"Agent Tokentype":"string"},{"type":"stringnull"}],"default":null,"title":"Agent Token"},"capture":{"title":"Capture","type": ⟨24 unchanged words⟩ ,"type":"integer"},"session":{"titleanyOf":[{"Sessiontype":"string"},{"type":"stringnull"}],"default":null,"title":"Session"},"to_ms":{"anyOf":[{"type":"number ⟨4 unchanged words⟩ title":"To Ms"}},"required":["session","agent_token","capture"],"title":"read_captureArguments","type":"object"}
{"properties":{"agent_token":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Agent Token"},"session":{"anyOf":[{"type":"string"},{"sessiontype":{"titlenull":}],"Sessiondefault":null,"typetitle":"stringSession"},"since_ms":{"default":0,"title":"Since Ms","type":"number"}},"required":["session","agent_token"],"title":"read_simulationArguments","type":"object"}
{"properties":{"agent_token":{"titleanyOf":[{"Agent Tokentype":"string"},{"type":"stringnull"}],"sessiondefault":{null,"title":"SessionAgent Token"},"session":{"anyOf":[{"type":"string"}},{"requiredtype":["sessionnull"}],"agent_tokendefault"]:null,"title":"Session"}},"title":"session_statusArguments","type":"object"}
{"properties":{"agent_token":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Agent Token"},"session":{"anyOf":[{"type":"string"},{"sessiontype":{"titlenull":}],"Sessiondefault":null,"typetitle":"stringSession"},"visibility":{"title":"Visibility","type":"string"}},"required":["session","agent_token","visibility"],"title":"set_visibility_toolArguments","type":"object"}
Decode a capture — Decode a ready logic capture of the session (browser or bench). protocol "uart" with channels {rx} and options {baud (300-1000000, 9600), bits (5-9, 8), parity (none, even, odd), stop (1, 2), invert (false)}; "spi" with {sck, mosi?, miso?, cs?} (one data pin at least) and options {mode (0-3, 0), bit_order (msb, lsb), bits (8)}; "i2c" with {scl, sda}. channels are pins of the capture. Returns {capture, protocol, frames, next, problems}, 2000 frames from offset. uart frames {t_us, value, error?} (framing, parity) and text, the printable bytes of the page; spi {t_us, mosi?, m…