* 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
492 lines
21 KiB
Text
492 lines
21 KiB
Text
parameters:
|
|
ignoreErrors:
|
|
-
|
|
message: '#^Call to static method invalidParams\(\) on an unknown class Mcp\\Example\\HttpUserProfileExample\\McpServerException\.$#'
|
|
identifier: class.notFound
|
|
count: 2
|
|
path: examples/02-discovery-http-userprofile/McpElements.php
|
|
|
|
-
|
|
message: '#^Method Mcp\\Example\\HttpUserProfileExample\\McpElements\:\:generateBio\(\) return type has no value type specified in iterable type array\.$#'
|
|
identifier: missingType.iterableValue
|
|
count: 1
|
|
path: examples/02-discovery-http-userprofile/McpElements.php
|
|
|
|
-
|
|
message: '#^Method Mcp\\Example\\HttpUserProfileExample\\McpElements\:\:getUserProfile\(\) return type has no value type specified in iterable type array\.$#'
|
|
identifier: missingType.iterableValue
|
|
count: 1
|
|
path: examples/02-discovery-http-userprofile/McpElements.php
|
|
|
|
-
|
|
message: '#^Method Mcp\\Example\\HttpUserProfileExample\\McpElements\:\:listUserIds\(\) return type has no value type specified in iterable type array\.$#'
|
|
identifier: missingType.iterableValue
|
|
count: 1
|
|
path: examples/02-discovery-http-userprofile/McpElements.php
|
|
|
|
-
|
|
message: '#^Method Mcp\\Example\\HttpUserProfileExample\\McpElements\:\:sendWelcomeMessage\(\) return type has no value type specified in iterable type array\.$#'
|
|
identifier: missingType.iterableValue
|
|
count: 1
|
|
path: examples/02-discovery-http-userprofile/McpElements.php
|
|
|
|
-
|
|
message: '#^Method Mcp\\Example\\HttpUserProfileExample\\McpElements\:\:testToolWithoutParams\(\) return type has no value type specified in iterable type array\.$#'
|
|
identifier: missingType.iterableValue
|
|
count: 1
|
|
path: examples/02-discovery-http-userprofile/McpElements.php
|
|
|
|
-
|
|
message: '#^PHPDoc tag @throws with type Mcp\\Example\\HttpUserProfileExample\\McpServerException is not subtype of Throwable$#'
|
|
identifier: throws.notThrowable
|
|
count: 2
|
|
path: examples/02-discovery-http-userprofile/McpElements.php
|
|
|
|
-
|
|
message: '#^Property Mcp\\Example\\HttpUserProfileExample\\McpElements\:\:\$users type has no value type specified in iterable type array\.$#'
|
|
identifier: missingType.iterableValue
|
|
count: 1
|
|
path: examples/02-discovery-http-userprofile/McpElements.php
|
|
|
|
-
|
|
message: '#^Expression on left side of \?\? is not nullable\.$#'
|
|
identifier: nullCoalesce.expr
|
|
count: 1
|
|
path: examples/02-discovery-http-userprofile/server.php
|
|
|
|
|
|
-
|
|
message: '#^Method Mcp\\Example\\ManualStdioExample\\SimpleHandlers\:\:getItemDetails\(\) return type has no value type specified in iterable type array\.$#'
|
|
identifier: missingType.iterableValue
|
|
count: 1
|
|
path: examples/03-manual-registration-stdio/SimpleHandlers.php
|
|
|
|
-
|
|
message: '#^Method Mcp\\Example\\ManualStdioExample\\SimpleHandlers\:\:greetingPrompt\(\) return type has no value type specified in iterable type array\.$#'
|
|
identifier: missingType.iterableValue
|
|
count: 1
|
|
path: examples/03-manual-registration-stdio/SimpleHandlers.php
|
|
|
|
-
|
|
message: '#^Class Mcp\\CombinedHttpExample\\Manual\\ManualHandlers not found\.$#'
|
|
identifier: class.notFound
|
|
count: 2
|
|
path: examples/04-combined-registration-http/server.php
|
|
|
|
|
|
-
|
|
message: '#^Method Mcp\\Example\\StdioEnvVariables\\EnvToolHandler\:\:processData\(\) return type has no value type specified in iterable type array\.$#'
|
|
identifier: missingType.iterableValue
|
|
count: 1
|
|
path: examples/05-stdio-env-variables/EnvToolHandler.php
|
|
|
|
-
|
|
message: '#^Call to method addTask\(\) on an unknown class Mcp\\DependenciesStdioExample\\Services\\TaskRepositoryInterface\.$#'
|
|
identifier: class.notFound
|
|
count: 1
|
|
path: examples/06-custom-dependencies-stdio/McpTaskHandlers.php
|
|
|
|
-
|
|
message: '#^Call to method completeTask\(\) on an unknown class Mcp\\DependenciesStdioExample\\Services\\TaskRepositoryInterface\.$#'
|
|
identifier: class.notFound
|
|
count: 1
|
|
path: examples/06-custom-dependencies-stdio/McpTaskHandlers.php
|
|
|
|
-
|
|
message: '#^Call to method getSystemStats\(\) on an unknown class Mcp\\DependenciesStdioExample\\Services\\StatsServiceInterface\.$#'
|
|
identifier: class.notFound
|
|
count: 1
|
|
path: examples/06-custom-dependencies-stdio/McpTaskHandlers.php
|
|
|
|
-
|
|
message: '#^Call to method getTasksForUser\(\) on an unknown class Mcp\\DependenciesStdioExample\\Services\\TaskRepositoryInterface\.$#'
|
|
identifier: class.notFound
|
|
count: 1
|
|
path: examples/06-custom-dependencies-stdio/McpTaskHandlers.php
|
|
|
|
-
|
|
message: '#^Method Mcp\\Example\\DependenciesStdioExample\\McpTaskHandlers\:\:addTask\(\) return type has no value type specified in iterable type array\.$#'
|
|
identifier: missingType.iterableValue
|
|
count: 1
|
|
path: examples/06-custom-dependencies-stdio/McpTaskHandlers.php
|
|
|
|
-
|
|
message: '#^Method Mcp\\Example\\DependenciesStdioExample\\McpTaskHandlers\:\:completeTask\(\) return type has no value type specified in iterable type array\.$#'
|
|
identifier: missingType.iterableValue
|
|
count: 1
|
|
path: examples/06-custom-dependencies-stdio/McpTaskHandlers.php
|
|
|
|
-
|
|
message: '#^Method Mcp\\Example\\DependenciesStdioExample\\McpTaskHandlers\:\:getSystemStatistics\(\) return type has no value type specified in iterable type array\.$#'
|
|
identifier: missingType.iterableValue
|
|
count: 1
|
|
path: examples/06-custom-dependencies-stdio/McpTaskHandlers.php
|
|
|
|
-
|
|
message: '#^Method Mcp\\Example\\DependenciesStdioExample\\McpTaskHandlers\:\:listUserTasks\(\) return type has no value type specified in iterable type array\.$#'
|
|
identifier: missingType.iterableValue
|
|
count: 1
|
|
path: examples/06-custom-dependencies-stdio/McpTaskHandlers.php
|
|
|
|
-
|
|
message: '#^Parameter \$statsService of method Mcp\\Example\\DependenciesStdioExample\\McpTaskHandlers\:\:__construct\(\) has invalid type Mcp\\DependenciesStdioExample\\Services\\StatsServiceInterface\.$#'
|
|
identifier: class.notFound
|
|
count: 1
|
|
path: examples/06-custom-dependencies-stdio/McpTaskHandlers.php
|
|
|
|
-
|
|
message: '#^Parameter \$taskRepo of method Mcp\\Example\\DependenciesStdioExample\\McpTaskHandlers\:\:__construct\(\) has invalid type Mcp\\DependenciesStdioExample\\Services\\TaskRepositoryInterface\.$#'
|
|
identifier: class.notFound
|
|
count: 1
|
|
path: examples/06-custom-dependencies-stdio/McpTaskHandlers.php
|
|
|
|
-
|
|
message: '#^Property Mcp\\Example\\DependenciesStdioExample\\McpTaskHandlers\:\:\$statsService has unknown class Mcp\\DependenciesStdioExample\\Services\\StatsServiceInterface as its type\.$#'
|
|
identifier: class.notFound
|
|
count: 1
|
|
path: examples/06-custom-dependencies-stdio/McpTaskHandlers.php
|
|
|
|
-
|
|
message: '#^Property Mcp\\Example\\DependenciesStdioExample\\McpTaskHandlers\:\:\$taskRepo has unknown class Mcp\\DependenciesStdioExample\\Services\\TaskRepositoryInterface as its type\.$#'
|
|
identifier: class.notFound
|
|
count: 1
|
|
path: examples/06-custom-dependencies-stdio/McpTaskHandlers.php
|
|
|
|
-
|
|
message: '#^Method Mcp\\Example\\DependenciesStdioExample\\Service\\InMemoryTaskRepository\:\:addTask\(\) return type has no value type specified in iterable type array\.$#'
|
|
identifier: missingType.iterableValue
|
|
count: 1
|
|
path: examples/06-custom-dependencies-stdio/Service/InMemoryTaskRepository.php
|
|
|
|
-
|
|
message: '#^Method Mcp\\Example\\DependenciesStdioExample\\Service\\InMemoryTaskRepository\:\:getAllTasks\(\) return type has no value type specified in iterable type array\.$#'
|
|
identifier: missingType.iterableValue
|
|
count: 1
|
|
path: examples/06-custom-dependencies-stdio/Service/InMemoryTaskRepository.php
|
|
|
|
-
|
|
message: '#^Method Mcp\\Example\\DependenciesStdioExample\\Service\\InMemoryTaskRepository\:\:getTasksForUser\(\) return type has no value type specified in iterable type array\.$#'
|
|
identifier: missingType.iterableValue
|
|
count: 1
|
|
path: examples/06-custom-dependencies-stdio/Service/InMemoryTaskRepository.php
|
|
|
|
-
|
|
message: '#^Property Mcp\\Example\\DependenciesStdioExample\\Service\\InMemoryTaskRepository\:\:\$tasks type has no value type specified in iterable type array\.$#'
|
|
identifier: missingType.iterableValue
|
|
count: 1
|
|
path: examples/06-custom-dependencies-stdio/Service/InMemoryTaskRepository.php
|
|
|
|
-
|
|
message: '#^Method Mcp\\Example\\DependenciesStdioExample\\Service\\StatsServiceInterface\:\:getSystemStats\(\) return type has no value type specified in iterable type array\.$#'
|
|
identifier: missingType.iterableValue
|
|
count: 1
|
|
path: examples/06-custom-dependencies-stdio/Service/StatsServiceInterface.php
|
|
|
|
-
|
|
message: '#^Method Mcp\\Example\\DependenciesStdioExample\\Service\\SystemStatsService\:\:getSystemStats\(\) return type has no value type specified in iterable type array\.$#'
|
|
identifier: missingType.iterableValue
|
|
count: 1
|
|
path: examples/06-custom-dependencies-stdio/Service/SystemStatsService.php
|
|
|
|
-
|
|
message: '#^Method Mcp\\Example\\DependenciesStdioExample\\Service\\TaskRepositoryInterface\:\:addTask\(\) return type has no value type specified in iterable type array\.$#'
|
|
identifier: missingType.iterableValue
|
|
count: 1
|
|
path: examples/06-custom-dependencies-stdio/Service/TaskRepositoryInterface.php
|
|
|
|
-
|
|
message: '#^Method Mcp\\Example\\DependenciesStdioExample\\Service\\TaskRepositoryInterface\:\:getAllTasks\(\) return type has no value type specified in iterable type array\.$#'
|
|
identifier: missingType.iterableValue
|
|
count: 1
|
|
path: examples/06-custom-dependencies-stdio/Service/TaskRepositoryInterface.php
|
|
|
|
-
|
|
message: '#^Method Mcp\\Example\\DependenciesStdioExample\\Service\\TaskRepositoryInterface\:\:getTasksForUser\(\) return type has no value type specified in iterable type array\.$#'
|
|
identifier: missingType.iterableValue
|
|
count: 1
|
|
path: examples/06-custom-dependencies-stdio/Service/TaskRepositoryInterface.php
|
|
|
|
-
|
|
message: '#^Class Mcp\\DependenciesStdioExample\\Services\\StatsServiceInterface not found\.$#'
|
|
identifier: class.notFound
|
|
count: 1
|
|
path: examples/06-custom-dependencies-stdio/server.php
|
|
|
|
-
|
|
message: '#^Class Mcp\\DependenciesStdioExample\\Services\\TaskRepositoryInterface not found\.$#'
|
|
identifier: class.notFound
|
|
count: 1
|
|
path: examples/06-custom-dependencies-stdio/server.php
|
|
|
|
-
|
|
message: '#^Instantiated class Mcp\\DependenciesStdioExample\\Services\\InMemoryTaskRepository not found\.$#'
|
|
identifier: class.notFound
|
|
count: 1
|
|
path: examples/06-custom-dependencies-stdio/server.php
|
|
|
|
-
|
|
message: '#^Instantiated class Mcp\\DependenciesStdioExample\\Services\\SystemStatsService not found\.$#'
|
|
identifier: class.notFound
|
|
count: 1
|
|
path: examples/06-custom-dependencies-stdio/server.php
|
|
|
|
-
|
|
message: '#^Access to constant Normal on an unknown class Mcp\\ComplexSchemaHttpExample\\Model\\EventPriority\.$#'
|
|
identifier: class.notFound
|
|
count: 1
|
|
path: examples/07-complex-tool-schema-http/McpEventScheduler.php
|
|
|
|
-
|
|
message: '#^Access to property \$name on an unknown class Mcp\\ComplexSchemaHttpExample\\Model\\EventPriority\.$#'
|
|
identifier: class.notFound
|
|
count: 1
|
|
path: examples/07-complex-tool-schema-http/McpEventScheduler.php
|
|
|
|
-
|
|
message: '#^Access to property \$value on an unknown class Mcp\\ComplexSchemaHttpExample\\Model\\EventType\.$#'
|
|
identifier: class.notFound
|
|
count: 1
|
|
path: examples/07-complex-tool-schema-http/McpEventScheduler.php
|
|
|
|
-
|
|
message: '#^Method Mcp\\Example\\ComplexSchemaHttpExample\\McpEventScheduler\:\:scheduleEvent\(\) return type has no value type specified in iterable type array\.$#'
|
|
identifier: missingType.iterableValue
|
|
count: 1
|
|
path: examples/07-complex-tool-schema-http/McpEventScheduler.php
|
|
|
|
-
|
|
message: '#^Parameter \$priority of method Mcp\\Example\\ComplexSchemaHttpExample\\McpEventScheduler\:\:scheduleEvent\(\) has invalid type Mcp\\ComplexSchemaHttpExample\\Model\\EventPriority\.$#'
|
|
identifier: class.notFound
|
|
count: 2
|
|
path: examples/07-complex-tool-schema-http/McpEventScheduler.php
|
|
|
|
-
|
|
message: '#^Parameter \$type of method Mcp\\Example\\ComplexSchemaHttpExample\\McpEventScheduler\:\:scheduleEvent\(\) has invalid type Mcp\\ComplexSchemaHttpExample\\Model\\EventType\.$#'
|
|
identifier: class.notFound
|
|
count: 2
|
|
path: examples/07-complex-tool-schema-http/McpEventScheduler.php
|
|
|
|
|
|
-
|
|
message: '#^Method Mcp\\Example\\SchemaShowcaseExample\\SchemaShowcaseElements\:\:calculateRange\(\) return type has no value type specified in iterable type array\.$#'
|
|
identifier: missingType.iterableValue
|
|
count: 1
|
|
path: examples/08-schema-showcase-streamable/SchemaShowcaseElements.php
|
|
|
|
-
|
|
message: '#^Method Mcp\\Example\\SchemaShowcaseExample\\SchemaShowcaseElements\:\:formatText\(\) return type has no value type specified in iterable type array\.$#'
|
|
identifier: missingType.iterableValue
|
|
count: 1
|
|
path: examples/08-schema-showcase-streamable/SchemaShowcaseElements.php
|
|
|
|
-
|
|
message: '#^Method Mcp\\Example\\SchemaShowcaseExample\\SchemaShowcaseElements\:\:generateConfig\(\) return type has no value type specified in iterable type array\.$#'
|
|
identifier: missingType.iterableValue
|
|
count: 1
|
|
path: examples/08-schema-showcase-streamable/SchemaShowcaseElements.php
|
|
|
|
-
|
|
message: '#^Method Mcp\\Example\\SchemaShowcaseExample\\SchemaShowcaseElements\:\:manageList\(\) has parameter \$items with no value type specified in iterable type array\.$#'
|
|
identifier: missingType.iterableValue
|
|
count: 1
|
|
path: examples/08-schema-showcase-streamable/SchemaShowcaseElements.php
|
|
|
|
-
|
|
message: '#^Method Mcp\\Example\\SchemaShowcaseExample\\SchemaShowcaseElements\:\:manageList\(\) return type has no value type specified in iterable type array\.$#'
|
|
identifier: missingType.iterableValue
|
|
count: 1
|
|
path: examples/08-schema-showcase-streamable/SchemaShowcaseElements.php
|
|
|
|
-
|
|
message: '#^Method Mcp\\Example\\SchemaShowcaseExample\\SchemaShowcaseElements\:\:scheduleEvent\(\) has parameter \$attendees with no value type specified in iterable type array\.$#'
|
|
identifier: missingType.iterableValue
|
|
count: 1
|
|
path: examples/08-schema-showcase-streamable/SchemaShowcaseElements.php
|
|
|
|
-
|
|
message: '#^Method Mcp\\Example\\SchemaShowcaseExample\\SchemaShowcaseElements\:\:scheduleEvent\(\) return type has no value type specified in iterable type array\.$#'
|
|
identifier: missingType.iterableValue
|
|
count: 1
|
|
path: examples/08-schema-showcase-streamable/SchemaShowcaseElements.php
|
|
|
|
-
|
|
message: '#^Method Mcp\\Example\\SchemaShowcaseExample\\SchemaShowcaseElements\:\:validateProfile\(\) has parameter \$profile with no value type specified in iterable type array\.$#'
|
|
identifier: missingType.iterableValue
|
|
count: 1
|
|
path: examples/08-schema-showcase-streamable/SchemaShowcaseElements.php
|
|
|
|
-
|
|
message: '#^Method Mcp\\Example\\SchemaShowcaseExample\\SchemaShowcaseElements\:\:validateProfile\(\) return type has no value type specified in iterable type array\.$#'
|
|
identifier: missingType.iterableValue
|
|
count: 1
|
|
path: examples/08-schema-showcase-streamable/SchemaShowcaseElements.php
|
|
|
|
|
|
|
|
-
|
|
message: '#^Call to an undefined method Mcp\\Capability\\Registry\\ResourceTemplateReference\:\:handle\(\)\.$#'
|
|
identifier: method.notFound
|
|
count: 1
|
|
path: src/Capability/Registry/ResourceTemplateReference.php
|
|
|
|
-
|
|
message: '#^PHPDoc tag @return with type array is incompatible with native type object\.$#'
|
|
identifier: return.phpDocType
|
|
count: 1
|
|
path: src/Schema/Result/EmptyResult.php
|
|
|
|
-
|
|
message: '#^Method Mcp\\Schema\\Result\\ReadResourceResult\:\:jsonSerialize\(\) should return array\{contents\: array\<Mcp\\Schema\\Content\\BlobResourceContents\|Mcp\\Schema\\Content\\TextResourceContents\>\} but returns array\{contents\: array\<Mcp\\Schema\\Content\\ResourceContents\>\}\.$#'
|
|
identifier: return.type
|
|
count: 1
|
|
path: src/Schema/Result/ReadResourceResult.php
|
|
|
|
-
|
|
message: '#^Method Mcp\\Capability\\Registry\\ReferenceProviderInterface\:\:getPrompts\(\) invoked with 2 parameters, 0 required\.$#'
|
|
identifier: arguments.count
|
|
count: 1
|
|
path: src/Server/RequestHandler/ListPromptsHandler.php
|
|
|
|
-
|
|
message: '#^Result of && is always false\.$#'
|
|
identifier: booleanAnd.alwaysFalse
|
|
count: 1
|
|
path: src/Server/RequestHandler/ListPromptsHandler.php
|
|
|
|
-
|
|
message: '#^Strict comparison using \!\=\= between null and null will always evaluate to false\.$#'
|
|
identifier: notIdentical.alwaysFalse
|
|
count: 1
|
|
path: src/Server/RequestHandler/ListPromptsHandler.php
|
|
|
|
-
|
|
message: '#^Method Mcp\\Capability\\Registry\\ReferenceProviderInterface\:\:getResources\(\) invoked with 2 parameters, 0 required\.$#'
|
|
identifier: arguments.count
|
|
count: 1
|
|
path: src/Server/RequestHandler/ListResourcesHandler.php
|
|
|
|
-
|
|
message: '#^Result of && is always false\.$#'
|
|
identifier: booleanAnd.alwaysFalse
|
|
count: 1
|
|
path: src/Server/RequestHandler/ListResourcesHandler.php
|
|
|
|
-
|
|
message: '#^Strict comparison using \!\=\= between null and null will always evaluate to false\.$#'
|
|
identifier: notIdentical.alwaysFalse
|
|
count: 1
|
|
path: src/Server/RequestHandler/ListResourcesHandler.php
|
|
|
|
-
|
|
message: '#^Method Mcp\\Capability\\Registry\\ReferenceProviderInterface\:\:getTools\(\) invoked with 2 parameters, 0 required\.$#'
|
|
identifier: arguments.count
|
|
count: 1
|
|
path: src/Server/RequestHandler/ListToolsHandler.php
|
|
|
|
-
|
|
message: '#^Result of && is always false\.$#'
|
|
identifier: booleanAnd.alwaysFalse
|
|
count: 1
|
|
path: src/Server/RequestHandler/ListToolsHandler.php
|
|
|
|
-
|
|
message: '#^Strict comparison using \!\=\= between null and null will always evaluate to false\.$#'
|
|
identifier: notIdentical.alwaysFalse
|
|
count: 1
|
|
path: src/Server/RequestHandler/ListToolsHandler.php
|
|
|
|
-
|
|
message: '#^Method Mcp\\Server\\ServerBuilder\:\:getCompletionProviders\(\) return type has no value type specified in iterable type array\.$#'
|
|
identifier: missingType.iterableValue
|
|
count: 1
|
|
path: src/Server/ServerBuilder.php
|
|
|
|
-
|
|
message: '#^Method Mcp\\Server\\ServerBuilder\:\:setDiscovery\(\) has parameter \$excludeDirs with no value type specified in iterable type array\.$#'
|
|
identifier: missingType.iterableValue
|
|
count: 1
|
|
path: src/Server/ServerBuilder.php
|
|
|
|
-
|
|
message: '#^Method Mcp\\Server\\ServerBuilder\:\:setDiscovery\(\) has parameter \$scanDirs with no value type specified in iterable type array\.$#'
|
|
identifier: missingType.iterableValue
|
|
count: 1
|
|
path: src/Server/ServerBuilder.php
|
|
|
|
-
|
|
message: '#^Method Mcp\\Server\\ServerBuilder\:\:addPrompt\(\) has parameter \$handler with no value type specified in iterable type array\.$#'
|
|
identifier: missingType.iterableValue
|
|
count: 1
|
|
path: src/Server/ServerBuilder.php
|
|
|
|
-
|
|
message: '#^Method Mcp\\Server\\ServerBuilder\:\:addResource\(\) has parameter \$handler with no value type specified in iterable type array\.$#'
|
|
identifier: missingType.iterableValue
|
|
count: 1
|
|
path: src/Server/ServerBuilder.php
|
|
|
|
-
|
|
message: '#^Method Mcp\\Server\\ServerBuilder\:\:addResourceTemplate\(\) has parameter \$handler with no value type specified in iterable type array\.$#'
|
|
identifier: missingType.iterableValue
|
|
count: 1
|
|
path: src/Server/ServerBuilder.php
|
|
|
|
-
|
|
message: '#^Method Mcp\\Server\\ServerBuilder\:\:addTool\(\) has parameter \$handler with no value type specified in iterable type array\.$#'
|
|
identifier: missingType.iterableValue
|
|
count: 1
|
|
path: src/Server/ServerBuilder.php
|
|
|
|
-
|
|
message: '#^Method Mcp\\Server\\ServerBuilder\:\:addTool\(\) has parameter \$inputSchema with no value type specified in iterable type array\.$#'
|
|
identifier: missingType.iterableValue
|
|
count: 1
|
|
path: src/Server/ServerBuilder.php
|
|
|
|
-
|
|
message: '#^Property Mcp\\Server\\ServerBuilder\:\:\$discoveryExcludeDirs type has no value type specified in iterable type array\.$#'
|
|
identifier: missingType.iterableValue
|
|
count: 1
|
|
path: src/Server/ServerBuilder.php
|
|
|
|
-
|
|
message: '#^Property Mcp\\Server\\ServerBuilder\:\:\$instructions is never read, only written\.$#'
|
|
identifier: property.onlyWritten
|
|
count: 1
|
|
path: src/Server/ServerBuilder.php
|
|
|
|
-
|
|
message: '#^Property Mcp\\Server\\ServerBuilder\:\:\$prompts type has no value type specified in iterable type array\.$#'
|
|
identifier: missingType.iterableValue
|
|
count: 1
|
|
path: src/Server/ServerBuilder.php
|
|
|
|
-
|
|
message: '#^Property Mcp\\Server\\ServerBuilder\:\:\$resourceTemplates type has no value type specified in iterable type array\.$#'
|
|
identifier: missingType.iterableValue
|
|
count: 1
|
|
path: src/Server/ServerBuilder.php
|
|
|
|
-
|
|
message: '#^Property Mcp\\Server\\ServerBuilder\:\:\$resources type has no value type specified in iterable type array\.$#'
|
|
identifier: missingType.iterableValue
|
|
count: 1
|
|
path: src/Server/ServerBuilder.php
|
|
|
|
-
|
|
message: '#^Property Mcp\\Server\\ServerBuilder\:\:\$tools type has no value type specified in iterable type array\.$#'
|
|
identifier: missingType.iterableValue
|
|
count: 1
|
|
path: src/Server/ServerBuilder.php
|
|
|
|
-
|
|
message: '#^Property Mcp\\Server\\ServerBuilder\:\:\$paginationLimit \(int\|null\) is never assigned null so it can be removed from the property type\.$#'
|
|
identifier: property.unusedType
|
|
count: 1
|
|
path: src/Server/ServerBuilder.php
|
|
|
|
-
|
|
message: '#^Property Mcp\\Server\\ServerBuilder\:\:\$paginationLimit is never read, only written\.$#'
|
|
identifier: property.onlyWritten
|
|
count: 1
|
|
path: src/Server/ServerBuilder.php
|