* feat: implement discovery caching with state-based approach - Add DiscoveryState class to encapsulate discovered MCP capabilities - Add exportDiscoveryState and importDiscoveryState methods to Registry - Modify Discoverer to return DiscoveryState instead of void - Create CachedDiscoverer decorator for caching discovery results - Add importDiscoveryState method to ReferenceRegistryInterface - Update ServerBuilder to use caching with withCache() method - Update tests to work with new state-based approach - Add example demonstrating cached discovery functionality - Add PSR-16 SimpleCache and Symfony Cache dependencies * docs: add comprehensive discovery caching documentation - Add detailed documentation explaining discovery caching architecture - Include usage examples for different cache implementations - Document performance benefits and best practices - Add troubleshooting guide and migration instructions - Include complete API reference for all caching components - Fix PHPStan issues by regenerating baseline - Apply PHP CS Fixer formatting to all new files * refactor: address reviewer feedback and clean up discovery caching - Make DiscoveryState class final - Cache DiscoveryState objects directly instead of arrays (no serialization needed) - Rename exportDiscoveryState/importDiscoveryState to getDiscoveryState/setDiscoveryState - Add getDiscoveryState method to ReferenceRegistryInterface - Remove TTL parameter from CachedDiscoverer (no expiration by default) - Remove unused methods from DiscoveryState (toArray, fromArray, merge) - Simplify ServerBuilder to handle decoration internally - Make Discoverer.applyDiscoveryState() internal (no longer public API) - Simplify documentation to focus on user perspective - Remove unnecessary development comments - Update all tests to work with new architecture - All tests pass, PHPStan clean, code formatting applied * refactor: clean up comments and formatting in server.php example * refactor: improve code formatting and consistency in discovery classes and example server * Fix method names in cached discovery example - Change withServerInfo() to setServerInfo() - Change withDiscovery() to setDiscovery() - Change withLogger() to setLogger() - Fixes PHPStan static analysis errors * refactor: update method names in ServerBuilder for consistency - Change withCache() to setCache() in ServerBuilder - Update example and documentation to reflect method name changes - Ensure consistency across caching implementation in examples and documentation * refactor: reorganize examples and fix PHPStan baseline - Move cached discovery example from examples/10 to examples/09 - Update composer.json autoload-dev namespace mapping - Fix PHPStan baseline by removing invalid entries for non-existent files - Update server.php to follow proper example pattern with logging and lifecycle * fix: correct formatting in server.php
69 lines
2.2 KiB
JSON
69 lines
2.2 KiB
JSON
{
|
|
"name": "mcp/sdk",
|
|
"type": "library",
|
|
"description": "Model Context Protocol SDK for Client and Server applications in PHP",
|
|
"license": "MIT",
|
|
"authors": [
|
|
{
|
|
"name": "Christopher Hertel",
|
|
"email": "mail@christopher-hertel.de"
|
|
},
|
|
{
|
|
"name": "Kyrian Obikwelu",
|
|
"email": "koshnawaza@gmail.com"
|
|
},
|
|
{
|
|
"name": "Tobias Nyholm",
|
|
"email": "tobias.nyholm@gmail.com"
|
|
}
|
|
],
|
|
"require": {
|
|
"php": "^8.1",
|
|
"ext-fileinfo": "*",
|
|
"opis/json-schema": "^2.4",
|
|
"phpdocumentor/reflection-docblock": "^5.6",
|
|
"psr/clock": "^1.0",
|
|
"psr/container": "^2.0",
|
|
"psr/event-dispatcher": "^1.0",
|
|
"psr/http-factory": "^1.1",
|
|
"psr/http-message": "^2.0",
|
|
"psr/log": "^1.0 || ^2.0 || ^3.0",
|
|
"symfony/finder": "^6.4 || ^7.3",
|
|
"symfony/uid": "^6.4 || ^7.3"
|
|
},
|
|
"require-dev": {
|
|
"php-cs-fixer/shim": "^3.84",
|
|
"phpstan/phpstan": "^2.1",
|
|
"phpunit/phpunit": "^10.5",
|
|
"psr/cache": "^3.0",
|
|
"psr/simple-cache": "^3.0",
|
|
"symfony/cache": "^6.4 || ^7.3",
|
|
"symfony/console": "^6.4 || ^7.3",
|
|
"symfony/process": "^6.4 || ^7.3",
|
|
"nyholm/psr7": "^1.8",
|
|
"nyholm/psr7-server": "^1.1",
|
|
"laminas/laminas-httphandlerrunner": "^2.12"
|
|
},
|
|
"autoload": {
|
|
"psr-4": {
|
|
"Mcp\\": "src/"
|
|
}
|
|
},
|
|
"autoload-dev": {
|
|
"psr-4": {
|
|
"Mcp\\Example\\StdioCalculatorExample\\": "examples/01-discovery-stdio-calculator/",
|
|
"Mcp\\Example\\HttpUserProfileExample\\": "examples/02-discovery-http-userprofile/",
|
|
"Mcp\\Example\\ManualStdioExample\\": "examples/03-manual-registration-stdio/",
|
|
"Mcp\\Example\\CombinedHttpExample\\": "examples/04-combined-registration-http/",
|
|
"Mcp\\Example\\StdioEnvVariables\\": "examples/05-stdio-env-variables/",
|
|
"Mcp\\Example\\DependenciesStdioExample\\": "examples/06-custom-dependencies-stdio/",
|
|
"Mcp\\Example\\ComplexSchemaHttpExample\\": "examples/07-complex-tool-schema-http/",
|
|
"Mcp\\Example\\SchemaShowcaseExample\\": "examples/08-schema-showcase-streamable/",
|
|
"Mcp\\Example\\CachedDiscoveryExample\\": "examples/09-cached-discovery-stdio/",
|
|
"Mcp\\Tests\\": "tests/"
|
|
}
|
|
},
|
|
"config": {
|
|
"sort-packages": true
|
|
}
|
|
}
|