[Server] SEP-2663 Tasks: TaskStoreInterface with InMemory and PSR-16 stores
还没有人认领这个 Issue。
评估
调研方向
首先定位 TasksExtension、Task::isReadable() 以及拟议的 TaskStoreInterface 入口点。跟踪服务器端任务状态和 Task::$inputRequests 如何传递给扩展,然后定义 InMemoryTaskStore 和 Psr16TaskStore 的职责。完成标准是 save/get/delete 支持过期,内存中存在按最后使用时间淘汰最旧项的有界淘汰机制,并且 PSR-16 的 TTL 行为支持 PHP-FPM。
由索引模型根据 Issue 内容生成。
描述
Task persistence for SEP-2663 for the 2026-07-28 release. Tracked by umbrella #335.
Scope
Mcp\Server\Task\TaskStoreInterface:save(),get()(null for unknown or expired — a client cannot tell them apart and does not need to),delete().InMemoryTaskStorewith a task limit (default 1000, oldest-by-last-use evicted) so unbounded task creation cannot exhaust memory. Right for stdio and single-process runtimes; wrong under PHP-FPM, where the worker that creates a task is not the one polled for it.Psr16TaskStore(PSR-16 cache-backed) for PHP-FPM — a filesystem adapter covers the "file store" case, so no separateFileTaskStore.- Expiry is TTL-based (
Task::isReadable()on read, cache TTL for PSR-16) plus the in-memory limit; no request-counted GC pass. - The store is the one place both server-side task state and the pending server→client asks (
Task::$inputRequests) live. - The store is handed to
TasksExtension, not to the builder (see #346).
- 主要语言
- PHP
- 星标
- 1.6k
- 派生
- 173
- 平均合并
- 2 天 49 分钟
- 30 天内合并 PR
- 23
贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
modelcontextprotocol/php-sdk 的其他 Issue
-
[Server] Handler type uses bare Closure, hard to decorate RegistryInterface under strict PHPStan 未关闭Server
难度 1/5 1 小时以内 新手友好度 78/100
modelcontextprotocol/php-sdk#468 · 2 条评论 ·
-
needs confirmation needs maintainer action Server
难度 2/5 1-3 小时 新手友好度 68/100
modelcontextprotocol/php-sdk#398 · 1 个 reaction ·
-
enhancement
难度 2/5 1-3 小时 新手友好度 68/100
modelcontextprotocol/php-sdk#370 ·
-
enhancement
难度 4/5 3-5 天 新手友好度 55/100
modelcontextprotocol/php-sdk#510 · 1 条评论 ·
-
bug
难度 4/5 3-5 天 新手友好度 45/100
modelcontextprotocol/php-sdk#504 ·
查看 modelcontextprotocol/php-sdk 的全部 Issue
相似的 Issue
-
难度 2/5 1-3 小时 新手友好度 84/100
pluginsGLPI/datainjection#673 ·
-
难度 2/5 1-3 小时 新手友好度 82/100
octobercms/october#6130 ·
-
难度 2/5 1-3 小时 新手友好度 82/100
getgrav/grav-plugin-form#656 ·
-
customer-support needs-triage Platform(Default)
难度 2/5 1-3 小时 新手友好度 68/100
-
sync-en
难度 1/5 1-3 小时 新手友好度 88/100