ab24c34d89
- pre_parse_json leaves a string alone when json.loads refuses it with something other than JSONDecodeError (over-long integer, deep nesting), so validation rejects it as a bad argument instead of it surfacing as a crash with a traceback per request. - convert_result skips output-schema validation for a returned CallToolResult(is_error=True); an error result has no structured content to check, and the author's message now reaches the client as written. - read_resource checks that Resource.read() returned str or bytes, so a mistyped custom resource is logged as a crash and answered with -32603 rather than "Invalid request parameters" with no log record. - Docs and examples that still said "raise any exception and the model reads it" now say ToolError; deprecated.md lists the deprecated FuncMetadata helper; docstrings spell out the MCPError carve-out and the nested-crash __cause__. - Two tests tightened: the prompt argument-validation test proves the body never ran, and the invalid-types check asserts on validate_arguments.
MCP Everything Server
A comprehensive MCP server implementing all protocol features for conformance testing.
Overview
The Everything Server is a reference implementation that demonstrates all features of the Model Context Protocol (MCP). It is designed to be used with the MCP Conformance Test Framework to validate MCP client and server implementations.
Installation
From the python-sdk root directory:
uv sync --frozen
Usage
Running the Server
Start the server with default settings (port 3001):
uv run -m mcp_everything_server
Or with custom options:
uv run -m mcp_everything_server --port 3001 --log-level DEBUG
The server will be available at: http://localhost:3001/mcp
Command-Line Options
--port- Port to listen on (default: 3001)--log-level- Logging level: DEBUG, INFO, WARNING, ERROR, CRITICAL (default: INFO)
Running Conformance Tests
See the MCP Conformance Test Framework for instructions on running conformance tests against this server.