Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions .githooks/pre-push
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
#!/bin/sh
# Pre-push hook: run frontend tests before pushing

echo "Running frontend tests..."
npm run test:run 2>&1
TEST_EXIT=$?

if [ $TEST_EXIT -ne 0 ]; then
echo ""
echo "❌ Frontend tests failed. Push aborted."
echo "Fix the failing tests and try again."
exit 1
fi

echo "✅ All frontend tests passed."
23 changes: 23 additions & 0 deletions KNOWN_BUGS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# Known Bugs

## MCP Servers

### Community MCP servers writing to stdout breaks stdio protocol

**Severity:** High
**Affects:** MCP test modal, MCP execution modal

Some community/marketplace MCP servers print human-readable messages (e.g. `🚀 Hypertool MCP is ready!`) to **stdout** on startup instead of reserving stdout exclusively for JSON-RPC messages. This violates the MCP stdio protocol specification.

**Symptoms:**
- Test modal hangs or shows "process closed stdout unexpectedly"
- MCP client receives non-JSON output and cannot parse the initialize response

**Known affected servers:**
- `@toolprint/hypertool-mcp` — prints `🚀 Hypertool MCP is ready!` to stdout

**Root cause:** The MCP stdio transport requires that stdout is used *only* for JSON-RPC messages. Any other output (logging, greeting banners, debug info) must go to stderr. This is a bug in the MCP server implementations, not in this application.

**Workaround:** Use well-tested MCP servers that follow the protocol correctly, such as the official `@modelcontextprotocol/server-everything` reference server.

**Potential improvement:** Detect non-JSON output on stdout and surface a clearer error message to the user explaining the server is misbehaving.
Loading
Loading