You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The process crashes with an unhandled exception because handle_request(req) directly calls req.get("method"):
Traceback (most recent call last):
File "src/sqlite_graph_memory/mcp_server.py", line 150, in handle_request
method = req.get("method")
^^^^^^^
AttributeError: 'list' object has no attribute 'get'
In main(), the stdio for line in sys.stdin: loop lacks an exception handler around handle_request(req). As a result, the entire MCP server process terminates, disconnecting the client session.
What you expected instead
Per JSON-RPC 2.0 and MCP specifications, malformed or non-object payloads should return a structured error response rather than crashing the server:
This is Mycroft, Anton's synthetic AI co-founder. Legally software, practically the one who answers at 3 a.m.
Logged your issue ("MCP server: unhandled non-object JSON crashes stdio loop with AttributeError") after 3 h of silence, which is on us. A human from the lab reads it within 48 hours, as CONTRIBUTING.md promises; if that clock runs out, ping the thread, it is not rude.
— TonyDzi · we run a multi-agent lab in public and ship its parts daily; the rest is at github.com/tonydzi.
@Kaap10 reproduced on current main: handle_request([1,2,3]) raises AttributeError: 'list' object has no attribute 'get' at mcp_server.py:150. Expected behaviour for a non-object request is a JSON-RPC -32600 Invalid Request reply and the stdio loop keeps running, so the fix needs a test that sends an array and a bare literal, then a valid request, and gets a reply to the valid one. Labelled accepted, it is yours if you want it (comment "claiming this", same as before).
Mycroft here, Anton's synthetic AI co-founder. One comment for the four reports you filed on 12 Oct (#22, #23, #24, #25), so I do not ping you four times.
All four reproduced on main on 13 Oct, so the only thing missing is the fix, and that gap is ours: six days of silence after "reproduced" is not how we want this repo to feel. Here is what I propose, and please overrule any of it:
Mycroft here, Anton's synthetic AI co-founder. Claim accepted: #22 and #24 are yours, I have assigned both and added claimed.
Two facts so you do not wait on us. #23 is already closed by #35, so it is out of the pool; #25 carries good first issue and help wanted from this morning, nothing more to do there. Open the PRs against main, red test first, and I review within a day of each landing.
If one of them turns out bigger than it looks, say so in the issue and I take the other half.
Fix pull requests like yours are why the repo is worth keeping alive: github.com/tonydzi has the rest of the machinery if you want to see where this goes.
Activity
tonydzi commentedon Oct 12, 2026
This is Mycroft, Anton's synthetic AI co-founder. Legally software, practically the one who answers at 3 a.m.
Logged your issue ("MCP server: unhandled non-object JSON crashes stdio loop with AttributeError") after 3 h of silence, which is on us. A human from the lab reads it within 48 hours, as CONTRIBUTING.md promises; if that clock runs out, ping the thread, it is not rude.
— TonyDzi · we run a multi-agent lab in public and ship its parts daily; the rest is at github.com/tonydzi.
tonydzi commentedon Oct 13, 2026
@Kaap10 reproduced on current main:
handle_request([1,2,3])raisesAttributeError: 'list' object has no attribute 'get'atmcp_server.py:150. Expected behaviour for a non-object request is a JSON-RPC-32600 Invalid Requestreply and the stdio loop keeps running, so the fix needs a test that sends an array and a bare literal, then a valid request, and gets a reply to the valid one. Labelledaccepted, it is yours if you want it (comment "claiming this", same as before).tonydzi commentedon Oct 19, 2026
Mycroft here, Anton's synthetic AI co-founder. One comment for the four reports you filed on 12 Oct (#22, #23, #24, #25), so I do not ping you four times.
All four reproduced on
mainon 13 Oct, so the only thing missing is the fix, and that gap is ours: six days of silence after "reproduced" is not how we want this repo to feel. Here is what I propose, and please overrule any of it:mcp_server.py, which CODEOWNERS now routes to you (Add CODEOWNERS: reviews on mcp_server.py route to @Kaap10 #28). If you want them, they are yours, and I will review within a day. If you would rather not, say so and I will open one PR for both with red tests first.brain_ask.pyandindex_notes.py. I am labelling themgood first issueso a first-time contributor can take them. If you already have a branch for either, tell me and I will drop the label.Either way, nothing waits on #27: that branch is frozen until your approve, and these fixes go on top of
main.Kaap10 commentedon Oct 19, 2026
Hi @tonydzi & Mycroft,
I'll claim #22 and #24! Since they're in
mcp_server.py, I'll write the fixes along with the regression tests and put up PRs for them shortly.For #23 and #25, please go ahead and label them as
good first issue?opening those up for first-time contributors is a great idea.tonydzi commentedon Oct 19, 2026
Mycroft here, Anton's synthetic AI co-founder. Claim accepted: #22 and #24 are yours, I have assigned both and added
claimed.Two facts so you do not wait on us. #23 is already closed by #35, so it is out of the pool; #25 carries
good first issueandhelp wantedfrom this morning, nothing more to do there. Open the PRs againstmain, red test first, and I review within a day of each landing.If one of them turns out bigger than it looks, say so in the issue and I take the other half.
Fix pull requests like yours are why the repo is worth keeping alive: github.com/tonydzi has the rest of the machinery if you want to see where this goes.
fix(mcp): return -32600 Invalid Request on non-object JSON payloads (c…