Prompt MCP Server for Amazon Q
Um servidor MCP para o Amazon Q Developer CLI gerenciar arquivos de prompt locais.
Documentação
Prompt MCP Server for Amazon Q
Um servidor de Protocolo de Contexto de Modelo (MCP) de arquivo único para o Amazon Q Developer CLI que gerencia arquivos de prompt (*.md) de diretórios locais.
Recursos
- 🔄 Monitoramento de Arquivos em Tempo Real: Detecta automaticamente alterações em arquivos e atualiza a lista de prompts
- 📢 Notificações MCP: Envia notificações ao Amazon Q CLI para atualização automática
- 📁 Descoberta de Prompts: Lista todos os arquivos
*.mdde diretórios configurados - 🏠 Diretório Padrão:
~/.aws/amazonq/prompts(criado automaticamente) - 🎯 Diretórios Personalizados: Substitua com a variável de ambiente
PROMPTS_PATH(formato semelhante a PATH) - 🔧 Substituição de Variáveis: Suporta espaços reservados
{variable}em prompts - 🔍 Registro Configurável: Padrões seguros para produção com modo de depuração abrangente
- 🌐 Multiplataforma: Funciona em Unix/Linux/macOS (compatível com Windows)
- ⚡ Tratamento de Erros: Tratamento abrangente de erros e registro
- 📦 Sem Dependências: Implementação pura em Python 3.8+
Instalação e Uso
Início Rápido com uvx (Recomendado)
# Install and run directly (after publishing to PyPI)
uvx prompt-mcp-server
# Or install from local build
pyproject-build
uvx --from ./dist/prompt_mcp_server-2.0.3-py3-none-any.whl prompt-mcp-server
Uso Direto
# Run the server directly
python3 mcp_server/prompt_mcp_server.py
# With custom prompt directories
PROMPTS_PATH="./my-prompts:~/.aws/amazonq/prompts" python3 mcp_server/prompt_mcp_server.py
Integração com Amazon Q
# The workspace is configured to use uvx with the built package
q mcp list # Verify configuration (should show: prompt-server uvx)
q chat # Start Amazon Q CLI
/prompts # List available prompts
@debug_code # Use a prompt
Arquivos de configuração:
.amazonq/mcp.json- Usa caminho de desenvolvimento localtests/.amazonq/mcp.json- Usa pacote local compiladotests/.amazonq/mcp-published.json- Para pacote publicado (copie paramcp.jsonapós a publicação)
Compilação e Testes
# Build package
pyproject-build
# Test with uvx
echo '{"jsonrpc": "2.0", "id": 1, "method": "initialize"}' | uvx --from ./dist/prompt_mcp_server-2.0.0-py3-none-any.whl prompt-mcp-server
Configuração
Variáveis de Ambiente
PROMPTS_PATH: Lista de diretórios separados por dois-pontos (Unix) ou ponto-e-vírgula (Windows)- Padrão:
~/.aws/amazonq/prompts
Configuração do Workspace
O arquivo .amazonq/mcp.json configura o Amazon Q para usar este servidor:
Configuração de Desenvolvimento (Local)
{
"mcpServers": {
"prompt-server": {
"command": "python3",
"args": ["mcp_server/prompt_mcp_server.py"],
"timeout": 10000
}
}
}
Configuração de Produção (PyPI)
{
"mcpServers": {
"prompt-server": {
"command": "uvx",
"args": ["prompt-mcp-server@latest"],
"disabled": false,
"autoApprove": []
}
}
}
Variáveis de Ambiente
PROMPTS_PATH
- Finalidade: Especificar diretórios personalizados para buscar arquivos de prompt
- Formato: Lista de diretórios separados por dois-pontos (Unix/Linux/macOS) ou ponto-e-vírgula (Windows)
- Padrão:
~/.aws/amazonq/prompts - Exemplo:
export PROMPTS_PATH="/path/to/prompts1:/path/to/prompts2"
MCP_LOG_LEVEL
- Finalidade: Definir o nível de registro para o servidor MCP
- Valores:
DEBUG,INFO,WARNING,ERROR,CRITICAL - Padrão:
WARNING(nível de produção - apenas avisos e erros) - Exemplo:
export MCP_LOG_LEVEL=INFO
MCP_DEBUG_LOGGING
- Finalidade: Ativar registro de depuração abrangente com rastreamento detalhado de solicitações/respostas
- Valores:
1,true,yes,on(sem diferenciar maiúsculas de minúsculas) - Padrão: Desativado
- Quando ativado:
- Força o nível de registro
INFOindependentemente deMCP_LOG_LEVEL - Cria arquivo de registro de depuração para monitoramento fácil
- Registra todas as solicitações e respostas MCP com detalhes completos em JSON
- Registra atividade de monitoramento de arquivos e operações de cache
- Mensagens de registro codificadas por cores com emojis para fácil identificação
- Força o nível de registro
- Exemplo:
export MCP_DEBUG_LOGGING=1 # Then monitor logs with: tail -f /tmp/mcp_server_debug.log
MCP_LOG_FILE
- Finalidade: Definir caminho personalizado para o arquivo de registro de depuração
- Padrão:
/tmp/mcp_server_debug.log - Usado apenas quando:
MCP_DEBUG_LOGGINGestá ativado - Exemplo:
export MCP_DEBUG_LOGGING=1 export MCP_LOG_FILE=/path/to/custom/mcp_debug.log # Then monitor logs with: tail -f /path/to/custom/mcp_debug.log
Uso do Registro de Depuração
Para ativar o registro de depuração para solução de problemas:
# Enable debug logging with default log file
export MCP_DEBUG_LOGGING=1
# Or enable with custom log file location
export MCP_DEBUG_LOGGING=1
export MCP_LOG_FILE=/path/to/custom/debug.log
# Start Amazon Q CLI
q chat
# In another terminal, monitor detailed logs
tail -f /tmp/mcp_server_debug.log
# Or if using custom log file:
tail -f /path/to/custom/debug.log
# Test file changes
echo "# Test" > ~/.aws/amazonq/prompts/test.md
rm ~/.aws/amazonq/prompts/test.md
Os registros de depuração mostrarão:
- 📥 Solicitações brutas recebidas do Amazon Q CLI
- 🔵 Solicitações recebidas analisadas com detalhes
- 🟢 Respostas enviadas com conteúdo completo
- 📤 Respostas brutas enviadas ao Amazon Q CLI
- 📢 Notificações MCP enviadas (por exemplo, lista de prompts alterada)
- Atividade de monitoramento de arquivos e operações de cache
Testes
O projeto inclui testes unitários e funcionais abrangentes:
Executar Todos os Testes
# Run both unit and functional tests
python3 tests/run_all_tests.py
# Run only unit tests
python3 tests/run_all_tests.py --unit-only
# Run only functional tests
python3 tests/run_all_tests.py --functional-only
Suítes de Testes Individuais
# Unit tests (31 tests)
python3 tests/test_prompt_mcp_server.py
# Functional tests (14 tests)
python3 tests/test_functional.py
# UVX integration tests (8 tests)
python3 tests/test_uvx_integration.py
Resultados dos Testes
- Status Atual: ✅ Todos os 53 testes passando (taxa de sucesso de 100%)
- Resultados Detalhados: Consulte o diretório
tests/results/para relatórios abrangentes - Desempenho: Suíte de testes completa é executada em ~10,5 segundos
Cobertura de Testes
- Testes Unitários: 31 testes cobrindo todos os componentes do servidor
- Testes Funcionais: 14 testes de integração ponta a ponta
- Integração UVX: 8 testes para cenários de execução de pacotes
- Cobertura Total: 53 testes abrangentes
Criando Prompts
Prompt Simples
Crie ~/.aws/amazonq/prompts/debug_code.md:
# Debug Code Issues
Help me debug code by identifying issues and suggesting fixes.
Prompt com Parâmetros
Crie ~/.aws/amazonq/prompts/create_function.md:
# Create {language} Function
Create a {language} function named {function_name} that {description}.
Requirements:
- Follow {language} best practices
- Include error handling
- Add comprehensive tests
Exemplos de Uso
Listar Prompts Disponíveis
echo '{"jsonrpc": "2.0", "id": 1, "method": "prompts/list"}' | python3 mcp_server/prompt_mcp_server.py
Obter um Prompt com Variáveis
echo '{"jsonrpc": "2.0", "id": 2, "method": "prompts/get", "params": {"name": "create_function", "arguments": {"language": "Python", "function_name": "calculate", "description": "adds two numbers"}}}' | python3 mcp_server/prompt_mcp_server.py
Requisitos
- Python 3.6+
- Sem dependências externas
- Suporte multiplataforma
Tratamento de Erros
O servidor inclui tratamento abrangente de erros:
- Validação de permissões de arquivo
- Limites de tamanho de arquivo (máximo de 1MB)
- Suporte a codificação Unicode (UTF-8 com fallback para latin-1)
- Validação de acesso a diretórios
- Fallback gracioso para diretórios padrão
- Registro detalhado em stderr
Testes
Todos os recursos principais foram testados:
- ✅ Conformidade com o protocolo MCP (initialize, prompts/list, prompts/get)
- ✅ Descoberta de prompts e extração de variáveis
- ✅ Suporte à variável de ambiente PROMPTS_PATH
- ✅ Tratamento de caminhos multiplataforma
- ✅ Tratamento de erros e casos extremos
- ✅ Integração com Amazon Q CLI
Estrutura do Projeto
mcp-prompts-local/
├── mcp_server/ # Main package
│ ├── __init__.py # Package initialization
│ └── prompt_mcp_server.py # MCP server implementation
├── tools/ # Development tools
│ ├── publish.py # Automated publishing script
│ └── README.md # Tools documentation
├── tests/ # Test suite
│ ├── test_prompt_mcp_server.py # Unit tests (31 tests)
│ ├── test_functional.py # Functional tests (14 tests)
│ ├── test_uvx_integration.py # UVX integration tests (8 tests)
│ ├── results/ # Test execution results
│ │ ├── FULL_TEST_RESULTS.md # Initial test results
│ │ ├── FINAL_TEST_RESULTS.md # Final test results (100% success)
│ │ └── README.md # Test results documentation
│ └── .amazonq/ # Test configurations
├── .amazonq/ # Workspace configuration
│ └── mcp.json # Development MCP config
├── dist/ # Built packages
├── pyproject.toml # Package configuration
├── README.md # This file
└── LICENSE # MIT license
Arquitetura
Esta é uma implementação de arquivo único que:
- Lê solicitações JSON-RPC de stdin
- Verifica diretórios configurados em busca de arquivos
*.md - Extrai variáveis usando regex (padrão
{variable}) - Substitui variáveis no conteúdo do prompt
- Retorna respostas via stdout
- Registra em stderr
Histórico de Versões
Para informações detalhadas de versão, notas de lançamento e changelog, consulte CHANGELOG.md.
Para mais informações sobre o Protocolo de Contexto de Modelo, consulte a especificação MCP.