frafaelcb/clickbus-prompts
If you are the rightful owner of clickbus-prompts and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
The ClickBus Prompts MCP Server is a NestJS and TypeScript-based server designed to store and organize development team prompts efficiently.
ClickBus Prompts MCP Server
MCP Server desenvolvido com NestJS e TypeScript para armazenar e organizar prompts do time de desenvolvimento da ClickBus.
Funcionalidades
- Armazenamento de Prompts: Organiza prompts por tipo e time
- API MCP: Implementa o protocolo Model Context Protocol
- Busca e Filtros: Permite buscar prompts por tipo, time ou ID
- Arquitetura NestJS: Estrutura modular e escalĂĄvel
- Tipagem Completa: TypeScript com interfaces robustas e type safety
- Validação de Dados: DTOs para validação de entrada
- Tratamento de Erros: Sistema de erros tipados e informativos
- Docker Ready: Pronto para execução em container
Estrutura dos Prompts
Cada prompt contém os seguintes metadados:
type
: Categoria do prompt (ex: "Code Review", "Documentation", "Testing")team
: Time responsĂĄvel (ex: "Global", "GDS")description
: Texto explicativo sobre o uso do promptcontent
: ConteĂșdo completo do prompt (opcional)id
: Identificador ĂșnicocreatedAt
/updatedAt
: Timestamps de criação e atualização
Tools DisponĂveis
list_prompts
Lista todos os prompts armazenados com opçÔes de formatação e filtros.
ParĂąmetros:
format
: Formato de retorno (grouped
,flat
,groups
)type
: Filtrar por tipo especĂfico (opcional)team
: Filtrar por time especĂfico (opcional)
Exemplos:
{
"name": "list_prompts",
"arguments": {
"format": "grouped"
}
}
{
"name": "list_prompts",
"arguments": {
"format": "flat",
"type": "Code Review",
"team": "GDS"
}
}
get_prompt
ObtĂ©m um prompt especĂfico pelo ID.
ParĂąmetros:
id
: ID do prompt (obrigatĂłrio)
Exemplo:
{
"name": "get_prompt",
"arguments": {
"id": "code-review-global-1"
}
}
get_prompts_stats
ObtĂ©m estatĂsticas dos prompts (contadores por tipo e time).
Exemplo:
{
"name": "get_prompts_stats",
"arguments": {}
}
Instalação e Execução
Desenvolvimento Local
# Instalar dependĂȘncias
npm install
# Executar em modo desenvolvimento (com watch)
npm run start:dev
# Executar em modo debug
npm run start:debug
# Compilar com NestJS
npm run build
# Executar versĂŁo compilada
npm run start:prod
# Executar testes
npm test
# Executar testes com coverage
npm run test:cov
# Executar testes especĂficos das MCP Tools
npm run test:mcp
# Executar testes E2E
npm run test:e2e
Docker
# Build da imagem
npm run docker:build
# Executar container
npm run docker:run
# Usar Docker Compose
npm run docker:up
# Parar Docker Compose
npm run docker:down
# Validar Dockerfile e build
./scripts/validate-docker.sh
# Executar testes no Docker
npm run test:mcp:docker
Docker Compose (Exemplo)
version: '3.8'
services:
prompts-server:
build: .
container_name: clickbus-prompts-mcp
restart: unless-stopped
stdin_open: true
tty: true
Exemplos de Prompts IncluĂdos
O servidor vem pré-configurado com exemplos de prompts:
- Code Review (Global): Prompt genérico para revisão de código
- Code Review (GDS): Prompt especĂfico do time GDS
- Documentation (Global): Geração de documentação técnica
- Testing (GDS): Criação de testes unitĂĄrios especĂficos do GDS
- Refactoring (Global): SugestÔes de refatoração de código legado
- API Design (Global): Design e review de APIs REST
- Database Optimization (GDS): Otimização de queries e estrutura de banco
Arquitetura NestJS
src/
âââ main.ts # Ponto de entrada da aplicação
âââ app.module.ts # MĂłdulo principal da aplicação
âââ types/ # Tipos globais
â âââ global.types.ts # Tipos utilitĂĄrios globais
â âââ index.ts # ExportaçÔes de tipos
âââ common/ # MĂłdulos compartilhados
â âââ interfaces/
â âââ error.interface.ts # Interfaces de erro tipadas
â âââ index.ts # ExportaçÔes comuns
âââ prompts/ # MĂłdulo de prompts
â âââ prompts.module.ts # MĂłdulo de prompts
â âââ prompts.service.ts # Service com lĂłgica de negĂłcio
â âââ prompts.service.spec.ts # Testes unitĂĄrios
â âââ interfaces/
â â âââ prompt.interface.ts # Interfaces e enums tipados
â âââ dto/ # Data Transfer Objects
â â âââ list-prompts.dto.ts # DTO para listagem
â â âââ get-prompt.dto.ts # DTO para busca por ID
â â âââ index.ts # ExportaçÔes DTOs
â âââ data/
â âââ prompts.data.ts # Dados tipados dos prompts
âââ mcp/ # MĂłdulo MCP
âââ mcp.module.ts # MĂłdulo MCP
âââ mcp-server.service.ts # Service do servidor MCP tipado
Tipagem e Type Safety
O projeto utiliza TypeScript de forma robusta com:
Enums Tipados
export enum PromptType {
CODE_REVIEW = 'Code Review',
DOCUMENTATION = 'Documentation',
TESTING = 'Testing',
REFACTORING = 'Refactoring',
API_DESIGN = 'API Design',
DATABASE_OPTIMIZATION = 'Database Optimization',
}
export enum TeamType {
GLOBAL = 'Global',
GDS = 'GDS',
}
Interfaces ImutĂĄveis
export interface Prompt {
readonly id: string;
readonly type: PromptType;
readonly team: TeamType;
readonly description: string;
readonly content?: string;
readonly createdAt: string;
readonly updatedAt: string;
}
DTOs com Validação
export class ListPromptsDto {
readonly format?: PromptFormat = 'grouped';
readonly type?: string;
readonly team?: string;
static create(args: any): ListPromptsDto {
return new ListPromptsDto({
format: args?.format,
type: args?.type,
team: args?.team,
});
}
isValidFormat(): boolean {
return ['grouped', 'flat', 'groups'].includes(this.format || 'grouped');
}
}
Tratamento de Erros Tipado
export class PromptNotFoundError extends Error {
readonly code = 'PROMPT_NOT_FOUND';
readonly timestamp: string;
constructor(id: string) {
super(`Prompt com ID '${id}' nĂŁo encontrado`);
this.name = 'PromptNotFoundError';
this.timestamp = new Date().toISOString();
}
}
Testes
O projeto inclui uma suĂte completa de testes para garantir o funcionamento correto das MCP Tools:
Tipos de Testes
Testes UnitĂĄrios
# Executar todos os testes unitĂĄrios
npm test
# Executar com coverage
npm run test:cov
# Executar em modo watch
npm run test:watch
Testes E2E das MCP Tools
# Testes end-to-end especĂficos das tools MCP
npm run test:e2e
Testes PrĂĄticos das MCP Tools
# Script personalizado para testar todas as tools
npm run test:mcp
Cobertura de Testes
Os testes cobrem:
- â list_prompts: Todos os formatos (grouped, flat, groups) e filtros
- â get_prompt: IDs vĂĄlidos, invĂĄlidos e ausentes
- â get_prompts_stats: Estrutura e consistĂȘncia das estatĂsticas
- â Validação de entrada: DTOs e tratamento de erros
- â ConsistĂȘncia de dados: Entre service e MCP tools
- â Tratamento de erros: CĂłdigos de erro e mensagens
- â Tipagem: Verificação de tipos em runtime
Testes no Docker
# Executar testes dentro do container Docker
npm run test:mcp:docker
# Validar build e funcionamento do Docker
./scripts/validate-docker.sh
Exemplo de SaĂda dos Testes
đ Iniciando testes das MCP Tools...
âł list_prompts (grouped)...
â
list_prompts (grouped) - 45ms
âł list_prompts (flat)...
â
list_prompts (flat) - 32ms
âł get_prompt (ID vĂĄlido)...
â
get_prompt (ID vĂĄlido) - 28ms
đ Resultados dos Testes:
============================================================
â
Sucessos: 10
â Falhas: 0
â±ïž Tempo total: 285ms
đ Taxa de sucesso: 100.0%
đ Todos os testes passaram!
Extensibilidade
O servidor foi projetado para ser facilmente extensĂvel com NestJS:
- Novos Prompts: Adicione em
src/prompts/data/prompts.data.ts
- PersistĂȘncia: Injete um repositĂłrio no
PromptsService
para conexĂŁo com banco de dados - Novas Tools: Adicione handlers no
McpServerService
- Novos MĂłdulos: Crie mĂłdulos NestJS para funcionalidades adicionais
- ValidaçÔes: Use decorators de validação do NestJS
- Interceptors/Guards: Adicione middleware para autenticação e logging
Protocolo MCP
Este servidor implementa o Model Context Protocol, permitindo integração com diversos clientes MCP como Claude Desktop, Continue, e outros.
đ Deploy e Configuração
đŻ NOVA FUNCIONALIDADE: execute_prompt
Agora vocĂȘ pode executar prompts diretamente no chat do Cursor IDE!
- đ
execute_prompt
- Executa prompts como instruçÔes prontas - đĄ Sem copy/paste - Prompt aparece formatado no chat
- đŻ Busca inteligente - Por ID, tipo, time ou combinação
- đ Controle de contexto - Com ou sem cabeçalho
Exemplo: "Execute o prompt de code review"
â Prompt pronto para usar! âš
Guias Completos
- - NOVA funcionalidade de execução
- - Guia completo de deploy com Docker
- - Como usar no Cursor IDE com exemplos
- - Revisão técnica do Docker e testes
Scripts de Automação
# Deploy completo (build + start)
./scripts/deploy.sh
# Configurar Cursor IDE automaticamente
./scripts/configure-cursor.sh
# Testar MCP tools
npm run test:mcp
# Validar Docker setup
./scripts/validate-docker.sh
Quick Start
# 1. Deploy da aplicação
./scripts/deploy.sh
# 2. Configurar Cursor IDE
./scripts/configure-cursor.sh
# 3. Reiniciar Cursor IDE
# 4. Testar: "Execute o prompt de code review" (NOVA funcionalidade!)
Licença
MIT