argonaut-mcp-server
Servidor MCP para descobrir, inspecionar e diagnosticar filas e tópicos — Redis Streams, Kafka, RabbitMQ, Amazon SQS e SNS — com senhas cifradas e escrita protegida por modo, allowlist e confirmação em duas etapas.
Faz par com o Nautilus: Nautilus para bancos, Argonaut para mensageria.
O que faz
Responde perguntas de diagnóstico de mensageria — "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?" — e, quando preciso, resolve (redrive, purge, reset) sempre atrás de proteções.
| 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. Há ainda o resource argonaut://{conexão}/{destino} e prompts de diagnóstico (investigar_backlog, analisar_dlq, rastrear_mensagem_sns).
Requisitos
- Python 3.11+.
- Drivers por broker são extras opcionais:
redis,kafka,rabbitmq,aws(ouall). Instale os que for usar.
Instalação
# Executar direto (todos os brokers), via uv:
uvx --from "argonaut-mcp-server[all]" argonaut
# Ou instalar servidor + CLI `argonaut-admin` no sistema (só os brokers que usa):
uv tool install "argonaut-mcp-server[redis,kafka]"
# (alternativa: pip install "argonaut-mcp-server[all]")
Configuração
1. Gere a chave de criptografia (uma vez)
argonaut-admin keygen # gera e salva a chave em ~/.argonaut/key
Servidor e CLI leem a chave desse arquivo — não precisa setar nada no ambiente. (Em CI/containers, ARGONAUT_KEY no ambiente tem precedência sobre o arquivo.)
2. Cadastre as conexões pela CLI
Toda adição/alteração/remoção passa pela CLI argonaut-admin, que edita o YAML e cifra a senha ao salvar (incluindo sasl.password do Kafka):
argonaut-admin add redis-dev # pergunta os campos conforme o tipo de broker (senha oculta)
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
O arquivo resultante (veja argonaut.example.yaml):
defaults:
peek: { max_messages: 20, max_payload_bytes: 4096 }
confirm_token_ttl: 120s
audit_log: ./argonaut-audit.jsonl
redact:
patterns: [cpf, email, credit_card]
connections:
redis-dev:
type: redis_streams # redis_streams | kafka | rabbitmq | aws (SQS+SNS)
url: "redis://localhost:6379/0"
mode: admin # readonly | operator | admin
dlq_convention: "{name}:dlq"
- Sem
${VAR}: todos os valores vão literais no YAML; só a senha é cifrada.
3. Aponte o cliente MCP para o servidor
Nenhuma variável de ambiente é necessária. Por padrão, o servidor lê o YAML de ~/.argonaut/argonaut.yaml e a chave de ~/.argonaut/key — ambos criados pelos passos acima:
{
"mcpServers": {
"argonaut": {
"command": "uvx",
"args": ["--from", "argonaut-mcp-server[all]", "argonaut"],
"env": {}
}
}
}
Caminhos personalizados (opcional):
ARGONAUT_CONFIGaponta o YAML para outro lugar;ARGONAUT_KEY(ouARGONAUT_KEY_FILE) define a chave para CI/containers. Sem eles, usa-se o padrão em~/.argonaut/.
O mesmo bloco vale para Cursor, Claude Desktop, Claude Code e outras IDEs com MCP por stdio.
Segurança
O padrão é readonly. Toda escrita exige:
- Modo por conexão (readonly ⊂ operator ⊂ admin) — promover é mudança de config, nunca de runtime.
- Allowlist/denylist por glob — destino negado não aparece nem na listagem.
- Confirmação em duas etapas — a 1ª chamada é dry-run e devolve o impacto ("vai apagar 48.213 mensagens de orders.dlq") + um token de TTL curto vinculado ao hash dos argumentos; a execução só ocorre na 2ª chamada com esse token.
Além disso: senha sempre cifrada (enc:, chave em ~/.argonaut/key ou ARGONAUT_KEY, fora do YAML — não compartilhe o arquivo de chave); payloads truncados e com dados sensíveis redigidos; conteúdo de mensagem marcado como untrusted; auditoria JSON lines de toda escrita (inclusive dry-runs).
Metadata
Release files for argonaut-mcp-server 0.2.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| argonaut_mcp_server-0.2.3.tar.gz | 144.8 kB | With provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| argonaut_mcp_server-0.2.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 197.3 kB
Release files / argonaut_mcp_server-0.2.3.tar.gz
| Download URL | argonaut_mcp_server-0.2.3.tar.gz |
|---|---|
| Size | 144.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
47200ec302643e8d9fac6c9dc7152495aa8fa78b4e31dff0dc4840572fa623d3
|
|
BLAKE2b-256 checksum How to use checksums |
57ffc05b279dfe7c20a1ae9b2ba654315074cd819db134cc07774fe470023079
|
| 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 logRelease files / argonaut_mcp_server-0.2.3-py3-none-any.whl
| Download URL | argonaut_mcp_server-0.2.3-py3-none-any.whl |
|---|---|
| Size | 52.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
023c4d3436ba486f677bde43f383b2dc151531fd2d4442d1409994e76c39f229
|
|
BLAKE2b-256 checksum How to use checksums |
0b4bcf7a885b273bbeb968c97aeb1f28b16281cd79444f82845cbd52f3bcba4c
|
| 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 logSecurity for argonaut-mcp-server 0.2.3
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.
Attestation for argonaut_mcp_server-0.2.3.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 logA 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.