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 as variáveis de ambiente ARGONAUT_CONFIG (caminho do YAML) e ARGONAUT_KEY (chave que decifra as senhas).

Configuração

Um único arquivo YAML descreve defaults e conexões. Veja argonaut.example.yaml. O servidor valida na inicialização e falha cedo, com mensagens claras.

A senha (campo password, em qualquer nível — inclui sasl.password do Kafka) só é aceita cifrada (enc:...); texto puro é recusado. Grave-a pela CLI argonaut-admin, que cifra com a chave ARGONAUT_KEY. Não há interpolação de ${VAR}: todos os demais campos (url, brokers, username, region...) vão literais no YAML. Os únicos valores lidos do ambiente são ARGONAUT_CONFIG e ARGONAUT_KEY.

Cadastrar conexões pela CLI

# 1. Gere a chave uma vez e exporte-a (guarde-a com segurança)
argonaut-admin keygen                 # imprime a chave; defina ARGONAUT_KEY com ela

# 2. Gerencie as conexões (a senha é pedida de forma oculta e cifrada ao salvar)
argonaut-admin add redis-dev          # pergunta os campos conforme o tipo de broker
argonaut-admin list                   # lista as conexões (nunca mostra a senha)
argonaut-admin edit redis-dev         # altera campos; senha em branco mantém a atual
argonaut-admin remove redis-dev       # remove a conexão

Importante: a mesma ARGONAUT_KEY usada no add precisa estar no ambiente do servidor — é com ela que o Argonaut decifra as senhas ao subir.

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://localhost:6379/0"
    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.2.0

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.2.0
File Size Uploaded Provenance
argonaut_mcp_server-0.2.0.tar.gz 144.1 kB With provenance Details

Built distribution (wheel)

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

Total release size: 196.3 kB

Release files / argonaut_mcp_server-0.2.0.tar.gz

Download URL argonaut_mcp_server-0.2.0.tar.gz
Size 144.1 kB
Tags Source
SHA-256 checksum
How to use checksums
bf1595830cd85acd17431da09848a1fc1d7081f1be4507497092365e75baca39
BLAKE2b-256 checksum
How to use checksums
92a9bdaa1d78b605cf11a294806aa44f536338c0d0f3679a367a6548ca3b30d8
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.2.0-py3-none-any.whl

Download URL argonaut_mcp_server-0.2.0-py3-none-any.whl
Size 52.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
7801fe2f9e5df1584d044b57940b4ea73d485f7844d69ec81bfc86865c79547f
BLAKE2b-256 checksum
How to use checksums
a63e29777dd0b87df802cb0ba94978fd00acaaab442756a3d43c3ffaf7b3986b
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.2.0

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.2.0.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