php-sdk/examples/09-standalone-cli
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Kyrian Obikwelu 719262b15d
feat(server): Rework transport architecture and add StreamableHttpTransport (#49)
* 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
2025-09-21 12:12:40 +02:00
..
src Registry Architecture Refactoring - Enhanced Separation of Concerns (#46) 2025-09-14 20:44:18 +02:00
composer.json Adopt server examples 2025-08-29 11:19:51 +02:00
example-requests.json Adopt server examples 2025-08-29 11:19:51 +02:00
index.php feat(server): Rework transport architecture and add StreamableHttpTransport (#49) 2025-09-21 12:12:40 +02:00
README.md Fix typos in documentation and configuration files (#25) 2025-09-04 23:25:49 +02:00

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