Skip to content

Latest commit

 

History

History
158 lines (119 loc) · 6.79 KB

File metadata and controls

158 lines (119 loc) · 6.79 KB

Changelog

[1.3.0] - 2025-02-20

Breaking Changes

  • Context API Changes: The Context logging methods (info, debug, warning, error) are now async and must be awaited. (#172)
  • Resource Response Format: Standardized resource response format to return both content and MIME type. Method read_resource() now returns a tuple of (content, mime_type) instead of just content. (#170)

New Features

Lifespan Support

Added comprehensive server lifecycle management through the lifespan API:

@dataclass
class AppContext:
    db: Database

@asynccontextmanager
async def app_lifespan(server: FastMCP) -> AsyncIterator[AppContext]:
    try:
        await db.connect()
        yield AppContext(db=db)
    finally:
        await db.disconnect()

mcp = FastMCP("My App", lifespan=app_lifespan)

@mcp.tool()
def query_db(ctx: Context) -> str:
    db = ctx.request_context.lifespan_context["db"]
    return db.query()

(#203)

Async Resources

Added support for async resource functions in FastMCP:

@mcp.resource("users://{user_id}")
async def get_user(user_id: str) -> str:
    async with client.session() as session:
        response = await session.get(f"/users/{user_id}")
        return await response.text()

(#157)

Concurrent Request Handling

Made message handling concurrent, allowing multiple requests to be processed simultaneously. (#206)

Request Cancellation

Added support for canceling in-flight requests and cleaning up resources. (#167)

Server Instructions

Added support for the instructions field in server initialization, allowing servers to provide usage guidance. (#150)

Bug Fixes

  • Fixed progress reporting for first tool call by correcting progress_token handling (#176)
  • Fixed server crash when using debug logging (#158)
  • Fixed resource template handling in FastMCP server (#137)
  • Fixed MIME type preservation in resource responses (#170)
  • Fixed documentation for environment variables in CLI commands (#149)
  • Fixed request ID preservation in JSON-RPC responses (#205)

Dependency Updates

  • Relaxed version constraints for better compatibility:
    • pydantic: Changed from >=2.10.1,<3.0.0 to >=2.7.2,<3.0.0
    • pydantic-settings: Changed from >=2.6.1 to >=2.5.2
    • uvicorn: Changed from >=0.30 to >=0.23.1 (#180)

Examples

  • Added a simple chatbot example client to demonstrate SDK usage (#98)

Client Improvements

  • Added client support for sampling, list roots, and ping requests (#218)
  • Added flexible type system for tool result returns (#222)

Compatibility and Platform Support

  • Updated URL validation to allow file and other nonstandard schemas (#68fcf92)
  • Force stdin/stdout encoding to UTF-8 for cross-platform compatibility (#d92ee8f)

Internal Improvements

  • Improved type annotations for better IDE support (#181)
  • Added comprehensive tests for SSE transport (#151)
  • Updated types to match 2024-11-05 MCP schema (#165)
  • Refactored request and notification handling for better code organization (#166)

[1.2.1] - 2024-01-27

Added

  • Support for async resources
  • Example and test for parameter descriptions in FastMCP tools

Fixed

  • MCP install command with environment variables
  • Resource template handling in FastMCP server (#129)
  • Package in the generated MCP run config (#128)
  • FastMCP logger debug output
  • Handling of strings containing numbers in FastMCP (@sd2k, #142)

Changed

  • Refactored to use built-in typing.Annotated instead of typing_extensions
  • Updated uv.lock
  • Added .DS_Store to gitignore

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: https://github.com/modelcontextprotocol/python-sdk/compare/v1.1.2...v1.2.0rc1