mirror of
https://github.com/HolgerHatGarKeineNode/einundzwanzig-app.git
synced 2026-06-11 02:50:29 +00:00
✨ Ensure all tools fit on a single tools/list page
- 📜 Increased `defaultPaginationLength` to 100 to accommodate all tools on a single page. - ✅ Added feature test to confirm pagination settings align with client requirements.
This commit is contained in:
@@ -67,6 +67,16 @@ Parameter sind nur ein optionaler Fallback, falls die ID bereits bekannt ist.
|
||||
TXT)]
|
||||
class EinundzwanzigServer extends Server
|
||||
{
|
||||
/**
|
||||
* tools/list wird vom Paket cursor-paginiert (Default 15/Seite). Manche Clients
|
||||
* (z. B. der Claude.ai-Web-Connector) laden nur die erste Seite und folgen dem
|
||||
* nextCursor nicht – dann fehlt die Hälfte der Tools. Wir heben die Seitengröße an,
|
||||
* sodass alle Tools auf eine Seite passen.
|
||||
*/
|
||||
public int $maxPaginationLength = 100;
|
||||
|
||||
public int $defaultPaginationLength = 100;
|
||||
|
||||
/**
|
||||
* The tools registered with this MCP server.
|
||||
*
|
||||
|
||||
@@ -22,3 +22,13 @@ it('registers every domain tool on the server', function () {
|
||||
->and($tools)->toContain(UpdateCourseEventTool::class)
|
||||
->and($tools)->toContain(SearchCitiesTool::class);
|
||||
});
|
||||
|
||||
it('serves every tool on a single tools/list page', function () {
|
||||
$reflection = new ReflectionClass(EinundzwanzigServer::class);
|
||||
$tools = $reflection->getProperty('tools')->getDefaultValue();
|
||||
$defaultPerPage = $reflection->getProperty('defaultPaginationLength')->getDefaultValue();
|
||||
|
||||
// Some MCP clients (e.g. the Claude.ai web connector) only load the first
|
||||
// tools/list page and do not follow the nextCursor, so every tool must fit on it.
|
||||
expect($defaultPerPage)->toBeGreaterThanOrEqual(count($tools));
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user