Remove ability to use parameter name _session and _request (#206)
* Remove ability to use parameter name _session and _request These are reserved for internal use. This will fix https://github.com/modelcontextprotocol/php-sdk/issues/168 * fix cs * add changelog * add test
This commit is contained in:
parent
6d74dce073
commit
abd0ddf13d
1 changed files with 40 additions and 0 deletions
|
|
@ -12,6 +12,7 @@
|
|||
namespace Mcp\Capability\Discovery;
|
||||
|
||||
use Mcp\Capability\Attribute\Schema;
|
||||
use Mcp\Exception\InvalidArgumentException;
|
||||
use Mcp\Server\RequestContext;
|
||||
use phpDocumentor\Reflection\DocBlock\Tags\Param;
|
||||
|
||||
|
|
@ -421,6 +422,9 @@ class SchemaGenerator
|
|||
}
|
||||
|
||||
$paramName = $rp->getName();
|
||||
if (\in_array(strtolower($paramName), ['_session', '_request'], true)) {
|
||||
throw new InvalidArgumentException(\sprintf('Handler method "%s::%s" has parameter named "%s" which is not allowed. Please change the name of that parameter.', $reflection->class, $reflection->name, $paramName));
|
||||
}
|
||||
$paramTag = $paramTags['$'.$paramName] ?? null;
|
||||
|
||||
$typeString = $this->getParameterTypeString($rp, $paramTag);
|
||||
|
|
|
|||
Loading…
Reference in a new issue