| Filename | Latest commit message | Latest commit date |
|---|---|---|
* feat(server): Rework transport architecture and add StreamableHttpTransport - `Server::connect()` no longer contains a processing loop. - `TransportInterface` is updated with `setMessageHandler()` and `listen()`. - `StdioTransport` is updated to implement the new interface. - A new, minimal `StreamableHttpTransport` is added for stateless HTTP. * refactor(server): use event-driven message handling * feat(server): Introduce a formal session management system * fix: ensure session elements are preserved when building server (regression from #46) * refactor: consolidate HTTP example to use shared dependencies * feat(server): Enhance message handling with session support - Updated `TransportInterface` to use `onMessage` for handling incoming messages with session IDs. - Refactored `Server`, `Handler`, and transport classes to accommodate session management using `Uuid`. - Introduced methods for creating sessions with auto-generated and specific UUIDs in `SessionFactory` and `SessionFactoryInterface`. * feat(server): Integrate session management in message handling - Added session support to the `Server` and `Handler` classes, allowing for session data to be managed during message processing. - Updated `TransportInterface` to include session context in the `send` method. - Refactored various request handlers to utilize session information, ensuring proper session handling for incoming requests. - Introduced a file-based session store for persistent session data management * feat: Update session builder method to use set* instead of with* * feat: Fix test compatibility with new session management architecture * chore: apply code style fixes * fix: remove deprecated SSE transport and resolve PHPStan issues |
||
| .. | ||
| 01-discovery-stdio-calculator | ||
| 02-discovery-http-userprofile | ||
| 03-manual-registration-stdio | ||
| 04-combined-registration-http | ||
| 05-stdio-env-variables | ||
| 06-custom-dependencies-stdio | ||
| 07-complex-tool-schema-http | ||
| 08-schema-showcase-streamable | ||
| 09-standalone-cli | ||
| 10-simple-http-transport | ||
| bootstrap.php | ||
| README.md | ||
MCP SDK Examples
This directory contains various examples of how to use the PHP MCP SDK.
You can run examples 01-08 with the dependencies already installed in the root directory of the SDK. For example 09, see the
README in the examples/09-standalone-cli directory.
For running an example, you execute the server.php like this:
php examples/01-discovery-stdio-calculator/server.php
You will see debug outputs to help you understand what is happening.
Run with Inspector:
npx @modelcontextprotocol/inspector php examples/01-discovery-stdio-calculator/server.php
Debugging
You can enable debug output by setting the DEBUG environment variable to 1, and additionally log to a file by
setting the FILE_LOG environment variable to 1 as well. A dev.log file gets written within the example's
directory.
With the Inspector you can set the environment variables like this:
npx @modelcontextprotocol/inspector -e DEBUG=1 -e FILE_LOG=1 php examples/01-discovery-stdio-calculator/server.php