Repository navigation
docs: align the README with the code - #12
Merged
Merged
Conversation
abcsnowwolf
commented
Aug 16, 2026
Contributor
- drop the claims the code does not back: resources are not served, tools/list schemas are advertised but never validated against, and Arduino IDE is not usable without a library.properties
- document the call(JsonDocument, bool&) overload, the isError result flag, the -32603 an escaping exception becomes, Tool::outputSchema, and the rvalue RegisterTool overload
- replace the "never stalls the async TCP task" promise with the two cases that do occupy it, in a new "Where a tool call actually runs" section: the bounded fast-path wait, and the inline fallback when the worker cannot start
- complete the request-handling table with the -32700, -32600, 404, 505, and 500 paths, and state that protocol failures after a valid envelope are HTTP 200 carrying a JSON-RPC error
- qualify the 505: it precedes the fast path whenever a worker exists, so only a missing worker lets an HTTP/1.0 tools/call through
- scope the MCP-Protocol-Version header to JSON-RPC responses; the 405 and 202 replies carry only what ESPAsyncWebServer emits, plus Allow: POST on the 405
- spell out the DNS-rebinding guard, which also requires Host, an http:// origin and Origin == Host, and the mDNS slug rules behind .local
- fix the WiFi snippet to match the example, and add detect_leaks=0 to the ASan invocation so the documented command matches CI and does not fail on Linux
- list the native-omit-text and native-cov environments
* drop the claims the code does not back: resources are not served, tools/list schemas are advertised but never validated against, and Arduino IDE is not usable without a library.properties * document the call(JsonDocument, bool&) overload, the isError result flag, the -32603 an escaping exception becomes, Tool::outputSchema, and the rvalue RegisterTool overload * replace the "never stalls the async TCP task" promise with the two cases that do occupy it, in a new "Where a tool call actually runs" section: the bounded fast-path wait, and the inline fallback when the worker cannot start * complete the request-handling table with the -32700, -32600, 404, 505, and 500 paths, and state that protocol failures after a valid envelope are HTTP 200 carrying a JSON-RPC error * qualify the 505: it precedes the fast path whenever a worker exists, so only a missing worker lets an HTTP/1.0 tools/call through * scope the MCP-Protocol-Version header to JSON-RPC responses; the 405 and 202 replies carry only what ESPAsyncWebServer emits, plus Allow: POST on the 405 * spell out the DNS-rebinding guard, which also requires Host, an http:// origin and Origin == Host, and the mDNS slug rules behind <name>.local * fix the WiFi snippet to match the example, and add detect_leaks=0 to the ASan invocation so the documented command matches CI and does not fail on Linux * list the native-omit-text and native-cov environments
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.