-
Notifications
You must be signed in to change notification settings - Fork 292
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
2 changed files
with
149 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,148 @@ | ||
# Changelog | ||
|
||
## [1.3.0rc1] - 2025-02-13 | ||
|
||
### Breaking Changes | ||
|
||
- **Context API Changes**: The Context logging methods (info, debug, warning, error) are now async and must be awaited. ([#172](https://github.com/modelcontextprotocol/python-sdk/pull/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](https://github.com/modelcontextprotocol/python-sdk/pull/170)) | ||
|
||
### New Features | ||
|
||
#### Lifespan Support | ||
Added comprehensive server lifecycle management through the lifespan API: | ||
```python | ||
@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](https://github.com/modelcontextprotocol/python-sdk/pull/203)) | ||
|
||
#### Async Resources | ||
Added support for async resource functions in FastMCP: | ||
```python | ||
@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](https://github.com/modelcontextprotocol/python-sdk/pull/157)) | ||
|
||
#### Concurrent Request Handling | ||
Made message handling concurrent, allowing multiple requests to be processed simultaneously. ([#206](https://github.com/modelcontextprotocol/python-sdk/pull/206)) | ||
|
||
#### Request Cancellation | ||
Added support for canceling in-flight requests and cleaning up resources. ([#167](https://github.com/modelcontextprotocol/python-sdk/pull/167)) | ||
|
||
#### Server Instructions | ||
Added support for the `instructions` field in server initialization, allowing servers to provide usage guidance. ([#150](https://github.com/modelcontextprotocol/python-sdk/pull/150)) | ||
|
||
### Bug Fixes | ||
|
||
- Fixed progress reporting for first tool call by correcting progress_token handling ([#176](https://github.com/modelcontextprotocol/python-sdk/pull/176)) | ||
- Fixed server crash when using debug logging ([#158](https://github.com/modelcontextprotocol/python-sdk/pull/158)) | ||
- Fixed resource template handling in FastMCP server ([#137](https://github.com/modelcontextprotocol/python-sdk/pull/137)) | ||
- Fixed MIME type preservation in resource responses ([#170](https://github.com/modelcontextprotocol/python-sdk/pull/170)) | ||
- Fixed documentation for environment variables in CLI commands ([#149](https://github.com/modelcontextprotocol/python-sdk/pull/149)) | ||
- Fixed request ID preservation in JSON-RPC responses ([#205](https://github.com/modelcontextprotocol/python-sdk/pull/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](https://github.com/modelcontextprotocol/python-sdk/pull/180)) | ||
|
||
### Examples | ||
|
||
- Added a simple chatbot example client to demonstrate SDK usage ([#98](https://github.com/modelcontextprotocol/python-sdk/pull/98)) | ||
|
||
### Internal Improvements | ||
|
||
- Improved type annotations for better IDE support ([#181](https://github.com/modelcontextprotocol/python-sdk/pull/181)) | ||
- Added comprehensive tests for SSE transport ([#151](https://github.com/modelcontextprotocol/python-sdk/pull/151)) | ||
- Updated types to match 2024-11-05 MCP schema ([#165](https://github.com/modelcontextprotocol/python-sdk/pull/165)) | ||
- Refactored request and notification handling for better code organization ([#166](https://github.com/modelcontextprotocol/python-sdk/pull/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](https://github.com/jlowin/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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters