mirror of
https://github.com/tadata-org/fastapi_mcp.git
synced 2025-04-13 23:32:11 +03:00
update readme and changelog
This commit is contained in:
27
CHANGELOG.md
27
CHANGELOG.md
@@ -5,6 +5,31 @@ All notable changes to this project will be documented in this file.
|
|||||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
||||||
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||||
|
|
||||||
|
## [Unreleased]
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
- Complete refactor from function-based API to a new class-based API with `FastApiMCP`
|
||||||
|
- Explicit separation between MCP instance creation and mounting with `mcp = FastApiMCP(app)` followed by `mcp.mount()`
|
||||||
|
- FastAPI-native approach for transport providing more flexible routing options
|
||||||
|
- Updated minimum MCP dependency to v1.6.0
|
||||||
|
|
||||||
|
### Added
|
||||||
|
- Support for deploying MCP servers separately from API service
|
||||||
|
- Support for "refreshing" with `setup_server()` when dynamically adding FastAPI routes. Fixes [Issue #19](https://github.com/tadata-org/fastapi_mcp/issues/19)
|
||||||
|
- Endpoint filtering capabilities through new parameters:
|
||||||
|
- `include_operations`: Expose only specific operations by their operation IDs
|
||||||
|
- `exclude_operations`: Expose all operations except those with specified operation IDs
|
||||||
|
- `include_tags`: Expose only operations with specific tags
|
||||||
|
- `exclude_tags`: Expose all operations except those with specific tags
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
- FastAPI-native approach for transport. Fixes [Issue #28](https://github.com/tadata-org/fastapi_mcp/issues/28)
|
||||||
|
- Numerous bugs in OpenAPI schema to tool conversion, addressing [Issue #40](https://github.com/tadata-org/fastapi_mcp/issues/40) and [Issue #45](https://github.com/tadata-org/fastapi_mcp/issues/45)
|
||||||
|
|
||||||
|
### Removed
|
||||||
|
- Function-based API (`add_mcp_server`, `create_mcp_server`, etc.)
|
||||||
|
- Custom tool support via `@mcp.tool()` decorator
|
||||||
|
|
||||||
## [0.1.8]
|
## [0.1.8]
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
@@ -73,4 +98,4 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||||||
- Claude integration for easy installation and use
|
- Claude integration for easy installation and use
|
||||||
- API integration that automatically makes HTTP requests to FastAPI endpoints
|
- API integration that automatically makes HTTP requests to FastAPI endpoints
|
||||||
- Examples directory with sample FastAPI application
|
- Examples directory with sample FastAPI application
|
||||||
- Basic test suite
|
- Basic test suite
|
||||||
50
README.md
50
README.md
@@ -110,6 +110,56 @@ mcp = FastApiMCP(
|
|||||||
mcp.mount()
|
mcp.mount()
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### Customizing Exposed Endpoints
|
||||||
|
|
||||||
|
You can control which FastAPI endpoints are exposed as MCP tools using Open API operation IDs or tags:
|
||||||
|
|
||||||
|
```python
|
||||||
|
from fastapi import FastAPI
|
||||||
|
from fastapi_mcp import FastApiMCP
|
||||||
|
|
||||||
|
app = FastAPI()
|
||||||
|
|
||||||
|
# Only include specific operations
|
||||||
|
mcp = FastApiMCP(
|
||||||
|
app,
|
||||||
|
include_operations=["get_user", "create_user"]
|
||||||
|
)
|
||||||
|
|
||||||
|
# Exclude specific operations
|
||||||
|
mcp = FastApiMCP(
|
||||||
|
app,
|
||||||
|
exclude_operations=["delete_user"]
|
||||||
|
)
|
||||||
|
|
||||||
|
# Only include operations with specific tags
|
||||||
|
mcp = FastApiMCP(
|
||||||
|
app,
|
||||||
|
include_tags=["users", "public"]
|
||||||
|
)
|
||||||
|
|
||||||
|
# Exclude operations with specific tags
|
||||||
|
mcp = FastApiMCP(
|
||||||
|
app,
|
||||||
|
exclude_tags=["admin", "internal"]
|
||||||
|
)
|
||||||
|
|
||||||
|
# Combine operation IDs and tags (include mode)
|
||||||
|
mcp = FastApiMCP(
|
||||||
|
app,
|
||||||
|
include_operations=["user_login"],
|
||||||
|
include_tags=["public"]
|
||||||
|
)
|
||||||
|
|
||||||
|
mcp.mount()
|
||||||
|
```
|
||||||
|
|
||||||
|
Notes on filtering:
|
||||||
|
- You cannot use both `include_operations` and `exclude_operations` at the same time
|
||||||
|
- You cannot use both `include_tags` and `exclude_tags` at the same time
|
||||||
|
- You can combine operation filtering with tag filtering (e.g., use `include_operations` with `include_tags`)
|
||||||
|
- When combining filters, a greedy approach will be taken. Endpoints matching either criteria will be included
|
||||||
|
|
||||||
### Deploying Separately from Original FastAPI App
|
### Deploying Separately from Original FastAPI App
|
||||||
|
|
||||||
You are not limited to serving the MCP on the same FastAPI app from which it was created.
|
You are not limited to serving the MCP on the same FastAPI app from which it was created.
|
||||||
|
|||||||
Reference in New Issue
Block a user