| 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 |
||
| .. | ||
| src | ||
| composer.json | ||
| example-requests.json | ||
| index.php | ||
| README.md | ||
Standalone example app with CLI
This is just for testing and debugging purposes. Different from the other examples, this one does not use the same autoloader, but installs the SDK via path repository and therefore has mostly decoupled dependencies.
Install dependencies:
cd /path/to/your/project/examples/09-standalone-cli
composer update
Run the CLI with:
DEBUG=1 php index.php
You will see debug outputs to help you understand what is happening.
In this terminal you can now test by adding some JSON strings. See example-requests.json.
Run with Inspector:
npx @modelcontextprotocol/inspector php index.php