Skip to content

Claude Desktopでの利用時にJSONパースエラーが発生する問題について #2

@kitposition

Description

@kitposition

toio-mcpをClaude DesktopのMCPサーバーとして利用しようとしましたが、JSONパースエラーが発生しました。対症療法的に解決はしたのですが根本原因の究明には至っていないので報告します。

OS: Windows11
Python
・最初に試したバージョン: 3.13
・現在動作確認が取れたバージョン: 3.11.0rc2
・uv 0.7.2
・bleak 0.22.3

〇問題の概要:
Claude Desktopからtoio-mcpを起動すると、サーバープロセスとの初期接続は成功するものの、その後の通信 (例:tools/listなど) においてJSONパースエラー (Unexpected token 'I', ... INFO ... is not valid JSON 等) が多数発生し、最終的にServer disconnectedとなり、正常に利用できません。

〇経緯と試したこと:
1.問題発生当初はPython 3.13を使用していましたが、bleakを使った簡単なBluetoothスキャンテストを実行したところ、TypeError: tp_basicsize ... という互換性エラーが発生しました。

2.そこでPythonを3.11.0rc2にダウングレードして再テストしたところ、正常にtoioコアキューブを検出できました。

3.しかし、Python 3.11環境でtoio-mcpを起動してもJSONパースエラーが再発しました。

4.この時点で、標準出力 (stdout) に本来流れるべきではないログ情報などが出力された結果JSONパースエラーを起こしている可能性があるとのAIの判断がありましたがその原因は不明。応急対策として、main.pyおよびserver.py内にあるログレベルを設定している複数箇所をすべてERRORレベルまで引き上げてログ自体を抑止しました。その結果、パースエラーが発生しなくなり、期待通り動作することが確認できました。

〇考えられる原因(AIの推測による):
toio-mcpのコード、または依存ライブラリ (bleak等) のどこかで、ログレベルに関わらず標準出力 (stdout) にログ情報などが出力されている箇所がある。
あるいは、Claude Desktop側が、標準エラー出力 (stderr) に出力されたログ情報まで読み込んでしまい、JSON パースエラーを引き起こしている。

お手数ですがご確認のほど、よろしくお願いいたします。

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions