[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
|
# MCP PHP SDK
|
||||||
|
|
||||||
<div align="center">
|
|
||||||
|
|
||||||
[](https://packagist.org/packages/mcp/sdk)
|
[](https://packagist.org/packages/mcp/sdk)
|
||||||
[](https://github.com/modelcontextprotocol/php-sdk/actions/workflows/pipeline.yaml)
|
[](https://github.com/modelcontextprotocol/php-sdk/actions/workflows/pipeline.yaml)
|
||||||
[](https://packagist.org/packages/mcp/sdk)
|
[](https://packagist.org/packages/mcp/sdk)
|
||||||
[](LICENSE)
|
[](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
|
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
|
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).
|
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
|
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.
|
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
|
## Installation
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
|
|
|
||||||
|
|
@ -16,11 +16,12 @@
|
||||||
* php score.php <server|client> <spec-version> [results-dir]
|
* php score.php <server|client> <spec-version> [results-dir]
|
||||||
*
|
*
|
||||||
* The conformance CLI writes one `checks.json` per scenario into
|
* The conformance CLI writes one `checks.json` per scenario into
|
||||||
* `[results-dir]` (default `results`), relative to this file. A scenario
|
* `[results-dir]` (default `results`), relative to this file. Every check with
|
||||||
* counts as passing when none of its checks has a FAILURE status; the badge
|
* a SUCCESS or FAILURE status counts towards the score; the badge message is
|
||||||
* message is "<passed>/<total> (<pct>%)" and is written to
|
* "<passed>/<total> (<pct>%)" and is written to
|
||||||
* `<suite>-conformance-<spec-version>.json`, so each revision gets its own
|
* `<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;
|
use Symfony\Component\Console\Command\Command;
|
||||||
|
|
@ -92,7 +93,7 @@ require_once dirname(__DIR__, 2).'/vendor/autoload.php';
|
||||||
|
|
||||||
$badge = [
|
$badge = [
|
||||||
'schemaVersion' => 1,
|
'schemaVersion' => 1,
|
||||||
'label' => sprintf('%s %s', $suite, $specVersion),
|
'label' => 'checks',
|
||||||
'message' => $total > 0 ? sprintf('%d/%d (%d%%)', $passed, $total, $pct) : 'no data',
|
'message' => $total > 0 ? sprintf('%d/%d (%d%%)', $passed, $total, $pct) : 'no data',
|
||||||
'color' => match (true) {
|
'color' => match (true) {
|
||||||
0 === $total => 'lightgrey',
|
0 === $total => 'lightgrey',
|
||||||
|
|
@ -116,7 +117,7 @@ require_once dirname(__DIR__, 2).'/vendor/autoload.php';
|
||||||
$io->listing($failures);
|
$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;
|
return Command::SUCCESS;
|
||||||
})
|
})
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue