[README] Show conformance badges in a table (#501)
This commit is contained in:
parent
f39625b257
commit
7047019030
2 changed files with 18 additions and 15 deletions
20
README.md
20
README.md
|
|
@ -1,19 +1,10 @@
|
|||
# MCP PHP SDK
|
||||
|
||||
<div align="center">
|
||||
|
||||
[](https://packagist.org/packages/mcp/sdk)
|
||||
[](https://github.com/modelcontextprotocol/php-sdk/actions/workflows/pipeline.yaml)
|
||||
[](https://packagist.org/packages/mcp/sdk)
|
||||
[](LICENSE)
|
||||
|
||||
[](https://github.com/modelcontextprotocol/php-sdk/actions/workflows/conformance-weekly.yaml)
|
||||
[](https://github.com/modelcontextprotocol/php-sdk/actions/workflows/conformance-weekly.yaml)
|
||||
[](https://github.com/modelcontextprotocol/php-sdk/actions/workflows/conformance-weekly.yaml)
|
||||
[](https://github.com/modelcontextprotocol/php-sdk/actions/workflows/conformance-weekly.yaml)
|
||||
|
||||
</div>
|
||||
|
||||
The official PHP SDK for the Model Context Protocol (MCP). It provides a framework-agnostic API for implementing MCP
|
||||
servers and clients in PHP — tools, resources, prompts, STDIO and HTTP transports, sessions, authorization, and both
|
||||
protocol eras (the `initialize` handshake and the stateless `2026-07-28` revision).
|
||||
|
|
@ -25,6 +16,17 @@ development practices and standards from the Symfony project, including [Coding
|
|||
Until the first major release, this SDK is considered [experimental](https://symfony.com/doc/current/contributing/code/experimental.html), please see the [roadmap](./ROADMAP.md) for
|
||||
planned next steps and features.
|
||||
|
||||
## Protocol Conformance
|
||||
|
||||
Measured weekly against the [MCP Conformance Test Framework](https://github.com/modelcontextprotocol/conformance),
|
||||
as passing checks out of total. The `2026-07-28` scores run against the framework's `alpha` releases, so they move as
|
||||
upstream publishes new scenarios.
|
||||
|
||||
| Revision | Server | Client |
|
||||
|:--------:|:------:|:------:|
|
||||
| `2026-07-28` | [](https://github.com/modelcontextprotocol/php-sdk/actions/workflows/conformance-weekly.yaml) | [](https://github.com/modelcontextprotocol/php-sdk/actions/workflows/conformance-weekly.yaml) |
|
||||
| `2025-11-25` | [](https://github.com/modelcontextprotocol/php-sdk/actions/workflows/conformance-weekly.yaml) | [](https://github.com/modelcontextprotocol/php-sdk/actions/workflows/conformance-weekly.yaml) |
|
||||
|
||||
## Installation
|
||||
|
||||
```bash
|
||||
|
|
|
|||
|
|
@ -16,11 +16,12 @@
|
|||
* php score.php <server|client> <spec-version> [results-dir]
|
||||
*
|
||||
* The conformance CLI writes one `checks.json` per scenario into
|
||||
* `[results-dir]` (default `results`), relative to this file. A scenario
|
||||
* counts as passing when none of its checks has a FAILURE status; the badge
|
||||
* message is "<passed>/<total> (<pct>%)" and is written to
|
||||
* `[results-dir]` (default `results`), relative to this file. Every check with
|
||||
* a SUCCESS or FAILURE status counts towards the score; the badge message is
|
||||
* "<passed>/<total> (<pct>%)" and is written to
|
||||
* `<suite>-conformance-<spec-version>.json`, so each revision gets its own
|
||||
* badge.
|
||||
* badge. The badge is labelled "checks" only: the README renders the badges in
|
||||
* a table whose row and column headers already name the revision and suite.
|
||||
*/
|
||||
|
||||
use Symfony\Component\Console\Command\Command;
|
||||
|
|
@ -92,7 +93,7 @@ require_once dirname(__DIR__, 2).'/vendor/autoload.php';
|
|||
|
||||
$badge = [
|
||||
'schemaVersion' => 1,
|
||||
'label' => sprintf('%s %s', $suite, $specVersion),
|
||||
'label' => 'checks',
|
||||
'message' => $total > 0 ? sprintf('%d/%d (%d%%)', $passed, $total, $pct) : 'no data',
|
||||
'color' => match (true) {
|
||||
0 === $total => 'lightgrey',
|
||||
|
|
@ -116,7 +117,7 @@ require_once dirname(__DIR__, 2).'/vendor/autoload.php';
|
|||
$io->listing($failures);
|
||||
}
|
||||
|
||||
$io->success(sprintf('%s: %s', $badge['label'], $badge['message']));
|
||||
$io->success(sprintf('%s %s: %s', $suite, $specVersion, $badge['message']));
|
||||
|
||||
return Command::SUCCESS;
|
||||
})
|
||||
|
|
|
|||
Loading…
Reference in a new issue