Skip to main content

Argonaut

Servidor MCP (stdio) em Python que deixa um agente descobrir, inspecionar e diagnosticar filas e tópicos em Redis Streams, Kafka, RabbitMQ, Amazon SQS e Amazon SNS. As operações de escrita existem para resolver o problema encontrado, sempre atrás de modo, allowlist e confirmação em duas etapas.

Faz par com o Nautilus (MCP de bancos de dados): Nautilus para bases, Argonaut para mensageria.

O que faz

O caso de uso central é diagnóstico: "por que essa fila está crescendo?", "qual consumer group está atrasado?", "o que tem na DLQ?", "por que a mensagem publicada no SNS não chegou na fila X?".

Instalação e execução

Requer Python 3.11+. Dependências com uv.

uv sync --extra all          # ou --extra redis / kafka / rabbitmq / aws
ARGONAUT_CONFIG=./argonaut.yaml uv run argonaut

O servidor fala por stdio. Configure-o no seu cliente MCP apontando o comando para uv run argonaut (ou o console script argonaut) com a variável de ambiente ARGONAUT_CONFIG e os segredos que o YAML referencia.

Configuração

Um único arquivo YAML descreve defaults e conexões. Segredos sempre por ${VAR} (resolvidos do ambiente) — nunca valores no arquivo. Veja argonaut.example.yaml. O servidor valida na inicialização e falha cedo, com mensagens claras.

defaults:
  peek: { max_messages: 20, max_payload_bytes: 4096 }
  confirm_token_ttl: 120s
  audit_log: ./argonaut-audit.jsonl
  redact:
    json_paths: ["$.customer.document", "$.card.*"]
    patterns: [cpf, email, credit_card]

connections:
  redis-dev:
    type: redis_streams
    url: "${REDIS_URL}"
    mode: admin
    dlq_convention: "{name}:dlq"

Tipos de conexão: redis_streams, kafka, rabbitmq, aws (SQS + SNS juntos).

Tools

Tool Modo O que faz
list_connections readonly Conexões configuradas, com tipo e modo
list_destinations readonly Filas, tópicos e streams (filtro por glob)
describe_destination readonly Atributos nativos, DLQ e configuração
get_stats readonly Profundidade, em voo, idade da mais antiga, taxas
list_consumer_groups readonly Grupos, membros e estado
get_consumer_lag readonly Lag por grupo e partição
get_topology readonly Bindings do RabbitMQ e subscriptions do SNS
peek_messages readonly¹ Leitura sem consumir
get_message readonly Uma mensagem por posição (offset, id)
publish_message operator Publica uma mensagem
redrive_dlq operator Move mensagens da DLQ de volta à origem
reset_offsets operator Reposiciona um consumer group
reclaim_pending operator Reatribui mensagens pendentes travadas (Redis)
purge admin Esvazia um destino
create_destination / delete_destination admin Cria/remove destinos
update_attributes admin Altera retenção, visibility timeout, políticas
delete_consumer_group admin Remove um grupo inativo

¹ peek_messages com accept_side_effects=true (leitura que altera estado, como em SQS e filas clássicas do RabbitMQ) exige modo operator.

Além das tools, o servidor expõe o resource argonaut://{conexão}/{destino} (a descrição do destino em JSON) e prompts de diagnóstico prontos (investigar_backlog, analisar_dlq, rastrear_mensagem_sns).

Segurança

O padrão é readonly. Toda escrita exige três coisas:

  1. Modo por conexão (readonly ⊂ operator ⊂ admin): produção nasce readonly; promover é mudança de config, nunca de runtime.
  2. Allowlist/denylist por glob: destino negado não aparece nem na listagem.
  3. Confirmação em duas etapas: a 1ª chamada roda em dry-run e devolve o impacto ("vai apagar 48.213 mensagens de orders.dlq") e um token com TTL curto, vinculado ao hash dos argumentos; a execução só acontece na 2ª chamada com esse token.

Além disso: payloads truncados e com dados sensíveis redigidos antes de sair; toda MessageView marcada como untrusted (o conteúdo é dado, não instrução); auditoria JSON lines de toda escrita (inclusive dry-runs); credenciais só por ambiente, nunca em respostas, erros ou logs.

Desenvolvimento

uv sync --extra dev
uv run pytest tests/unit tests/contract      # sem Docker (fakes)
uv run pytest -m integration                 # brokers reais (Docker)

A peça central de teste é uma suíte de contrato parametrizada por adapter: o mesmo cenário (criar destino, publicar, stats, peek, lag, redrive, purge) roda em todos. Um broker novo só entra quando passa nela.

Fora de escopo na v1

Ser consumidor/worker de produção; gestão de usuários e ACLs dos brokers; provisionamento de clusters; monitoramento contínuo e alertas; decodificação de Avro/Protobuf no Kafka; replay de tópicos FIFO do SNS; transporte HTTP remoto.

Metadata

Release files for argonaut-mcp-server 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for argonaut-mcp-server 0.1.1
File Size Uploaded Provenance
argonaut_mcp_server-0.1.1.tar.gz 137.6 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for argonaut-mcp-server 0.1.1
File Interpreter ABI Platform
argonaut_mcp_server-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 184.3 kB

Release files / argonaut_mcp_server-0.1.1.tar.gz

Download URL argonaut_mcp_server-0.1.1.tar.gz
Size 137.6 kB
Tags Source
SHA-256 checksum
How to use checksums
d970a01f16b5adba1277c5508d210226a99a98ca5c04ea082b6916f6467fa8d9
BLAKE2b-256 checksum
How to use checksums
616614054bc7fc8e37c9a99854676839084bb0aea785b4fe9ac69527b12e0ce6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 22, 2026.

Transparency log

Release files / argonaut_mcp_server-0.1.1-py3-none-any.whl

Download URL argonaut_mcp_server-0.1.1-py3-none-any.whl
Size 46.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c95e34c4a9b0060f75045683d96bd38b8c09325f307ea6164b0234552224aef8
BLAKE2b-256 checksum
How to use checksums
50449a0c6617c8d120fab8d23b7189014ae55500b70cbbe24624a1d7b9e8b5c1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 22, 2026.

Transparency log

Security for argonaut-mcp-server 0.1.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for argonaut_mcp_server-0.1.1.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 22, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page