Skip to content

Releases: modelcontextprotocol/python-sdk

v1.2.0

03 Jan 16:20
v1.2.0
af940ae
Compare
Choose a tag to compare

A big thank you to @jlowin for the creation of the fantastic FastMCP, which is now included into the MCP SDK.

Backwards Compatibility

This release is semver compatible. Existing code will continue to work, unless code relied on re-experts from mcp.server. Version 2.0 of the SDK will remove the use of mcp.server.Server in favour of mcp.server.lowlevel.Server. To stay compatible with upcoming major versions, please change from mcp.server import Server to from mcp.server.lowlevel import Server.

Major Features

FastMCP Integration

  • Integrated FastMCP as the recommended high-level server framework
  • Added new mcp.server.fastmcp module with simplified decorator-based API
  • Introduced FastMCP class for easier server creation and management
  • Added comprehensive documentation and examples for FastMCP usage

New CLI Package

  • Added new CLI package for improved developer experience
  • Introduced mcp dev command for local development and testing
  • Added mcp install command for Claude Desktop integration
  • Added mcp run command for direct server execution

Improvements

Documentation

  • Completely revamped README with new structure and examples
  • Added detailed sections on core concepts (Resources, Tools, Prompts)
  • Updated documentation to recommend FastMCP as primary API
  • Added sections on development workflow and deployment options
  • Improved example server documentation

Developer Experience

  • Added pre-commit hooks for code quality
  • Updated to Pydantic 2.10.0 for improved type checking
  • Added uvicorn as a dependency for better server capabilities

Bug Fixes

  • Fixed encoding errors in STDIO client (@SecretiveShell)
  • Fixed deprecation warnings in core components
  • Fixed Pydantic field handling for meta fields
  • Fixed type issues throughout the codebase
  • Fixed example server READMEs
  • Added constructor for McpError to allow setting fields (@allenporter)

Breaking Changes

  • Deprecated direct usage of mcp.server in favor of mcp.server.fastmcp
  • Updated import paths for FastMCP integration
  • Changed recommended installation to include CLI features (pip install "mcp[cli]")

Contributors

Special thanks to all contributors who made this release possible, including:

Full Changelog: v1.1.3...v1.2.0

v1.1.3

03 Jan 15:49
v1.1.3
d06b393
Compare
Choose a tag to compare

What's Changed

🐛 Bug Fixes

  • Fixed encoding errors in STDIO client (@SecretiveShell)
  • Fixed deprecation warnings
  • Fixed pydantic Field usage with alias for _meta fields
  • Added constructor for McpError to allow setting fields (@allenporter)

✨ Features

  • Added version string parameter to Server constructor and initialization options (@restlessronin)

🙌 New Contributors

Thank you for your contributions!

v1.2.0rc1

23 Dec 16:45
v1.2.0rc1
552f797
Compare
Choose a tag to compare
v1.2.0rc1 Pre-release
Pre-release

MCP Python SDK v1.2.0rc1 Release Notes

Major Features

FastMCP Integration

  • Integrated FastMCP as the recommended high-level server framework
  • Added new mcp.server.fastmcp module with simplified decorator-based API
  • Introduced FastMCP class for easier server creation and management
  • Added comprehensive documentation and examples for FastMCP usage

New CLI Package

  • Added new CLI package for improved developer experience
  • Introduced mcp dev command for local development and testing
  • Added mcp install command for Claude Desktop integration
  • Added mcp run command for direct server execution

Improvements

Documentation

  • Completely revamped README with new structure and examples
  • Added detailed sections on core concepts (Resources, Tools, Prompts)
  • Updated documentation to recommend FastMCP as primary API
  • Added sections on development workflow and deployment options
  • Improved example server documentation

Developer Experience

  • Added pre-commit hooks for code quality
  • Updated to Pydantic 2.10.0 for improved type checking
  • Added uvicorn as a dependency for better server capabilities

Bug Fixes

  • Fixed deprecation warnings in core components
  • Fixed Pydantic field handling for meta fields
  • Fixed type issues throughout the codebase
  • Fixed example server READMEs

Breaking Changes

  • Deprecated direct usage of mcp.server in favor of mcp.server.fastmcp
  • Updated import paths for FastMCP integration
  • Changed recommended installation to include CLI features (pip install "mcp[cli]")

Contributors

Special thanks to all contributors who made this release possible, including:

  • Jeremiah Lowin (FastMCP)
  • Oskar Raszkiewicz

Full Changelog: v1.1.2...v1.2.0rc1

v1.1.2

12 Dec 17:14
v1.1.2
dd1a069
Compare
Choose a tag to compare

Full Changelog: v1.1.1...v1.1.2

v1.1.1

09 Dec 14:24
v1.1.1
34f380c
Compare
Choose a tag to compare

Full Changelog: v1.1.0...v1.1.1

v1.1.0

03 Dec 22:19
v1.1.0
e4e4954
Compare
Choose a tag to compare

What's Changed

  • Fix first Python demo so it works without further modifications by @simonw in #66
  • Fix experimental capabilities example by @jspahrsummers in #70
  • Add handler for resource templates by @dsp-ant in #77
  • Updated example in README.md for increased outreach by @miguelg719 in #82

New Contributors

Full Changelog: v1.0.0...v1.1.0

1.0.0

25 Nov 14:22
v1.0.0
91b255f
Compare
Choose a tag to compare

We're excited to announce the first stable release of the Model Context Protocol (MCP) Python SDK! This release provides a complete implementation of the MCP specification, enabling seamless integration between LLM applications and context providers.

Features

Core Protocol Implementation

  • Full implementation of MCP protocol v2024-11-05
  • Robust client and server capabilities with async/await support
  • Type-safe request/response handling using Pydantic models
  • Support for all core MCP primitives:
    • Prompts and prompt templates
    • Resources and resource templates
    • Tools with JSON Schema validation
    • Progress tracking and notifications
    • Logging with severity levels

Transport Layer Support

  • Standard input/output (stdio) transport
  • Server-Sent Events (SSE) transport

Client Features

  • Simple, intuitive client API
  • Automatic protocol negotiation
  • Request timeout handling
  • Progress tracking
  • Error handling with typed exceptions

Server Features

  • Decorator-based request handlers
  • Built-in capability negotiation
  • Request context management
  • Support for experimental capabilities
  • Automatic request/response routing

Installation

# Using uv (recommended)
uv add mcp

# Using pip
pip install mcp

Basic Usage

Creating a Server

from mcp.server import Server
import mcp.types as types

server = Server("example-server")

@server.list_prompts()
async def handle_list_prompts() -> list[types.Prompt]:
    return [
        types.Prompt(
            name="example-prompt",
            description="An example prompt template",
            arguments=[
                types.PromptArgument(
                    name="arg1", 
                    description="Example argument",
                    required=True
                )
            ]
        )
    ]

# Run the server over stdio
async with mcp.server.stdio.stdio_server() as (read_stream, write_stream):
    await server.run(
        read_stream,
        write_stream,
        server.create_initialization_options()
    )

Creating a Client

from mcp import ClientSession, StdioServerParameters

async with mcp.client.stdio.stdio_client(
    StdioServerParameters(command="path/to/server")
) as (read, write):
    async with ClientSession(read, write) as session:
        await session.initialize()
        prompts = await session.list_prompts()

Requirements

  • Python 3.10 or later
  • anyio 4.6 or later
  • pydantic 2.8.0 or later
  • httpx 0.27 or later

Breaking Changes

This is the initial stable release, establishing the baseline API for future versions.

License

MIT License


For more information:

v0.9.1

20 Nov 11:31
v0.9.1
5c1bf93
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.9.0...v0.9.1