Skip to content

mcpconform v0.1.0

Choose a tag to compare

@cejor6 cejor6 released this 08 Jun 16:24
· 15 commits to main since this release
6057597

First public release — a provider- and language-agnostic static linter for MCP setup correctness: tool definitions, server.json registry manifests, and client configs. Spec baseline: MCP 2025-11-25.

What it checks

  • MCP-spec + JSON-Schema correctness for tool definitions, server.json, and client configs (.mcp.json / claude_desktop_config.json), auto-detected by shape.
  • Provider portability against declarative profiles — anthropic, openai, gemini, and generic-strict, each verified from the consumer's own docs (plus a mistral stub showing the extension pattern). Catches "legal per MCP but rejected by the provider" bugs like a dotted tool name.
  • Three severity tiers: error (spec MUST / would 400), warn (spec SHOULD), info (portability + quality).

Usage

# CLI (also on npm: mcpconform@0.1.0)
npx mcpconform server.json .mcp.json --target anthropic,openai

# live server, any language, via the MCP stdio handshake
mcpconform inspect --target anthropic,openai -- python server.py

GitHub Action

- uses: cejor6/mcpconform@v1
  id: mcpconform
  with:
    files: server.json .mcp.json
    targets: anthropic,openai
- uses: github/codeql-action/upload-sarif@v4
  with:
    sarif_file: ${{ steps.mcpconform.outputs.sarif }}

Emits SARIF for GitHub code scanning. Engine stays vendor-agnostic — a new provider or host is a profiles/*.json file, never a code change.