MCP CONTRACT TESTING · OPEN SOURCE

Your MCP server still starts.
Did it still work?

Astray Verify records the tools your AI clients rely on, then catches broken names, schemas, and protocol output before you release.

A small CI check for authors of MCP servers. No model, account, or cloud required.

ASTRAY VERIFY / FIXTUREstdio

recorded interface

search_issuesobject
create_issueobject
!list_reposchanged
CONTRACTFAIL1 unexpected change

A green process is not a stable integration.

Renaming one tool, changing one input field, or printing a debug line to stdout can break an AI client after deployment. The server may look healthy; the contract your client depends on is not.

01 Missing or renamed tools

02 Changed JSON input schemas

03 Invalid JSON-RPC output

Record once.
Protect every release.

  1. 01

    Record

    Start your MCP server once. Astray Verify performs the handshake and saves its tools and schemas as a small JSON fixture.

    astray-verify record --name github -- <server>
  2. 02

    Commit

    Review the fixture with your code. It becomes the explicit promise your server makes to every AI client.

    fixtures/github.mcp.json
  3. 03

    Replay

    Run one command locally or in CI. A change fails loudly before it becomes somebody else's broken agent workflow.

    astray-verify test

Small on purpose.

Start with the part every MCP client sees: a clean stdio handshake and tools/list. No generated dashboards. No cloud account. Just a contract test you can trust.

One command. Then test the change you were about to ship.

Downloads a release binary when available; otherwise builds the current release with Rust.

curl -fsSL https://raw.githubusercontent.com/TheAstrayDev/astray-verify/main/install.sh | sh

Prefer to read every line first? Open the source on GitHub ↗

The short answers.

Who is this for?

Anyone building or maintaining an MCP server. If an AI client calls your tools, their public interface is worth testing.

Does it call an AI model?

No. Astray Verify talks to your MCP server directly. It checks the protocol contract, so it does not require an API key or model account.

Does it replace the MCP Inspector?

No. Use Inspector to explore and debug. Use Astray Verify to commit a known-good interface and replay it after every change.

Astray Verify MCP contract tests · record once, test every release
Open Astray Verify →