MCP server corrupts stdio stream with console.log output

Ouverte Adaptée aux débutants
#21 1 commentaire 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Évaluation

Difficulté
2/5
Temps estimé
1-3 heures
Accessibilité débutants
68/100
Type d'issue
Bug
Clarté
Clairement spécifiée
Activité
À l'abandon
Stack technique
typescript
Domaine
api, backend

Piste de recherche

Commencez par rechercher les occurrences de console.log indiquées dans les quatre fichiers concernés—src/embeddings.ts, src/indexer.ts, src/conversations.ts et src/index.ts. Remplacez la sortie de débogage comme indiqué, puis testez le chemin MCP stdio et vérifiez que stdout ne contient que des messages JSON-RPC, tandis que la sortie de débogage est envoyée vers stderr.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

Bug

The MCP server uses console.log() for debug output in several source files. Since MCP servers communicate with the host over stdio JSON-RPC, any non-JSON output on stdout corrupts the protocol stream.

This manifests as a parse error in Claude Code:

Unexpected identifier Indexer

How it happens

Normal MCP stdio traffic looks like this:

Host → Server:

{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"search_memory","arguments":{"query":"console log fix"}}}

Server → Host (expected):

{"jsonrpc":"2.0","id":1,"result":{"content":[{"type":"text","text":"..."}]}}

But with console.log calls in the code, what actually arrives on stdout is:

[Indexer] Starting full index rebuild...
[Indexer] Parsing journal...
[Indexer] Indexing 18 items...
{"jsonrpc":"2.0","id":1,"result":{"content":[{"type":"text","text":"..."}]}}

The host reads line by line and tries to JSON.parse each one. The first line it sees is [Indexer] Starting full index rebuild... — not valid JSON — so the parser throws:

Unexpected identifier 'Indexer'

The actual response that follows never gets processed correctly because the stream is now out of sync.

Affected files

  • src/embeddings.ts (1 occurrence)
  • src/indexer.ts (9 occurrences)
  • src/conversations.ts (10 occurrences)
  • src/index.ts (2 occurrences)

Fix

Replace all console.log( with console.error( in these files. stderr is not part of the MCP stdio pipe and is safe for debug output.


This issue was identified and filed with the help of Claude Code.

Langage dominant
TypeScript
Étoiles
119
Forks
6
Merge moyen
1 h 32 min
PR mergées (30 j)
2

Guide de contribution

Aucun guide de contribution indexé pour ce dépôt

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de ascorbic/macrodata

Toutes les issues de ascorbic/macrodata

Issues similaires

Plus d'issues TypeScript

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.