mcp_probe 0.5.0
mcp_probe: ^0.5.0 copied to clipboard
Conformance checks and a test harness for Model Context Protocol (MCP) servers. Runs any MCP server over stdio and asserts on its behavior from package:test. Built on dart_mcp.
0.5.0 #
- A composite GitHub Action, so a repository can gate its pull requests on MCP
conformance in a few lines:
uses: Yusufihsangorgel/mcp_probe@v1with acommand, and optionalfail-onandformat. It sets up Dart, activates the CLI, and runs the check, failing the job when a finding at or abovefail-onis present. Inputs are passed through the environment rather than interpolated into the shell, so a value cannot inject script. The package's own CI now exercises the action against a conforming and a non-conforming fixture on every push, so a change that breaks it fails CI. - README notes a real
dart rungotcha:dart runprints a resolution line to stdout the first time, which pollutes a server launched that way, so rundart pub getbefore checking such a server. A compiled, Node or Python server has nothing to resolve.
0.4.0 #
- Machine-readable output and a configurable gate, which is what makes the CLI a
real CI step rather than something a human reads.
ConformanceReport.toJson()(andConformanceFinding.toJson()) render the report as a JSON-serializable map: the probed command, the server identity, asummarycount per severity, and the full findings list. The CLI gains--format jsonto print it and--fail-on error|warning|infoto choose the severity at which the exit code becomes 1 (defaulterror), so a pipeline can fail on a warning and capture a structured report in one run. Invalid flags exit 64 with a usage message.
0.3.3 #
- Install instructions now say
pub addinstead of pinning a version. The pinned number was stale by several releases and would have been stale again after the next one: the README ships frozen in the archive, so a hand-edited version line is wrong the moment anything is published. This one cannot go out of date.
0.3.2 #
example/probe_demo.dartprints a real report without a server of your own. It probes four servers that ship with the package: one that behaves and three that break something specific, so the output shows what a failure looks like before you have written anything to fail. The interesting one is a server that speaks the protocol correctly and is still unusable, because aprinton the way up puts a line on stdout where the transport expects only JSON-RPC. Its own tests would not catch that; what a user sees is a client that will not connect.example/README.mdcovers reading the report, pointing the probe at your own command, themcp_probe checkfront end for a pipeline, and asserting your server's actual behaviour with thetesting.darthelpers.test/readme_snippet_test.dartcompiles the snippet that README prints. It never runs, it only has to analyse, which is enough to keep a copied example from drifting away from the API it is describing.
0.3.1 #
- Declare the diagram in
pubspec.yamlso pub.dev renders it on the package page. It was already in the repository and the README, but pub.dev shows only what thescreenshots:field points at, so the page opened with prose where the picture should have been.
0.3.0 #
- Add the
utilities/pingconformance rule. MCP requires a server to answer apingrequest promptly with an empty result;checkServerand the CLI now send one and report an error if the server times out or answers with a protocol error, so a server that stops responding to liveness pings is caught.
0.2.0 #
- Add a command-line tool.
dart pub global activate mcp_probeinstalls anmcp_probe check <command> [args...]executable that runs a server over stdio, prints each conformance finding, and exits non-zero if any check reports an error, so it drops into a CI step without writing any Dart.
0.1.3 #
listTools,listResourcesandlistPromptsnow follownextCursorpagination and return every page combined. Previously only the first page was fetched, so a conformance run against a paginated server validated just those items and could report the server green without ever seeing the rest.
0.1.2 #
- Docs: tightened the README wording and visuals.
0.1.1 #
- Expand the package description to name what the package does in the words people search for. No code changes.
0.1.0 #
- Initial release.
McpServerHarness: runs an MCP server as a child process over stdio, with per-request timeouts and guaranteed process cleanup.checkServerandConformanceReport: conformance rules for the initialize handshake, declared capabilities, tool definitions, and JSON-RPC error behavior, with Markdown rendering.package:testhelpers in thepackage:mcp_probe/testing.dartentrypoint:expectToolExists,expectToolCallSucceeds,expectToolCallFails,expectResourceExists.
