[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-modelcontextprotocol--php-sdk":3,"tool-modelcontextprotocol--php-sdk":64},[4,17,27,35,43,56],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":16},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,3,"2026-04-05T11:01:52",[13,14,15],"开发框架","图像","Agent","ready",{"id":18,"name":19,"github_repo":20,"description_zh":21,"stars":22,"difficulty_score":23,"last_commit_at":24,"category_tags":25,"status":16},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",138956,2,"2026-04-05T11:33:21",[13,15,26],"语言模型",{"id":28,"name":29,"github_repo":30,"description_zh":31,"stars":32,"difficulty_score":23,"last_commit_at":33,"category_tags":34,"status":16},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",107662,"2026-04-03T11:11:01",[13,14,15],{"id":36,"name":37,"github_repo":38,"description_zh":39,"stars":40,"difficulty_score":23,"last_commit_at":41,"category_tags":42,"status":16},3704,"NextChat","ChatGPTNextWeb\u002FNextChat","NextChat 是一款轻量且极速的 AI 助手，旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性，以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发，NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。\n\n这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言，它也提供了便捷的自托管方案，支持一键部署到 Vercel 或 Zeabur 等平台。\n\nNextChat 的核心亮点在于其广泛的模型兼容性，原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型，让用户在一个界面即可自由切换不同 AI 能力。此外，它还率先支持 MCP（Model Context Protocol）协议，增强了上下文处理能力。针对企业用户，NextChat 提供专业版解决方案，具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能，满足公司对数据隐私和个性化管理的高标准要求。",87618,"2026-04-05T07:20:52",[13,26],{"id":44,"name":45,"github_repo":46,"description_zh":47,"stars":48,"difficulty_score":23,"last_commit_at":49,"category_tags":50,"status":16},2268,"ML-For-Beginners","microsoft\u002FML-For-Beginners","ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程，旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周，包含 26 节精炼课程和 52 道配套测验，内容涵盖从基础概念到实际应用的完整流程，有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。\n\n无论是希望转型的开发者、需要补充算法背景的研究人员，还是对人工智能充满好奇的普通爱好者，都能从中受益。课程不仅提供了清晰的理论讲解，还强调动手实践，让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持，通过自动化机制提供了包括简体中文在内的 50 多种语言版本，极大地降低了全球不同背景用户的学习门槛。此外，项目采用开源协作模式，社区活跃且内容持续更新，确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路，ML-For-Beginners 将是理想的起点。",84991,"2026-04-05T10:45:23",[14,51,52,53,15,54,26,13,55],"数据工具","视频","插件","其他","音频",{"id":57,"name":58,"github_repo":59,"description_zh":60,"stars":61,"difficulty_score":10,"last_commit_at":62,"category_tags":63,"status":16},3128,"ragflow","infiniflow\u002Fragflow","RAGFlow 是一款领先的开源检索增强生成（RAG）引擎，旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体（Agent）能力相结合，不仅支持从各类文档中高效提取知识，还能让模型基于这些知识进行逻辑推理和任务执行。\n\n在大模型应用中，幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构（如表格、图表及混合排版），显著提升了信息检索的准确度，从而有效减少模型“胡编乱造”的现象，确保回答既有据可依又具备时效性。其内置的智能体机制更进一步，使系统不仅能回答问题，还能自主规划步骤解决复杂问题。\n\n这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统，还是致力于探索大模型在垂直领域落地的创新者，都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口，既降低了非算法背景用户的上手门槛，也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目，它正成为连接通用大模型与行业专有知识之间的重要桥梁。",77062,"2026-04-04T04:44:48",[15,14,13,26,54],{"id":65,"github_repo":66,"name":67,"description_en":68,"description_zh":69,"ai_summary_zh":70,"readme_en":71,"readme_zh":72,"quickstart_zh":73,"use_case_zh":74,"hero_image_url":75,"owner_login":76,"owner_name":77,"owner_avatar_url":78,"owner_bio":79,"owner_company":80,"owner_location":80,"owner_email":80,"owner_twitter":80,"owner_website":81,"owner_url":82,"languages":83,"stars":95,"forks":96,"last_commit_at":97,"license":98,"difficulty_score":99,"env_os":100,"env_gpu":101,"env_ram":100,"env_deps":102,"category_tags":108,"github_topics":80,"view_count":23,"oss_zip_url":80,"oss_zip_packed_at":80,"status":16,"created_at":109,"updated_at":110,"faqs":111,"releases":142},3669,"modelcontextprotocol\u002Fphp-sdk","php-sdk","The official PHP SDK for Model Context Protocol servers and clients. Maintained in collaboration with The PHP Foundation.","php-sdk 是 Model Context Protocol (MCP) 的官方 PHP 开发工具包，由 PHP 基金会与 Symfony 项目联手打造。它旨在帮助开发者轻松构建符合 MCP 标准的服务器端和客户端应用，打通 PHP 系统与 AI 智能体（如 Claude 等）之间的连接桥梁。\n\n过去，让传统 PHP 业务逻辑被 AI 直接调用往往需要复杂的适配工作。php-sdk 通过提供框架无关的 API，简化了这一过程：开发者只需定义简单的函数或资源，即可将其暴露给 AI，使其能够执行计算、读取配置或获取数据库信息。无论是将现有功能转化为 AI 可调用的“工具”，还是构建能主动连接外部服务的“客户端”，该工具包都能高效胜任。\n\n这款工具主要面向 PHP 后端开发者及架构师。其独特的技术亮点在于深度结合了现代 PHP 特性，支持使用原生属性（Attributes）自动发现并注册能力，极大减少了样板代码；同时也保留了手动注册的灵活性。此外，它遵循 Symfony 的高标准开发规范，承诺向后兼容，并提供 STDIO 和 HTTP 多种传输方式以适应不同部署环境。目前虽处于实验阶段，","php-sdk 是 Model Context Protocol (MCP) 的官方 PHP 开发工具包，由 PHP 基金会与 Symfony 项目联手打造。它旨在帮助开发者轻松构建符合 MCP 标准的服务器端和客户端应用，打通 PHP 系统与 AI 智能体（如 Claude 等）之间的连接桥梁。\n\n过去，让传统 PHP 业务逻辑被 AI 直接调用往往需要复杂的适配工作。php-sdk 通过提供框架无关的 API，简化了这一过程：开发者只需定义简单的函数或资源，即可将其暴露给 AI，使其能够执行计算、读取配置或获取数据库信息。无论是将现有功能转化为 AI 可调用的“工具”，还是构建能主动连接外部服务的“客户端”，该工具包都能高效胜任。\n\n这款工具主要面向 PHP 后端开发者及架构师。其独特的技术亮点在于深度结合了现代 PHP 特性，支持使用原生属性（Attributes）自动发现并注册能力，极大减少了样板代码；同时也保留了手动注册的灵活性。此外，它遵循 Symfony 的高标准开发规范，承诺向后兼容，并提供 STDIO 和 HTTP 多种传输方式以适应不同部署环境。目前虽处于实验阶段，但已为 PHP 生态融入 AI 浪潮提供了坚实且优雅的基础设施。","# MCP PHP SDK\n\nThe official PHP SDK for Model Context Protocol (MCP). It provides a framework-agnostic API for implementing MCP servers\nand clients in PHP.\n\nThis project represents a collaboration between [the PHP Foundation](https:\u002F\u002Fthephp.foundation\u002F) and the [Symfony project](https:\u002F\u002Fsymfony.com\u002F). It adopts\ndevelopment practices and standards from the Symfony project, including [Coding Standards](https:\u002F\u002Fsymfony.com\u002Fdoc\u002Fcurrent\u002Fcontributing\u002Fcode\u002Fstandards.html) and the\n[Backward Compatibility Promise](https:\u002F\u002Fsymfony.com\u002Fdoc\u002Fcurrent\u002Fcontributing\u002Fcode\u002Fbc.html).\n\nUntil the first major release, this SDK is considered [experimental](https:\u002F\u002Fsymfony.com\u002Fdoc\u002Fcurrent\u002Fcontributing\u002Fcode\u002Fexperimental.html), please see the [roadmap](.\u002FROADMAP.md) for\nplanned next steps and features.\n\n## Table of Contents\n\n- [Installation](#installation)\n- [Overview](#overview)\n- [Server SDK](#server-sdk)\n- [Client SDK](#client-sdk)\n- [Documentation](#documentation)\n- [External Resources](#external-resources)\n- [PHP Libraries Using the MCP SDK](#php-libraries-using-the-mcp-sdk)\n- [Contributing](#contributing)\n- [Credits](#credits)\n- [License](#license)\n\n## Installation\n\n```bash\ncomposer require mcp\u002Fsdk\n```\n\n## Overview\n\nThe MCP PHP SDK provides both **server** and **client** implementations for the Model Context Protocol, enabling you to:\n\n- **Build MCP Servers**: Expose your PHP application's functionality (tools, resources, prompts) to AI agents\n- **Build MCP Clients**: Connect to and interact with MCP servers from your PHP applications\n\n## Server SDK\n\nBuild MCP servers to expose your PHP application's capabilities to AI agents like Claude, Codex, and others.\n\n### Quick Start\n\n```php\nuse Mcp\\Server;\nuse Mcp\\Server\\Transport\\StdioTransport;\nuse Mcp\\Capability\\Attribute\\McpTool;\nuse Mcp\\Capability\\Attribute\\McpResource;\n\n\u002F\u002F Define capabilities using PHP attributes\nclass CalculatorCapabilities\n{\n    #[McpTool]\n    public function add(int $a, int $b): int\n    {\n        return $a + $b;\n    }\n\n    #[McpResource(uri: 'config:\u002F\u002Fcalculator\u002Fsettings')]\n    public function getSettings(): array\n    {\n        return ['precision' => 2];\n    }\n}\n\n\u002F\u002F Build and run the server\n$server = Server::builder()\n    ->setServerInfo('Calculator Server', '1.0.0')\n    ->setDiscovery(__DIR__, ['.'])  \u002F\u002F Auto-discover attributes\n    ->build();\n\n$transport = new StdioTransport();\n$server->run($transport);\n```\n\n### Server Capabilities\n\n- **Tools**: Executable functions that AI agents can call\n- **Resources**: Data sources that can be read (files, configs, databases)\n- **Resource Templates**: Dynamic resources with URI parameters\n- **Prompts**: Pre-defined templates for AI interactions\n- **Server-Initiated Communication**: Elicitations, sampling, logging, progress notifications\n\n### Registration Methods\n\nThere are multiple ways to register your MCP capabilities—choose the approach that best fits your application's architecture:\n\n**1. Attribute-Based Discovery** — Define capabilities using PHP attributes for automatic discovery:\n```php\n#[McpTool]\npublic function generateReport(): string { \u002F* ... *\u002F }\n\n#[McpResource(uri: 'config:\u002F\u002Fapp\u002Fsettings')]\npublic function getConfig(): array { \u002F* ... *\u002F }\n```\n\n**2. Manual Registration** — Register capabilities programmatically without attributes:\n```php\n$server = Server::builder()\n    ->addTool([Calculator::class, 'add'], 'add_numbers')\n    ->addResource([Config::class, 'get'], 'config:\u002F\u002Fapp')\n    ->build();\n```\n\n**3. Hybrid Approach** — Combine both methods for maximum flexibility:\n```php\n$server = Server::builder()\n    ->setDiscovery(__DIR__, ['.'])\n    ->addTool([ExternalService::class, 'process'], 'external')\n    ->build();\n```\n\n### Transports\n\nChoose the transport that matches your deployment environment:\n\n**1. STDIO Transport** — For command-line integration and local processes:\n```php\n$transport = new StdioTransport();\n$server->run($transport);\n```\n\n**2. HTTP Transport** — For web-based servers and distributed systems:\n```php\n$transport = new StreamableHttpTransport($request, $responseFactory, $streamFactory);\n$response = $server->run($transport);\n```\n\n### Session Management\n\nConfigure session storage to maintain state between requests. Choose the backend that fits your infrastructure:\n\n**In-Memory** (default, suitable for STDIO):\n```php\n$server = Server::builder()\n    ->setSession(ttl: 7200) \u002F\u002F 2 hours\n    ->build();\n```\n\n**File-Based** (suitable for single-server HTTP deployments):\n```php\n$server = Server::builder()\n    ->setSession(new FileSessionStore(__DIR__ . '\u002Fsessions'))\n    ->build();\n```\n\n**PSR-16 Cache** (for example with Redis for scaled deployments):\n```php\n$server = Server::builder()\n    ->setSession(new Psr16SessionStore(\n        cache: new Psr16Cache($redisAdapter),\n        prefix: 'mcp-',\n        ttl: 3600\n    ))\n    ->build();\n```\n\n[→ Server Documentation](docs\u002Fserver-builder.md)\n\n## Client SDK\n\nConnect to MCP servers from your PHP applications to access their tools, resources, and prompts.\n\n### Quick Start\n\n```php\nuse Mcp\\Client;\nuse Mcp\\Client\\Transport\\StdioTransport;\n\n\u002F\u002F Build the client\n$client = Client::builder()\n    ->setClientInfo('My Application', '1.0.0')\n    ->setInitTimeout(30)\n    ->setRequestTimeout(120)\n    ->build();\n\n\u002F\u002F Connect to a server\n$transport = new StdioTransport(\n    command: 'php',\n    args: ['\u002Fpath\u002Fto\u002Fserver.php'],\n);\n\n$client->connect($transport);\n\n\u002F\u002F Discover and use capabilities\n$tools = $client->listTools();\n$result = $client->callTool('add', ['a' => 5, 'b' => 3]);\n\n$resources = $client->listResources();\n$content = $client->readResource('config:\u002F\u002Fcalculator\u002Fsettings');\n\n$client->disconnect();\n```\n\n### Client Capabilities\n\n- **Tool Calling**: List and execute tools from any MCP server\n- **Resource Access**: Read static and dynamic resources\n- **Prompt Management**: List and retrieve prompt templates\n- **Completion Support**: Request argument completion suggestions\n\n### Advanced Features\n\n- **Progress Tracking**: Real-time progress during long operations\n```php\n$result = $client->callTool(\n    name: 'process_data',\n    arguments: ['dataset' => 'large_file.csv'],\n    onProgress: function (float $progress, ?float $total, ?string $message) {\n        echo \"Progress: {$progress}\u002F{$total} - {$message}\\n\";\n    }\n);\n```\n\n- **Sampling Support**: Handle server LLM sampling requests\n```php\n$samplingHandler = new SamplingRequestHandler($myCallback);\n$client = Client::builder()\n    ->setCapabilities(new ClientCapabilities(sampling: true))\n    ->addRequestHandler($samplingHandler)\n    ->build();\n```\n\n- **Logging Notifications**: Receive server log messages\n```php\n$loggingHandler = new LoggingNotificationHandler($myCallback);\n$client = Client::builder()\n    ->addNotificationHandler($loggingHandler)\n    ->build();\n```\n\n### Transports\n\nConnect to MCP servers using the transport that matches your setup:\n\n**1. STDIO Transport** — Connect to local server processes:\n```php\n$transport = new StdioTransport(\n    command: 'php',\n    args: ['\u002Fpath\u002Fto\u002Fserver.php'],\n);\n\n$client->connect($transport);\n```\n\n**2. HTTP Transport** — Connect to remote or web-based servers:\n```php\n$transport = new HttpTransport('http:\u002F\u002Flocalhost:8000');\n\n$client->connect($transport);\n```\n\n[→ Client Documentation](docs\u002Fclient.md)\n\n## Documentation\n\n### Core Concepts\n\n- **[Server Builder](docs\u002Fserver-builder.md)** — Complete ServerBuilder reference and configuration\n- **[Client](docs\u002Fclient.md)** — Client SDK for connecting to and communicating with MCP servers\n- **[Transports](docs\u002Ftransports.md)** — STDIO and HTTP transport setup and usage\n- **[MCP Elements](docs\u002Fmcp-elements.md)** — Creating tools, resources, prompts, and templates\n- **[Server-Client Communication](docs\u002Fserver-client-communication.md)** — Sampling, logging, progress, and notifications\n- **[Events](docs\u002Fevents.md)** — Hooking into server lifecycle with events\n\n### Learning & Examples\n\n- **[Examples](docs\u002Fexamples.md)** — Comprehensive example walkthroughs for servers and clients\n- **[ROADMAP.md](ROADMAP.md)** — Planned features and development roadmap\n\n## External Resources\n\n- **[Model Context Protocol Documentation](https:\u002F\u002Fmodelcontextprotocol.io)** — Official MCP documentation\n- **[Model Context Protocol Specification](https:\u002F\u002Fspec.modelcontextprotocol.io)** — Protocol specification\n- **[Officially Supported Servers](https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fservers)** — Reference server implementations\n\n## PHP Libraries Using the MCP SDK\n\n- [pronskiy\u002Fmcp](https:\u002F\u002Fgithub.com\u002Fpronskiy\u002Fmcp) — Additional developer experience layer\n- [symfony\u002Fmcp-bundle](https:\u002F\u002Fgithub.com\u002Fsymfony\u002Fmcp-bundle) — Symfony integration bundle\n- [josbeir\u002Fcakephp-synapse](https:\u002F\u002Fgithub.com\u002Fjosbeir\u002Fcakephp-synapse) — CakePHP integration plugin\n\n## Contributing\n\nWe are passionate about supporting contributors of all levels of experience and would love to see you get involved in the project.\n\nSee the [Contributing Guide](CONTRIBUTING.md) to get started before you [report issues](https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fphp-sdk\u002Fissues) and [send pull requests](https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fphp-sdk\u002Fpulls).\n\n## Credits\n\nThe starting point for this SDK was the [PHP-MCP](https:\u002F\u002Fgithub.com\u002Fphp-mcp\u002Fserver) project, initiated by [Kyrian Obikwelu](https:\u002F\u002Fgithub.com\u002FCodeWithKyrian), and the [Symfony AI initiative](https:\u002F\u002Fgithub.com\u002Fsymfony\u002Fai). We are grateful for the work done by both projects and their contributors, which created a solid foundation for this SDK.\n\n## License\n\nThis project is licensed under the Apache License, Version 2.0 for new contributions, with existing code under the MIT License — see the [LICENSE](LICENSE) file for details.\n","# MCP PHP SDK\n\n模型上下文协议（MCP）的官方 PHP SDK。它提供了一个与框架无关的 API，用于在 PHP 中实现 MCP 服务器和客户端。\n\n该项目是 [PHP 基金会](https:\u002F\u002Fthephp.foundation\u002F) 和 [Symfony 项目](https:\u002F\u002Fsymfony.com\u002F) 合作的成果。它采用了 Symfony 项目的开发实践和标准，包括 [编码规范](https:\u002F\u002Fsymfony.com\u002Fdoc\u002Fcurrent\u002Fcontributing\u002Fcode\u002Fstandards.html) 和 [向后兼容性承诺](https:\u002F\u002Fsymfony.com\u002Fdoc\u002Fcurrent\u002Fcontributing\u002Fcode\u002Fbc.html)。\n\n在首个重大版本发布之前，该 SDK 被视为[实验性](https:\u002F\u002Fsymfony.com\u002Fdoc\u002Fcurrent\u002Fcontributing\u002Fcode\u002Fexperimental.html)，请参阅 [路线图](.\u002FROADMAP.md) 以了解计划中的下一步和功能。\n\n## 目录\n\n- [安装](#installation)\n- [概述](#overview)\n- [服务器 SDK](#server-sdk)\n- [客户端 SDK](#client-sdk)\n- [文档](#documentation)\n- [外部资源](#external-resources)\n- [使用 MCP SDK 的 PHP 库](#php-libraries-using-the-mcp-sdk)\n- [贡献](#contributing)\n- [致谢](#credits)\n- [许可证](#license)\n\n## 安装\n\n```bash\ncomposer require mcp\u002Fsdk\n```\n\n## 概述\n\nMCP PHP SDK 提供了模型上下文协议的**服务器**和**客户端**实现，使您能够：\n\n- **构建 MCP 服务器**：将您的 PHP 应用程序的功能（工具、资源、提示）暴露给 AI 代理\n- **构建 MCP 客户端**：从您的 PHP 应用程序中连接并交互 MCP 服务器\n\n## 服务器 SDK\n\n构建 MCP 服务器，以将您的 PHP 应用程序的能力暴露给 Claude、Codex 等 AI 代理。\n\n### 快速入门\n\n```php\nuse Mcp\\Server;\nuse Mcp\\Server\\Transport\\StdioTransport;\nuse Mcp\\Capability\\Attribute\\McpTool;\nuse Mcp\\Capability\\Attribute\\McpResource;\n\n\u002F\u002F 使用 PHP 属性定义能力\nclass CalculatorCapabilities\n{\n    #[McpTool]\n    public function add(int $a, int $b): int\n    {\n        return $a + $b;\n    }\n\n    #[McpResource(uri: 'config:\u002F\u002Fcalculator\u002Fsettings')]\n    public function getSettings(): array\n    {\n        return ['precision' => 2];\n    }\n}\n\n\u002F\u002F 构建并运行服务器\n$server = Server::builder()\n    ->setServerInfo('Calculator Server', '1.0.0')\n    ->setDiscovery(__DIR__, ['.'])  \u002F\u002F 自动发现属性\n    ->build();\n\n$transport = new StdioTransport();\n$server->run($transport);\n```\n\n### 服务器能力\n\n- **工具**：AI 代理可以调用的可执行函数\n- **资源**：可读取的数据源（文件、配置、数据库）\n- **资源模板**：带有 URI 参数的动态资源\n- **提示**：预定义的 AI 交互模板\n- **服务器发起的通信**：启发式请求、采样、日志记录、进度通知\n\n### 注册方法\n\n有多种方式可以注册您的 MCP 能力——选择最适合您应用程序架构的方法：\n\n**1. 基于属性的发现** — 使用 PHP 属性定义能力，以便自动发现：\n```php\n#[McpTool]\npublic function generateReport(): string { \u002F* ... *\u002F }\n\n#[McpResource(uri: 'config:\u002F\u002Fapp\u002Fsettings')]\npublic function getConfig(): array { \u002F* ... *\u002F }\n```\n\n**2. 手动注册** — 不使用属性而通过编程方式注册能力：\n```php\n$server = Server::builder()\n    ->addTool([Calculator::class, 'add'], 'add_numbers')\n    ->addResource([Config::class, 'get'], 'config:\u002F\u002Fapp')\n    ->build();\n```\n\n**3. 混合方法** — 结合两种方法以获得最大灵活性：\n```php\n$server = Server::builder()\n    ->setDiscovery(__DIR__, ['.'])\n    ->addTool([ExternalService::class, 'process'], 'external')\n    ->build();\n```\n\n### 传输方式\n\n根据您的部署环境选择合适的传输方式：\n\n**1. STDIO 传输** — 用于命令行集成和本地进程：\n```php\n$transport = new StdioTransport();\n$server->run($transport);\n```\n\n**2. HTTP 传输** — 用于基于 Web 的服务器和分布式系统：\n```php\n$transport = new StreamableHttpTransport($request, $responseFactory, $streamFactory);\n$response = $server->run($transport);\n```\n\n### 会话管理\n\n配置会话存储以在请求之间保持状态。选择适合您基础设施的后端：\n\n**内存中**（默认，适用于 STDIO）：\n```php\n$server = Server::builder()\n    ->setSession(ttl: 7200) \u002F\u002F 2 小时\n    ->build();\n```\n\n**基于文件**（适用于单服务器 HTTP 部署）：\n```php\n$server = Server::builder()\n    ->setSession(new FileSessionStore(__DIR__ . '\u002Fsessions'))\n    ->build();\n```\n\n**PSR-16 缓存**（例如使用 Redis 进行扩展部署）：\n```php\n$server = Server::builder()\n    ->setSession(new Psr16SessionStore(\n        cache: new Psr16Cache($redisAdapter),\n        prefix: 'mcp-',\n        ttl: 3600\n    ))\n    ->build();\n```\n\n[→ 服务器文档](docs\u002Fserver-builder.md)\n\n## 客户端 SDK\n\n从您的 PHP 应用程序中连接到 MCP 服务器，以访问其工具、资源和提示。\n\n### 快速入门\n\n```php\nuse Mcp\\Client;\nuse Mcp\\Client\\Transport\\StdioTransport;\n\n\u002F\u002F 构建客户端\n$client = Client::builder()\n    ->setClientInfo('My Application', '1.0.0')\n    ->setInitTimeout(30)\n    ->setRequestTimeout(120)\n    ->build();\n\n\u002F\u002F 连接到服务器\n$transport = new StdioTransport(\n    command: 'php',\n    args: ['\u002Fpath\u002Fto\u002Fserver.php'],\n);\n\n$client->connect($transport);\n\n\u002F\u002F 发现并使用能力\n$tools = $client->listTools();\n$result = $client->callTool('add', ['a' => 5, 'b' => 3]);\n\n$resources = $client->listResources();\n$content = $client->readResource('config:\u002F\u002Fcalculator\u002Fsettings');\n\n$client->disconnect();\n```\n\n### 客户端能力\n\n- **调用工具**：列出并执行任何 MCP 服务器上的工具\n- **访问资源**：读取静态和动态资源\n- **提示管理**：列出并获取提示模板\n- **补全支持**：请求参数补全建议\n\n### 进阶功能\n\n- **进度跟踪**：在长时间操作期间实时跟踪进度\n```php\n$result = $client->callTool(\n    name: 'process_data',\n    arguments: ['dataset' => 'large_file.csv'],\n    onProgress: function (float $progress, ?float $total, ?string $message) {\n        echo \"进度: {$progress}\u002F{$total} - {$message}\\n\";\n    }\n);\n```\n\n- **采样支持**：处理服务器 LLM 的采样请求\n```php\n$samplingHandler = new SamplingRequestHandler($myCallback);\n$client = Client::builder()\n    ->setCapabilities(new ClientCapabilities(sampling: true))\n    ->addRequestHandler($samplingHandler)\n    ->build();\n```\n\n- **日志通知**：接收服务器的日志消息\n```php\n$loggingHandler = new LoggingNotificationHandler($myCallback);\n$client = Client::builder()\n    ->addNotificationHandler($loggingHandler)\n    ->build();\n```\n\n### 传输方式\n\n使用与您的设置匹配的传输方式连接到 MCP 服务器：\n\n**1. STDIO 传输** — 连接到本地服务器进程：\n```php\n$transport = new StdioTransport(\n    command: 'php',\n    args: ['\u002Fpath\u002Fto\u002Fserver.php'],\n);\n\n$client->connect($transport);\n```\n\n**2. HTTP 传输** — 连接到远程或基于 Web 的服务器：\n```php\n$transport = new HttpTransport('http:\u002F\u002Flocalhost:8000');\n\n$client->connect($transport);\n```\n\n[→ 客户端文档](docs\u002Fclient.md)\n\n## 文档\n\n### 核心概念\n\n- **[服务器构建器](docs\u002Fserver-builder.md)** — 完整的 ServerBuilder 参考与配置\n- **[客户端](docs\u002Fclient.md)** — 用于连接和与 MCP 服务器通信的客户端 SDK\n- **[传输方式](docs\u002Ftransports.md)** — STDIO 和 HTTP 传输的设置与使用\n- **[MCP 元素](docs\u002Fmcp-elements.md)** — 创建工具、资源、提示和模板\n- **[服务器-客户端通信](docs\u002Fserver-client-communication.md)** — 抽样、日志记录、进度和通知\n- **[事件](docs\u002Fevents.md)** — 使用事件钩入服务器生命周期\n\n### 学习与示例\n\n- **[示例](docs\u002Fexamples.md)** — 服务器和客户端的全面示例讲解\n- **[ROADMAP.md](ROADMAP.md)** — 计划中的功能与开发路线图\n\n## 外部资源\n\n- **[Model Context 协议文档](https:\u002F\u002Fmodelcontextprotocol.io)** — 官方 MCP 文档\n- **[Model Context 协议规范](https:\u002F\u002Fspec.modelcontextprotocol.io)** — 协议规范\n- **[官方支持的服务器](https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fservers)** — 参考服务器实现\n\n## 使用 MCP SDK 的 PHP 库\n\n- [pronskiy\u002Fmcp](https:\u002F\u002Fgithub.com\u002Fpronskiy\u002Fmcp) — 额外的开发者体验层\n- [symfony\u002Fmcp-bundle](https:\u002F\u002Fgithub.com\u002Fsymfony\u002Fmcp-bundle) — Symfony 集成组件包\n- [josbeir\u002Fcakephp-synapse](https:\u002F\u002Fgithub.com\u002Fjosbeir\u002Fcakephp-synapse) — CakePHP 集成插件\n\n## 贡献\n\n我们热衷于支持各层次经验的贡献者，并非常欢迎您的参与。\n\n请参阅 [贡献指南](CONTRIBUTING.md)，在您 [提交问题](https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fphp-sdk\u002Fissues) 和 [发送拉取请求](https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fphp-sdk\u002Fpulls) 之前开始行动。\n\n## 致谢\n\n本 SDK 的起点是 [PHP-MCP](https:\u002F\u002Fgithub.com\u002Fphp-mcp\u002Fserver) 项目，由 [Kyrian Obikwelu](https:\u002F\u002Fgithub.com\u002FCodeWithKyrian) 发起，以及 [Symfony AI 计划](https:\u002F\u002Fgithub.com\u002Fsymfony\u002Fai)。我们感谢这两个项目及其贡献者所做出的工作，正是他们的努力为本 SDK 打下了坚实的基础。\n\n## 许可证\n\n本项目对新贡献采用 Apache License, Version 2.0 许可证，现有代码则采用 MIT 许可证 — 详情请参阅 [LICENSE](LICENSE) 文件。","# MCP PHP SDK 快速上手指南\n\n## 环境准备\n\n在开始之前，请确保您的开发环境满足以下要求：\n\n*   **操作系统**：Linux, macOS 或 Windows (需配置好 PHP 环境)\n*   **PHP 版本**：建议 PHP 8.1 或更高版本\n*   **依赖管理**：必须安装 [Composer](https:\u002F\u002Fgetcomposer.org\u002F)\n*   **前置知识**：了解基本的 PHP 面向对象编程和 Composer 使用\n\n> **提示**：国内开发者若遇到 Composer 下载缓慢，推荐使用国内镜像源加速安装：\n> ```bash\n> composer config -g repo.packagist composer https:\u002F\u002Fmirrors.aliyun.com\u002Fcomposer\u002F\n> ```\n\n## 安装步骤\n\n通过 Composer 将 `mcp\u002Fsdk` 添加到您的项目中：\n\n```bash\ncomposer require mcp\u002Fsdk\n```\n\n## 基本使用\n\nMCP PHP SDK 支持构建 **服务端 (Server)** 和 **客户端 (Client)**。以下是两种模式的最简示例。\n\n### 1. 构建 MCP 服务端 (Server)\n\n创建一个 PHP 文件（例如 `server.php`），定义工具能力并启动服务。此示例使用 `StdioTransport`，适合通过命令行与 AI 代理（如 Claude）交互。\n\n```php\n\u003C?php\n\u002F\u002F server.php\n\nuse Mcp\\Server;\nuse Mcp\\Server\\Transport\\StdioTransport;\nuse Mcp\\Capability\\Attribute\\McpTool;\nuse Mcp\\Capability\\Attribute\\McpResource;\n\n\u002F\u002F 1. 定义能力类\nclass CalculatorCapabilities\n{\n    #[McpTool]\n    public function add(int $a, int $b): int\n    {\n        return $a + $b;\n    }\n\n    #[McpResource(uri: 'config:\u002F\u002Fcalculator\u002Fsettings')]\n    public function getSettings(): array\n    {\n        return ['precision' => 2];\n    }\n}\n\n\u002F\u002F 2. 构建并运行服务器\n$server = Server::builder()\n    ->setServerInfo('Calculator Server', '1.0.0')\n    ->setDiscovery(__DIR__, ['.'])  \u002F\u002F 自动发现当前目录下的属性标记\n    ->build();\n\n$transport = new StdioTransport();\n$server->run($transport);\n```\n\n**运行方式**：\n在终端中直接运行该脚本，它将等待标准输入并与调用者通信：\n```bash\nphp server.php\n```\n\n### 2. 构建 MCP 客户端 (Client)\n\n创建另一个 PHP 文件（例如 `client.php`），用于连接上述服务端并调用功能。\n\n```php\n\u003C?php\n\u002F\u002F client.php\n\nuse Mcp\\Client;\nuse Mcp\\Client\\Transport\\StdioTransport;\n\n\u002F\u002F 1. 构建客户端\n$client = Client::builder()\n    ->setClientInfo('My Application', '1.0.0')\n    ->setInitTimeout(30)\n    ->build();\n\n\u002F\u002F 2. 连接到本地运行的服务端进程\n$transport = new StdioTransport(\n    command: 'php',\n    args: ['server.php'], \u002F\u002F 指向刚才创建的 server.php\n);\n\n$client->connect($transport);\n\n\u002F\u002F 3. 发现并调用工具\n$tools = $client->listTools();\necho \"可用工具：\" . implode(', ', array_column($tools, 'name')) . \"\\n\";\n\n$result = $client->callTool('add', ['a' => 5, 'b' => 3]);\necho \"计算结果 (5+3): \" . $result . \"\\n\";\n\n\u002F\u002F 4. 读取资源\n$content = $client->readResource('config:\u002F\u002Fcalculator\u002Fsettings');\nprint_r($content);\n\n$client->disconnect();\n```\n\n**运行方式**：\n```bash\nphp client.php\n```\n\n输出示例：\n```text\n可用工具：add\n计算结果 (5+3): 8\nArray\n(\n    [precision] => 2\n)\n```","某电商团队希望让内部 AI 助手直接调用现有的 PHP 订单系统，以自动处理退款和查询库存。\n\n### 没有 php-sdk 时\n- **协议实现繁琐**：开发人员需手动解析 Model Context Protocol 的 JSON-RPC 消息格式，极易因字段遗漏导致通信失败。\n- **功能暴露困难**：将原有的 PHP 业务逻辑（如 `refundOrder`）转化为 AI 可识别的工具，需要编写大量重复的适配代码和文档描述。\n- **维护成本高昂**：缺乏统一标准，每次新增 AI 能力都需重构接口层，且难以保证与不同 AI 客户端的兼容性。\n- **调试黑盒化**：缺少标准化的传输层（如 STDIO 或 HTTP）支持，本地调试 AI 与后端交互时日志混乱，定位问题耗时。\n\n### 使用 php-sdk 后\n- **开箱即用**：php-sdk 内置了完整的协议解析器，只需几行配置即可建立符合标准的 MCP 服务端，无需关注底层细节。\n- **属性化开发**：利用 PHP 属性（Attributes）标记现有方法（如 `#[McpTool]`），瞬间将普通函数变为 AI 可调用的工具，自动同步元数据。\n- **架构灵活统一**：遵循 Symfony 编码规范，支持自动发现与手动注册混合模式，轻松集成到现有项目中并保持长期向后兼容。\n- **多场景部署**：内置 STDIO 和 HTTP 多种传输方式，既能本地命令行调试，也能快速部署为分布式微服务供云端 AI 调用。\n\nphp-sdk 通过标准化接口和声明式开发，将 PHP 应用接入 AI 生态的周期从数天缩短至几分钟。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmodelcontextprotocol_php-sdk_9e326231.png","modelcontextprotocol","Model Context Protocol","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fmodelcontextprotocol_c5bd76d0.png","An open protocol that enables seamless integration between LLM applications and external data sources and tools.",null,"https:\u002F\u002Fmodelcontextprotocol.io","https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol",[84,88,92],{"name":85,"color":86,"percentage":87},"PHP","#4F5D95",99.8,{"name":89,"color":90,"percentage":91},"Twig","#c1d026",0.1,{"name":93,"color":94,"percentage":91},"Makefile","#427819",1433,126,"2026-04-04T16:50:34","NOASSERTION",1,"未说明","不需要",{"notes":103,"python":104,"dependencies":105},"这是一个 PHP 开发工具包（SDK），用于实现 Model Context Protocol (MCP) 的服务器和客户端，而非直接运行 AI 模型的工具。因此不需要 GPU 或特定内存配置。安装需通过 Composer (`composer require mcp\u002Fsdk`)。支持 STDIO 和 HTTP 两种传输方式，会话存储支持内存、文件或基于 PSR-16 的缓存后端（如 Redis）。该项目目前处于实验阶段。","不适用",[106,107],"composer (PHP 包管理器)","mcp\u002Fsdk",[13,15],"2026-03-27T02:49:30.150509","2026-04-06T05:19:34.088786",[112,117,122,127,132,137],{"id":113,"question_zh":114,"answer_zh":115,"source_url":116},16804,"如何在 PHP SDK 中为资源（Resource）添加 `_meta` 字段？","MCP 规范定义了通用的 `_meta` 字段，但在早期版本的 php-sdk 中可能未直接暴露该配置。根据社区反馈和修复进度，该功能已通过 PR #129 实现。请确保您的 SDK 版本已更新到包含此修复的最新版本，之后在定义资源时即可按照规范添加 `_meta` 字段。","https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fphp-sdk\u002Fissues\u002F121",{"id":118,"question_zh":119,"answer_zh":120,"source_url":121},16805,"PHP SDK 的客户端组件是否支持异步操作？推荐使用什么技术实现？","是的，客户端需要支持异步操作，因为 MCP 协议本质上是异步的。维护者建议避免依赖尚未标准化的 Promise PSR 或特定的第三方异步库（如 ReactPHP），而是推荐使用 PHP 8.1+ 原生的 Fibers（协程）来处理并发。使用 Fibers 可以在保持同步代码编写风格的同时实现异步能力，且无需引入额外的外部依赖，这与服务端组件的设计哲学保持一致。","https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fphp-sdk\u002Fissues\u002F185",{"id":123,"question_zh":124,"answer_zh":125,"source_url":126},16806,"在 PHP-FPM 环境下如何运行 Streamable HTTP 传输（SSE 流）？","这是一个具有挑战性的场景。SSE（Server-Sent Events）需要一个持久连接的 GET 请求来推送事件，而典型的 PHP-FPM 环境是同步且无状态的，会在脚本执行完毕后立即终止进程，无法维持长连接。目前的建议是：首先使用简单的、无状态的请求\u002F响应 HTTP 传输作为基准，这能很好地兼容大多数 PHP 应用；对于需要长连接和流式传输的高级场景，可能需要结合会话管理或考虑非 FPM 的运行环境（如 RoadRunner 或 Swoole），目前库正在探索如何分层支持这些高级功能。","https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fphp-sdk\u002Fissues\u002F7",{"id":128,"question_zh":129,"answer_zh":130,"source_url":131},16807,"按照 README 指示操作后，MCP Inspector 提示“服务器不支持任何 MCP 能力”怎么办？","这通常是由于示例代码不完整或 Composer 依赖安装步骤缺失导致的。如果遇到问题，建议检查是否完整执行了所有 Composer 安装步骤以确保环境设置正确。此外，由于文档和示例可能在不断更新，如果问题持续存在，建议查看最新的文档或尝试重新拉取最新代码进行测试，因为某些早期的配置问题可能已在后续版本中修复。","https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fphp-sdk\u002Fissues\u002F179",{"id":133,"question_zh":134,"answer_zh":135,"source_url":136},16808,"官方 PHP SDK 是否包含客户端（Client）组件？","是的，官方 SDK 正在积极开发并整合客户端组件。早期的 PHP MCP 实现曾将客户端放在单独的仓库中，但为了提供统一的官方支持并遵循相同的开发标准，维护者决定将 `Mcp\\Client` 重新实现并直接集成到主 `php-sdk` 仓库中（作为 `src\u002FClient` 子组件）。如果您之前使用的是独立的客户端库，建议迁移至官方 SDK 中的最新客户端实现以获取更好的兼容性和支持。","https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fphp-sdk\u002Fissues\u002F15",{"id":138,"question_zh":139,"answer_zh":140,"source_url":141},16809,"如何在工具或资源注册时使用编程方式动态定义处理器（Handler）？","您可以通过构建一个关联数组来动态注册工具或资源。在定义数组时，指定 `'type'`（如 'tool' 或 'resource'），并在 `'definition'` 中包含 `'handler'` 键指向您的回调函数或类方法，同时提供 `'uri'`、`'name'` 和 `'description'` 等必要元数据。这种方式允许您在运行时根据逻辑动态生成和注册多个工具或资源，而无需硬编码每一个定义。","https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fphp-sdk\u002Fissues\u002F108",[143,148,153,158,163,168],{"id":144,"version":145,"summary_zh":146,"released_at":147},99065,"v0.4.0","## 变更内容\n* 杂项：将许可协议更新为 Apache 2.0，适用于 @domdomegg 在 https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fphp-sdk\u002Fpull\u002F222 中的新贡献\n* [服务器] 重构：将格式化器提取到专用类中，由 @e0ipso 完成，见 https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fphp-sdk\u002Fpull\u002F224\n* [模式] 将模式工具数组重构为使用 normalizeSchemaProperties 方法，由 @bigdevlarry 完成，见 https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fphp-sdk\u002Fpull\u002F223\n* 根据更新的 Symfony 规则更新代码风格，由 @chr-hertel 完成，见 https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fphp-sdk\u002Fpull\u002F229\n* 将流水线切换至一致性基线，由 @chr-hertel 完成，见 https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fphp-sdk\u002Fpull\u002F230\n* 添加使用 phpDocumentor 生成 API 文档的功能，由 @jonathanhefner 完成，见 https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fphp-sdk\u002Fpull\u002F184\n* 为根目录下的最新添加内容扩展 gitattributes 配置，由 @chr-hertel 完成，见 https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fphp-sdk\u002Fpull\u002F237\n* [服务器] 为保持一致性，将 `Psr16StoreSession` 重命名为 `Psr16SessionStore`，由 @chr-hertel 完成，见 https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fphp-sdk\u002Fpull\u002F236\n* [服务器] 在 CallbackStream 中抛出特定于包的异常，由 @chr-hertel 完成，见 https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fphp-sdk\u002Fpull\u002F233\n* [服务器] 将会话解码逻辑从构造函数中移出，由 @chr-hertel 完成，见 https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fphp-sdk\u002Fpull\u002F238\n* [服务器] 修复：HTTP 传输头兼容性问题，由 @dotmarn 完成，见 https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fphp-sdk\u002Fpull\u002F227\n* [服务器] 为 StreamableHttpTransport 添加中间件处理器，由 @sveneld 完成，见 https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fphp-sdk\u002Fpull\u002F218\n* [服务器] 修复会话中的无效数据问题，由 @sveneld 完成，见 https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fphp-sdk\u002Fpull\u002F241\n* [服务器] 新特性：改进无效资源消息，由 @alexislefebvre 完成，见 https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fphp-sdk\u002Fpull\u002F242\n* 新特性：测试 Symfony 8，由 @alexislefebvre 完成，见 https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fphp-sdk\u002Fpull\u002F243\n* [服务器] 新特性：改进资源模板消息，由 @bigdevlarry 完成，见 https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fphp-sdk\u002Fpull\u002F245\n* [服务器][模式] 为服务器到客户端的用户输入请求添加启发式支持，由 @wachterjohannes 完成，见 https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fphp-sdk\u002Fpull\u002F228\n* [服务器] 添加缺失的资源订阅\u002F取消订阅处理器，由 @bigdevlarry 完成，见 https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fphp-sdk\u002Fpull\u002F220\n* 更新 SECURITY.md 文件，以使用 GitHub 安全公告功能，由 @localden 完成，见 https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fphp-sdk\u002Fpull\u002F250\n* [服务器] 添加服务器生命周期事件，由 @EdouardCourty 完成，见 https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fphp-sdk\u002Fpull\u002F175\n* [服务器] 杂项（HTTP）：为会话 ID 头部创建常量，由 @EdouardCourty 完成，见 https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fphp-sdk\u002Fpull\u002F246\n\n## 新贡献者\n* @domdomegg 在 https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fphp-sdk\u002Fpull\u002F222 中完成了首次贡献\n* @e0ipso 在 https:\u002F\u002Fg","2026-02-23T22:45:25",{"id":149,"version":150,"summary_zh":151,"released_at":152},99066,"v0.3.0","## 变更内容\n* [服务器] 在一致性测试服务器示例中添加对二进制资源的支持，由 @luoyue712 在 https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fphp-sdk\u002Fpull\u002F216 中完成\n* [服务器] 修复使用 Docker PHP-FPM 时一致性采样测试卡住的问题，由 @CodeWithKyrian 在 https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fphp-sdk\u002Fpull\u002F219 中完成\n* [服务器] 为 MCP 工具添加输出模式支持，由 @bigdevlarry 在 https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fphp-sdk\u002Fpull\u002F153 中完成\n* [服务器] 使用 SchemaValidator 验证工具输入，由 @Nyholm 在 https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fphp-sdk\u002Fpull\u002F203 中完成\n* [模式] 将 Capability 中的 `schema` 重命名为 `resource`，由 @luoyue712 在 https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fphp-sdk\u002Fpull\u002F217 中完成\n* [服务器] 添加 SchemaGenerator 和 Discoverer 的接口抽象，并改进依赖注入，由 @soyuka 在 https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fphp-sdk\u002Fpull\u002F215 中完成\n* [服务器] 使用 getDescription 获取所有描述，由 @luoyue712 在 https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fphp-sdk\u002Fpull\u002F188 中完成\n* [服务器] 向 StdioTransport 构造函数添加 $runnerControl 参数，由 @Nyholm 在 https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fphp-sdk\u002Fpull\u002F205 中完成\n* [模式] 将 Error 类中的静态方法声明为 final，由 @Nyholm 在 https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fphp-sdk\u002Fpull\u002F204 中完成\n\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fphp-sdk\u002Fcompare\u002Fv0.2.2...v0.3.0","2026-01-11T21:58:55",{"id":154,"version":155,"summary_zh":156,"released_at":157},99067,"v0.2.2","## 变更内容\n* 使用 ergebnis\u002Fcomposer-normalize 对 composer.json 进行规范化，由 @Nyholm 在 https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fphp-sdk\u002Fpull\u002F208 中完成\n* 对 PSR 版本的要求更加宽松，由 @Nyholm 在 https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fphp-sdk\u002Fpull\u002F202 中完成\n* 移除使用参数名 _session 和 _request 的功能，由 @Nyholm 在 https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fphp-sdk\u002Fpull\u002F206 中完成\n* 在 $context['exception'] 中使用 throwable 对象，由 @Nyholm 在 https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fphp-sdk\u002Fpull\u002F207 中完成\n* [服务器][一致性] 启动一致性测试的采用工作，由 @chr-hertel 在 https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fphp-sdk\u002Fpull\u002F181 中完成\n\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fphp-sdk\u002Fcompare\u002Fv0.2.1...v0.2.2","2025-12-28T06:43:19",{"id":159,"version":160,"summary_zh":161,"released_at":162},99068,"v0.2.1","## 变更内容\n* @chr-hertel 在 https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fphp-sdk\u002Fpull\u002F196 中对 cs fixer 配置和 Makefile 进行了整理和优化。\n* @Nyholm 在 https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fphp-sdk\u002Fpull\u002F195 中添加了一种优雅地停止 stdioTransport 的方式。\n* @Nyholm 在 https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fphp-sdk\u002Fpull\u002F197 中允许使用 Symfony 5.4 版本进行安装。\n* @Nyholm 在 https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fphp-sdk\u002Fpull\u002F198 中将示例文件移动到 server 目录下。\n* @chr-hertel 在 https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fphp-sdk\u002Fpull\u002F199 中添加了关于支持 Symfony 5.4 版本的变更日志条目。\n* @Nyholm 在 https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fphp-sdk\u002Fpull\u002F201 中确保 StdioTransport 不会破坏 0.2.1 版本的向后兼容性。\n\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fphp-sdk\u002Fcompare\u002Fv0.2.0...v0.2.1","2025-12-27T15:08:49",{"id":164,"version":165,"summary_zh":166,"released_at":167},99069,"v0.2.0","## 变更内容\n* @Nyholm 在 https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fphp-sdk\u002Fpull\u002F162 中修复了 README 中的一个小错别字\n* @Nyholm 在 https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fphp-sdk\u002Fpull\u002F163 中移除了 Transport 中的冗余方法\n* @dereuromark 在 https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fphp-sdk\u002Fpull\u002F166 中向 README 添加了 CakePHP 集成插件\n* @Nyholm 在 https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fphp-sdk\u002Fpull\u002F165 中告知客户端可以使用 Mcp-Session-Id 头\n* @Nyholm 在 https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fphp-sdk\u002Fpull\u002F171 中修复了代码风格问题\n* [服务器] @lvluoyue 在 https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fphp-sdk\u002Fpull\u002F160 中将 Protocol 与 TransportInterface 解耦，以提高可重用性\n* @Nyholm 在 https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fphp-sdk\u002Fpull\u002F164 中允许用户不指定服务器信息\n* @lvluoyue 在 https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fphp-sdk\u002Fpull\u002F158 中修复了错误的断开连接状态码\n* [服务器] @chr-hertel 在 https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fphp-sdk\u002Fpull\u002F172 中扩展了变更日志，以涵盖 0.1 版本\n* @Nyholm 在 https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fphp-sdk\u002Fpull\u002F173 中添加了 0.2.0 版本的变更日志\n* @chr-hertel 在 https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fphp-sdk\u002Fpull\u002F182 中将 PHP 8.5 加入到 CI 流水线\n* [服务器] @soyuka 在 https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fphp-sdk\u002Fpull\u002F183 中使 addLoaders 与 addRequestHandlers 对齐\n* [服务器] @Nyholm 在 https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fphp-sdk\u002Fpull\u002F176 中添加了 RequestContext 和日志记录功能\n* @Nyholm 在 https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fphp-sdk\u002Fpull\u002F186 中修复了 Builder::addLoders() 的 bug\n* [Schema] @CodeWithKyrian 在 https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fphp-sdk\u002Fpull\u002F191 中修复了 ListResourcesResult 中资源类型提示的错误\n* @CodeWithKyrian 在 https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fphp-sdk\u002Fpull\u002F190 中修复了客户端通信服务器示例中未使用 RequestContext 的问题\n* @Nyholm 在 https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fphp-sdk\u002Fpull\u002F187 中为 0.2.0 版本添加了变更日志\n\n## 新贡献者\n* @Nyholm 在 https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fphp-sdk\u002Fpull\u002F162 中完成了首次贡献\n* @dereuromark 在 https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fphp-sdk\u002Fpull\u002F166 中完成了首次贡献\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fphp-sdk\u002Fcompare\u002Fv0.1.0...v0.2.0","2025-12-20T09:39:27",{"id":169,"version":170,"summary_zh":171,"released_at":172},99070,"v0.1.0","## 变更内容\n* [服务端] 基于 Symfony 的 MCP SDK 启动 SDK，由 @chr-hertel 在 https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fphp-sdk\u002Fpull\u002F1 中完成\n* [服务端] 引入能力注册与发现功能，由 @chr-hertel 在 https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fphp-sdk\u002Fpull\u002F4 中完成\n* [示例][服务端] 采用服务端示例，由 @chr-hertel 在 https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fphp-sdk\u002Fpull\u002F5 中完成\n* 添加 WIP 标记到 README，由 @chr-hertel 在 https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fphp-sdk\u002Fpull\u002F6 中完成\n* [服务端] 修复通过 ServerBuilder 手动注册能力的问题，由 @chr-hertel 在 https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fphp-sdk\u002Fpull\u002F18 中完成\n* 更新 README，由 @pronskiy 在 https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fphp-sdk\u002Fpull\u002F20 中完成\n* 在 README 中添加关于最低稳定性的说明，由 @chr-hertel 在 https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fphp-sdk\u002Fpull\u002F21 中完成\n* 修复 JSON 格式问题，由 @OskarStark 在 https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fphp-sdk\u002Fpull\u002F22 中完成\n* 移除未使用的开发依赖，由 @OskarStark 在 https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fphp-sdk\u002Fpull\u002F33 中完成\n* [CI] 将 `actions\u002Fcheckout` 从 v4 更新至 v5，由 @OskarStark 在 https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fphp-sdk\u002Fpull\u002F24 中完成\n* 修复文档和配置文件中的拼写错误，由 @OskarStark 在 https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fphp-sdk\u002Fpull\u002F25 中完成\n* 移除未使用的 `nyholm\u002Fnsa` 开发依赖，由 @OskarStark 在 https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fphp-sdk\u002Fpull\u002F28 中完成\n* 要求使用 Symfony 7.3 版本，而非已停止维护的版本，由 @OskarStark 在 https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fphp-sdk\u002Fpull\u002F26 中完成\n* [CI] 在安装前验证 `composer.json` 文件，由 @OskarStark 在 https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fphp-sdk\u002Fpull\u002F29 中完成\n* 修复快速入门示例中 README 的命名空间导入问题，由 @CodeWithKyrian 在 https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fphp-sdk\u002Fpull\u002F23 中完成\n* 移除过时的文档，由 @chr-hertel 在 https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fphp-sdk\u002Fpull\u002F32 中完成\n* 补充缺失的 `ConfigurationException` 类，由 @OskarStark 在 https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fphp-sdk\u002Fpull\u002F31 中完成\n* 移除 `composer.json` 中的 `suggest` 部分，由 @OskarStark 在 https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fphp-sdk\u002Fpull\u002F34 中完成\n* [CI] 将工作流文件名由 `.yml` 改为 `.yaml`，由 @OskarStark 在 https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fphp-sdk\u002Fpull\u002F35 中完成\n* 为提高清晰度和一致性更新 README，由 @sapayth 在 https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fphp-sdk\u002Fpull\u002F38 中完成\n* 更新 README.md，以澄清“重要”部分的语法，由 @Adebayo120 在 https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fphp-sdk\u002Fpull\u002F41 中完成\n* [CI] 仅安装一次依赖项，由 @OskarStark 在 https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fphp-sdk\u002Fpull\u002F30 中完成\n* [服务端] 修复抽象方法中返回值类型，由 `self` 更改为 `static`，由 @markinigor 在 https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fphp-sdk\u002Fpull\u002F53 中完成\n* 将 Makefile 添加到 .gitattributes 的 export-ignore 列表中，由 @roxblnfk 在 https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fphp-sdk\u002Fpull\u002F56 中完成\n* [服务端] 注册中心架构重构——增强关注点分离，由 @b","2025-11-20T18:57:04"]