Full-duplex WebSocket Transport for the Model Context Protocol (MCP) in Python and TypeScript/Node.js
This is a WebSocket transport library, not a production MCP server. The 11 example tools are scattered across multiple example files with inconsistent quality. Most tools have basic descriptions (10-50 chars, below the 194-char baseline) and minimal parameter documentation. No tool has documented output schemas. Several tools lack proper input validation guidance. The examples demonstrate transport capability but do not represent production-grade tool definitions. Tool naming is reasonable (calculate_bmi, reverse_string, get_stock_price) but descriptions are generic and lack context for LLM selection.
Adds two numbers together and returns the sum.
Adds two numbers together and returns the sum.
Server tool that triggers reverse sampling to ask the Client LLM for analysis.
Calculates Body Mass Index given weight (kg) and height (m).
Echo back input
Fetches real-time stock price data for a ticker symbol.
Returns host system information.
Output schemas not documented. No tool specifies what fields or structure it returns, forcing LLMs to guess downstream field names and types.
Descriptions are too short (10-65 chars vs 194-char baseline). Most lack context for when/why to use the tool or what it returns. E.g., 'Echo back input' and 'Returns host system information' are vague.
get_system_info has empty input schema (no properties). Unclear what parameters it accepts or whether it requires any input.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 52 | <=2025-11-25 | v2 |
Server tool that streams progress notifications.
Reverses an input string.
Server tool that streams progress notifications for a download task.
Summarizes input text to a concise headline.
No error handling guidance. Tools do not document what errors can occur, whether they are retryable, or what the LLM should do on failure.
Duplicate tool names. 'add_numbers' appears twice (TypeScript and Python examples) with slightly different schemas (number vs float). This creates ambiguity for LLM tool selection.