blackwell-systems/mcp-assert

O padrão de teste determinístico para servidores MCP. Conecte-se via transporte stdio/SSE/HTTP real, chame ferramentas com argumentos reais e afirme resultados com 18 tipos de asserção definidos em YAML. Qualquer linguagem, qualquer transporte, sem mocks. Binário Go único.

O que é mcp-assert?

mcp-assert é uma ferramenta de teste determinística para servidores MCP (Model Context Protocol), projetada para validar servidores MCP de forma confiável e sem dependências de mocks. Ela suporta todos os principais transportes MCP – stdio, SSE e HTTP – permitindo que você se conecte diretamente a servidores reais, passe argumentos reais e verifique resultados com uma ampla gama de asserções (18 tipos, incluindo igualdade, correspondência de padrões, verificações de tipo e mais), tudo especificado em arquivos YAML. Essa abordagem garante que os testes reflitam com precisão o comportamento do servidor em produção, evitando falsos positivos causados por mocks. A ferramenta é um único binário Go, fácil de integrar em pipelines CI/CD, e funciona com servidores escritos em qualquer linguagem, tornando-a ideal para desenvolvedores que constroem ou mantêm servidores MCP e desejam uma base de testes robusta e portátil. Ela é amplamente usada em ambientes como Claude Code, Cursor e Codex, onde a confiabilidade das interações com ferramentas é crítica.

Funciona com~Claude Code~Codex CLI~Cursor
npx skills add blackwell-systems/mcp-assert

Installed? Explore more Programação e Desenvolvimento skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

O que mcp-assert faz?

O padrão de teste determinístico para servidores MCP. Conecte-se via transporte stdio/SSE/HTTP real, chame ferramentas com argumentos reais e afirme resultados com 18 tipos de asserção definidos em YAML. Qualquer linguagem, qualquer transporte, sem mocks. Binário Go único.

Visão Geral

mcp-assert é uma ferramenta de teste projetada para validar servidores MCP (Model Context Protocol) de forma determinística. Diferente de frameworks de teste tradicionais que dependem de mocks, o mcp-assert conecta-se ao seu servidor MCP real usando os transportes padrão (stdio, SSE, HTTP) e executa chamadas de ferramentas reais com argumentos reais. Os resultados são então verificados usando um conjunto rico de tipos de asserção, todos definidos em arquivos YAML simples.

Recursos

  • Sem mocks: Testes contra servidores reais, refletindo o comportamento de produção.
  • 18 tipos de asserção: Cobertura abrangente para validar resultados, incluindo igualdade, correspondência de padrões, verificações de tipo, intervalo, comprimento, existência e mais.
  • YAML-driven: Defina casos de teste em arquivos YAML reutilizáveis e com controle de versão.
  • Qualquer transporte: Suporta stdio, SSE e HTTP.
  • Qualquer linguagem: Funciona com servidores MCP escritos em qualquer linguagem.
  • Binário único: Implementado em Go, sem dependências de runtime.

Instalação

Baixe o binário mais recente da página de releases ou compile da fonte:

go install github.com/blackwell-systems/mcp-assert/cmd/mcp-assert@latest

Uso

1. Defina seu caso de teste

Crie um arquivo YAML (por exemplo, test.yaml):

name: Teste de calculadora

transport:
  type: stdio
  command: ["python", "mcp_server.py"]
  # Ou para HTTP:
  # type: http
  # url: "http://localhost:8000/mcp"
  # Ou para SSE:
  # type: sse
  # url: "http://localhost:8000/sse"

tools:
  - name: soma
    arguments:
      a: 1
      b: 2
    assertions:
      - type: equal
        expected: 3
  - name: divisao
    arguments:
      a: 10
      b: 0
    assertions:
      - type: notEqual
        expected: Infinity
      - type: hasField
        field: error

2. Execute o teste

mcp-assert test.yaml

Isso conecta-se ao servidor especificado, chama cada ferramenta com os argumentos fornecidos e executa todas as asserções.

Tipos de Asserção

O mcp-assert suporta 18 tipos de asserção. Aqui estão alguns dos mais comuns:

TipoDescriçãoExemplo
equalComparação de igualdade estritaexpected: 42
notEqualComparação de desigualdade estritaexpected: 0
containsA string contém uma substringvalue: "erro"
notContainsA string não contém uma substringvalue: "pânico"
matchA string corresponde a um padrão regexpattern: "\\d+"
typeVerifica o tipo (string, number, boolean, object, array)expected: "number"
greaterThanNúmero maior quethreshold: 5
lessThanNúmero menor quethreshold: 100
hasFieldObjeto tem um campofield: "resultado"
lengthArray ou string tem comprimentoexpected: 3

Veja a documentação completa em docs/assertions.md.

Exemplo de CI/CD

Integre em seu pipeline CI:

# .github/workflows/test-mcp-server.yml
name: Testar servidor MCP
on: [push]
jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Instalar mcp-assert
        run: |
          wget https://github.com/blackwell-systems/mcp-assert/releases/latest/download/mcp-assert-linux-amd64.tar.gz
          tar -xzf mcp-assert-linux-amd64.tar.gz
          sudo mv mcp-assert /usr/local/bin/
      - name: Executar testes
        run: mcp-assert tests/*.yaml

Suporte

Licença

MIT

Habilidades Relacionadas