A Python client library for the Model Context Protocol (MCP) that enables communication with MCP servers via multiple transport types (stdio, HTTP, WebSocket, SSE)
This is a test/demo server, not a production MCP server. The 5 tools are defined only as bare JSON objects in tests/advanced_test_server.py with minimal structure. No input schemas are visible in the source code, tools list only name and description. The server is demonstrating MCP protocol features (sampling, elicitation, roots, notifications) but does NOT expose realistic, production-quality tool definitions. Tools appear to be triggers for testing client-side MCP features rather than functional tools for agent use.
Ask client to elicit info
Ask client for its roots
Send list_changed notifications
Send resource update notification
Ask client to sample a message
NO INPUT SCHEMAS VISIBLE. All 5 tools lack inputSchema definitions. Code shows only {"name": "...", "description": "..."} with no inputSchema key.
DESCRIPTIONS ARE TRIVIAL (10 - 25 chars). All 5 tools have descriptions under 50 characters with no detail on what the tool actually does, what parameters it accepts, when to call it, or what it returns. These descriptions provide almost no LLM guidance.
NAMING LACKS CLARITY & ACTION VERBS. Tool names start with 'trigger_' (a generic action) rather than domain-specific verbs like 'sample_', 'elicit_', or 'list_'. 'trigger_sampling' is vague about what happens when called, does it request sampling from the client? Start the sampling process? Unclear naming confuses both LLMs and humans.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 12 | 2025-06-18+ | v2 |
| 2026-03-09 | F | 20 | 2024-11-05+ | v1 |
NO PARAMETER DESCRIPTIONS OR SCHEMAS. The tools/list response shows only name and description, no inputSchema, no parameters, no types, no constraints. An LLM cannot understand what arguments each tool accepts or what values are valid.
NO OUTPUT SCHEMAS DOCUMENTED. The tools/call handler logs 'Client sampled: ...' and partial responses but provides no formal output schema. LLMs cannot predict what fields or data structure the tool returns.