Commit graph python-sdk/src/mcp/server
Author SHA1 Message Date
Pedro Rodrigues
6e418e62f9
Fix building auth metadata paths (#779)
Co-authored-by: Marcelo Trylesinski <marcelotryle@gmail.com>
2025-05-26 15:19:18 +02:00
Stephan Lensky
f2f4dbdcbd
Fix async callable object tools (#568) 2025-05-23 17:21:53 +01:00
ciccolo-anthropic
2ca2de767b
Change default binding from 0.0.0.0 to 127.0.0.1 to align with security recommendations (#738) 2025-05-20 20:23:19 +01:00
Vadym Barda
5a9340af71
fastmcp: allow passing Tool directly to FastMCP constructor (#699) 2025-05-19 19:52:02 -07:00
ihrpr
6353dd192c
Servers to accept older versions of client (#722)
Some checks failed
Main branch checks / checks (push) Has been cancelled
2025-05-15 18:33:31 +01:00
ihrpr
5d33861cad
Add progress notification callback for client (#721) 2025-05-15 17:45:58 +01:00
gaojingyu
1bdeed33c2
fix: Update @mcp.resource to use function documentation as default descrip… (#489) 2025-05-15 11:14:50 +01:00
Akshey D
9e66f7ce89
feat: add message to ProgressNotification (#435)
Co-authored-by: ihrpr <inna.hrpr@gmail.com>
2025-05-13 18:40:15 +01:00
Jeremiah Lowin
1cb740745d
Properly infer prefix for SSE messages (#659) 2025-05-12 21:29:17 +01:00
ihrpr
c6fb822c86
Fix streamable http sampling (#693)
Some checks failed
Main branch checks / checks (push) Has been cancelled
2025-05-12 18:31:35 +01:00
ihrpr
e4e119b324
Streamable HTTP - improve usability, fast mcp and auth (#641) 2025-05-08 20:43:25 +01:00
ihrpr
a027d75f60
Auth SSE simple server example (#610)
Co-authored-by: Peter Raboud <praboud@anthropic.com>
Co-authored-by: David Soria Parra <davidsp@anthropic.com>
Co-authored-by: Basil Hosmer <basil@anthropic.com>
Co-authored-by: Paul Carleton <paulc@anthropic.com>
Co-authored-by: Paul Carleton <paulcarletonjr@gmail.com>
2025-05-07 17:52:29 +01:00
yabea
a1307abded
Fix the issue of get Authorization header fails during bearer auth (#637)
Co-authored-by: yangben <yangben@zhihu.com>
2025-05-07 17:42:02 +01:00
ihrpr
9d99aee014
Revert "Add message queue for SSE messages POST endpoint (#459)" (#649) 2025-05-07 16:35:20 +01:00
tim-watcha
e0d443c95e
Add mount_path support for proper SSE endpoint routing with multiple FastMCP servers (#540)
Co-authored-by: ihrpr <inna.hrpr@gmail.com>
2025-05-07 11:14:25 +01:00
Akash D
3b1b213a96
Add message queue for SSE messages POST endpoint (#459) 2025-05-06 17:10:43 -07:00
ihrpr
58c5e7223c
SSE FastMCP - do not go though auth when it's not needed (#619) 2025-05-02 17:56:02 +01:00
Akash D
83968b5b2f
Handle SSE Disconnects Properly (#612) 2025-05-02 09:32:46 -07:00
ihrpr
5d8eaf77be
Streamable Http - clean up server memory streams (#604) 2025-05-02 14:59:17 +01:00
ihrpr
cf8b66b82f
use metadata from SessionMessage to propagate related_request_id (#591) 2025-05-02 14:35:17 +01:00
ihrpr
da0cf22355
Wrap JSONRPC messages with SessionMessage for metadata support (#590) 2025-05-02 14:29:00 +01:00
ihrpr
3978c6e1b9
StreamableHttp -- resumability support for servers (#587) 2025-05-02 14:10:40 +01:00
ihrpr
9dfc925090
StreamableHttp client transport (#573) 2025-05-02 13:59:02 +01:00
ihrpr
46523afe30
StreamableHttp - GET request standalone SSE (#561) 2025-05-02 13:52:27 +01:00
ihrpr
72b66a58b1
StreamableHttp - stateless server support (#554) 2025-05-02 13:40:21 +01:00
ihrpr
78f0b11a09
StreamableHttp - Server transport with state management (#553) 2025-05-02 11:58:54 +01:00
Peter Raboud
2210c1be18
Add support for serverside oauth (#255)
Some checks failed
Check uv.lock / check-lock (push) Has been cancelled
Main branch checks / checks (push) Has been cancelled
Co-authored-by: David Soria Parra <davidsp@anthropic.com>
Co-authored-by: Basil Hosmer <basil@anthropic.com>
Co-authored-by: ihrpr <inna@anthropic.com>
2025-05-01 19:42:59 +01:00
bhosmer-ant
1a330ac672
Add ToolAnnotations support in FastMCP and lowlevel servers (#482) 2025-04-30 14:52:56 +01:00
Samuel Colvin
697b6e8e05
replace inefficient use of to_jsonable_python (#545) 2025-04-26 20:41:19 +02:00
ihrpr
b4c7db6a50
Format files with ruff (#562) 2025-04-23 05:06:51 +01:00
Christian Clauss
babb477dff
Python lint: Ruff rules for comprehensions and performance (#512) 2025-04-15 16:58:33 +02:00
Dan Lapid
8c9269c34b
Move uvicorn import to usage (#502) 2025-04-15 16:51:02 +02:00
Mohamed Amine Zghal
70115b99b3
Fix tests for Pydantic 2.11 (#465) 2025-04-11 09:17:36 +02:00
Junpei Kawamoto
da54ea003e
Allow generic parameters to be passed onto Context on FastMCP tools
Co-authored-by: Marcelo Trylesinski <marcelotryle@gmail.com>
2025-04-10 10:36:46 +01:00
David Soria Parra
d788424caa
fix
Some checks failed
Main branch checks / checks (push) Has been cancelled
2025-03-27 16:44:44 +00:00
Pol Avec
4e3c196941
Fixes incorrect casting into int for numbers in string format (#384) 2025-03-27 15:14:01 +00:00
evalstate
6d66ab8be0
Fix/base64 handling (Issue #342) (#343)
Co-authored-by: David Soria Parra <167242713+dsp-ant@users.noreply.github.com>
2025-03-27 09:18:02 +00:00
David Soria Parra
df2d3a57c2
Fix #355: Fix type error with lifespan context (#368)
Co-authored-by: Marcelo Trylesinski <marcelotryle@gmail.com>
2025-03-26 14:18:41 +00:00
Bar Nuri
fd2fd34357
default log level info (#366) 2025-03-25 09:50:15 +00:00
David Soria Parra
568cbd1a66
Fix #201: Move incoming message stream from BaseSession to ServerSession (#325)
Co-authored-by: Claude <noreply@anthropic.com>
2025-03-24 14:14:14 +00:00
elsejj
e2a7338730
enable custom path of sse server (#246)
Co-authored-by: David Soria Parra <167242713+dsp-ant@users.noreply.github.com>
2025-03-20 17:56:35 +00:00
arthrod
e334f7e4b6
Update __init__.py (#335) 2025-03-20 17:20:40 +00:00
Marcelo Trylesinski
ae77772ea8
Add strict mode to pyright (#315)
* Add strict mode to pyright

* Apply UP rule

* fix readme

* More correct

* Leave wrong Context for now

* Add strict mode to pyright

* Apply UP rule

* fix readme

* fix

* ignore
2025-03-20 09:13:08 +00:00
comfuture
a9aca20205
Option to mount SSE server to existing ASGI server (#312)
* Option to mount SSE server to existing ASGI server

Fixes #311

Add option to mount SSE server to an existing ASGI server.

* Add a new method `sse_app` in `src/mcp/server/fastmcp/server.py` to return an instance of the SSE server app.
* Update the `run_sse_async` method in `src/mcp/server/fastmcp/server.py` to use the new `sse_app` method.
* Update the documentation in `README.md` to include instructions on how to mount the SSE server to an existing ASGI server.
* Fix the example in `README.md` to use `app.mount('/', mcp.sse_app())` instead.

---

For more details, open the [Copilot Workspace session](https://copilot-workspace.githubnext.com/modelcontextprotocol/python-sdk/issues/311?shareId=XXXX-XXXX-XXXX-XXXX).

* Add `sse_app` method and update `run_sse_async` method in `server.py`

* Add `sse_app` method to return an instance of the SSE server app
* Update `run_sse_async` method to use the new `sse_app` method

Update `README.md` to include instructions for mounting SSE server

* Add section on mounting the SSE server to an existing ASGI server

* fix: Move import statements to the top of the file/

* docs: Update README to reflect changes in mounting SSE server with Starlette

* docs: Formatting of SSE server mounting example in README
2025-03-19 05:26:49 +01:00
Marcelo Trylesinski
c8978681f6
Avoid double JSON encoding/decoding (#287) 2025-03-14 15:08:11 +00:00
Marcelo Trylesinski
7196604468
Revert "refactor: reorganize message handling for better type safety and clar…" (#282)
Some checks failed
Main branch checks / checks (push) Has been cancelled
This reverts commit 9d0f2daddb.
2025-03-14 09:50:46 +00:00
David Soria Parra
9d0f2daddb
refactor: reorganize message handling for better type safety and clarity (#239)
Some checks failed
Main branch checks / checks (push) Has been cancelled
* refactor: improve typing with memory stream type aliases

Move memory stream type definitions to models.py and use them throughout
the codebase for better type safety and maintainability.

GitHub-Issue:#201

* refactor: move streams to ParsedMessage

* refactor: update test files to use ParsedMessage

Updates test files to work with the ParsedMessage stream type aliases
and fixes a line length issue in test_201_client_hangs_on_logging.py.

Github-Issue:#201

* refactor: rename ParsedMessage to MessageFrame for clarity

🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>

* refactor: move MessageFrame class to types.py for better code organization

🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>

* fix pyright

* refactor: update websocket client to use MessageFrame

Modified the websocket client to work with the new MessageFrame type,
preserving raw message text and properly extracting the root JSON-RPC
message when sending.

Github-Issue:#204

* fix: use NoneType instead of None for type parameters in MessageFrame

🤖 Generated with [Claude Code](https://claude.ai/code)

* refactor: rename root to message
2025-03-13 13:44:55 +00:00
Michaelzag
ad7f7a5473
Changed default log level to error (#258) 2025-03-13 13:16:21 +00:00
Marcelo Trylesinski
94d326dbf1
Close unclosed resources in the whole project (#267)
* Close resources

* Close all resources

* Update pyproject.toml

* Close all resources

* Close all resources

* try now...

* try to ignore this

* try again

* try adding one more..

* try now

* try now

* revert ci changes
2025-03-13 10:59:45 +00:00
Marcelo Trylesinski
e756315dea
Add ServerSessionT type var to Context (#271)
* Add ServerSessionT type var to Context

* Passing locally

* Try now
2025-03-12 15:35:15 +00:00