php-sdk/examples
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Kyrian Obikwelu ca18caf29d
[Server] Fix: standardize error handling across handlers with MCP specificatio… (#124)
* fix: standardize error handling across handlers with MCP specification compliance

* Update mcp-elements.md

Co-authored-by: Christopher Hertel <mail@christopher-hertel.de>

* docs: clarify error handling behavior for all element types

* docs: remove unnecessary whitespace in mcp-elements.md

* fix: simplify exception signatures to accept simple messages

* refactor: use specific exceptions in examples for better error handling

* feat: throw exceptions from reference provider instead of returning null

---------

Co-authored-by: Christopher Hertel <mail@christopher-hertel.de>
2025-10-30 17:30:58 +01:00
..
custom-method-handlers [Server] Add Bidirectional Client Communication Support (#109) 2025-10-26 22:48:17 +01:00
http-client-communication [Server] Fix: standardize error handling across handlers with MCP specificatio… (#124) 2025-10-30 17:30:58 +01:00
http-combined-registration feat: add PSR-17 factory auto-discovery to HTTP transport (#119) 2025-10-26 22:06:10 +01:00
http-complex-tool-schema feat: add PSR-17 factory auto-discovery to HTTP transport (#119) 2025-10-26 22:06:10 +01:00
http-discovery-userprofile [Server] Fix: standardize error handling across handlers with MCP specificatio… (#124) 2025-10-30 17:30:58 +01:00
http-schema-showcase feat: add PSR-17 factory auto-discovery to HTTP transport (#119) 2025-10-26 22:06:10 +01:00
stdio-cached-discovery [Server] Fix: standardize error handling across handlers with MCP specificatio… (#124) 2025-10-30 17:30:58 +01:00
stdio-client-communication [Server] Add Bidirectional Client Communication Support (#109) 2025-10-26 22:48:17 +01:00
stdio-custom-dependencies Add more inspector tests for functionality tests of STDIO examples (#115) 2025-10-27 01:09:25 +01:00
stdio-discovery-calculator [Server] Fix: standardize error handling across handlers with MCP specificatio… (#124) 2025-10-30 17:30:58 +01:00
stdio-env-variables Actually use cache across example runs (#116) 2025-10-26 21:49:45 +01:00
stdio-explicit-registration [Server] Remove redundant Builder.setServerCapabilities method (#107) 2025-10-12 13:51:21 +01:00
bootstrap.php Fix & clean up examples (#78) 2025-09-24 21:50:06 +02:00
README.md docs: add more about building servers and updating front readme (#81) 2025-10-07 23:42:02 +02:00

MCP SDK Examples

This directory contains various examples of how to use the PHP MCP SDK.

You can run the examples with the dependencies already installed in the root directory of the SDK.

For running an example, you execute the server.php like this:

# For examples using STDIO transport
php examples/stdio-discovery-calculator/server.php

# For examples using Streamable HTTP transport
php -S localhost:8000 examples/http-discovery-userprofile/server.php

You will see debug outputs to help you understand what is happening.

Run with Inspector:

npx @modelcontextprotocol/inspector php examples/stdio-discovery-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/stdio-discovery-calculator/server.php