@justmpm/task-request 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +204 -0
- package/dist/mcp-app.html +352 -0
- package/dist/server.d.ts +14 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +256 -0
- package/dist/server.js.map +1 -0
- package/dist/shared/task-contract.d.ts +45 -0
- package/dist/shared/task-contract.d.ts.map +1 -0
- package/dist/shared/task-contract.js +31 -0
- package/dist/shared/task-contract.js.map +1 -0
- package/package.json +72 -0
package/README.md
ADDED
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
# @justmpm/task-request
|
|
2
|
+
|
|
3
|
+
MCP App com UI interativa para criar tasks estruturadas. O host chama a tool, o formulario abre dentro do chat, o usuario preenche, e a resposta volta como markdown estruturado para a conversa.
|
|
4
|
+
|
|
5
|
+
## O que é
|
|
6
|
+
|
|
7
|
+
Este é um **MCP App** - uma extensão do Model Context Protocol que inclui uma interface web interativa renderizada dentro de clientes como Claude Desktop.
|
|
8
|
+
|
|
9
|
+
## Funcionalidades
|
|
10
|
+
|
|
11
|
+
- **Formulário Visual** para criar tasks estruturadas
|
|
12
|
+
- **Tipos de Task**: Implementar, Corrigir, Analisar, Refatorar, Testar, Documentar
|
|
13
|
+
- **Prioridades**: Urgente, Normal, Baixa (com emojis visuais)
|
|
14
|
+
- **Campos Estruturados**:
|
|
15
|
+
- Título e descrição
|
|
16
|
+
- Contexto adicional (arquivos, prints, URLs)
|
|
17
|
+
- Restrições (o que NÃO fazer)
|
|
18
|
+
- Arquivos relacionados
|
|
19
|
+
- Critérios de aceite
|
|
20
|
+
- **Validação em tempo real**
|
|
21
|
+
- **Geração automática de prompt estruturado**
|
|
22
|
+
|
|
23
|
+
## Como funciona
|
|
24
|
+
|
|
25
|
+
Esse pacote tem 3 partes:
|
|
26
|
+
|
|
27
|
+
1. `create_task`
|
|
28
|
+
Abre a UI dentro do host MCP.
|
|
29
|
+
|
|
30
|
+
2. `mcp-app.html` + React
|
|
31
|
+
Renderiza o formulario premium dentro do chat.
|
|
32
|
+
|
|
33
|
+
3. `submit_task`
|
|
34
|
+
Recebe os dados enviados pela UI e devolve o resultado estruturado para a conversa.
|
|
35
|
+
|
|
36
|
+
## Instalação local
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
# Clone ou navegue até o diretório
|
|
40
|
+
cd mcps-ai/task-request
|
|
41
|
+
|
|
42
|
+
# Instale dependências
|
|
43
|
+
npm install
|
|
44
|
+
|
|
45
|
+
# Gere UI + servidor
|
|
46
|
+
npm run build
|
|
47
|
+
|
|
48
|
+
# Rode o endpoint MCP
|
|
49
|
+
npm run start
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
## Desenvolvimento
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
# Modo MCP real: recompila a UI para dist e observa alteracoes
|
|
56
|
+
npm run dev
|
|
57
|
+
|
|
58
|
+
# Preview visual da UI no navegador, separado do host MCP
|
|
59
|
+
npm run dev:ui
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
## Publicar e instalar globalmente
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
# Publicar no npm
|
|
66
|
+
npm publish --access public
|
|
67
|
+
|
|
68
|
+
# Instalar globalmente no seu PC
|
|
69
|
+
npm install -g @justmpm/task-request
|
|
70
|
+
|
|
71
|
+
# Rodar o MCP publicado
|
|
72
|
+
task-request-mcp
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
## Testar no host
|
|
76
|
+
|
|
77
|
+
### Opção 1: basic-host
|
|
78
|
+
|
|
79
|
+
```bash
|
|
80
|
+
git clone https://github.com/modelcontextprotocol/ext-apps.git
|
|
81
|
+
cd ext-apps/examples/basic-host
|
|
82
|
+
npm install
|
|
83
|
+
|
|
84
|
+
# Aponte para o endpoint local do MCP
|
|
85
|
+
SERVERS='["http://localhost:3001/mcp"]' npm start
|
|
86
|
+
|
|
87
|
+
# Abra http://localhost:8080
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
### Opção 2: Claude via tunnel
|
|
91
|
+
|
|
92
|
+
```bash
|
|
93
|
+
npx cloudflared tunnel --url http://localhost:3001
|
|
94
|
+
|
|
95
|
+
# Adicione a URL gerada como Custom Connector no Claude
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
## Uso
|
|
99
|
+
|
|
100
|
+
1. Cadastre o endpoint MCP no host:
|
|
101
|
+
`http://localhost:3001/mcp`
|
|
102
|
+
|
|
103
|
+
2. No host, peça algo como:
|
|
104
|
+
```
|
|
105
|
+
"Crie uma task para adicionar login com Google"
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
3. O host chama a tool `create_task` e o formulario aparece dentro do chat.
|
|
109
|
+
|
|
110
|
+
4. Preencha e clique em `Enviar task`.
|
|
111
|
+
|
|
112
|
+
5. A tool `submit_task` devolve a resposta estruturada automaticamente para a conversa.
|
|
113
|
+
|
|
114
|
+
## Configuração opcional
|
|
115
|
+
|
|
116
|
+
```bash
|
|
117
|
+
# Porta do servidor
|
|
118
|
+
PORT=3001
|
|
119
|
+
|
|
120
|
+
# Origins permitidas para o endpoint MCP
|
|
121
|
+
MCP_ALLOWED_ORIGINS=http://localhost:8080,http://localhost:3000
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
## Exemplo de Prompt Gerado
|
|
125
|
+
|
|
126
|
+
```markdown
|
|
127
|
+
## 📋 TASK: Adicionar botão de logout no header
|
|
128
|
+
|
|
129
|
+
**Tipo:** Implementar
|
|
130
|
+
**Prioridade:** 🟡 Normal
|
|
131
|
+
|
|
132
|
+
---
|
|
133
|
+
|
|
134
|
+
### 🎯 O que preciso
|
|
135
|
+
|
|
136
|
+
Adicionar um botão de logout no canto superior direito do header. O botão deve:
|
|
137
|
+
- Ter ícone de saída
|
|
138
|
+
- Confirmar antes de deslogar
|
|
139
|
+
- Chamar a função signOut() do AuthService
|
|
140
|
+
|
|
141
|
+
### 📎 Contexto Adicional
|
|
142
|
+
|
|
143
|
+
Arquivo: src/components/Header.tsx
|
|
144
|
+
Já existe o hook useAuth() com signOut()
|
|
145
|
+
|
|
146
|
+
### 📁 Arquivos Relacionados
|
|
147
|
+
|
|
148
|
+
- `src/components/Header.tsx`
|
|
149
|
+
- `src/hooks/useAuth.ts`
|
|
150
|
+
|
|
151
|
+
### ⛔ Restrições
|
|
152
|
+
|
|
153
|
+
**O que NÃO fazer:**
|
|
154
|
+
|
|
155
|
+
- Não quebrar testes existentes
|
|
156
|
+
- Manter padrão MUI V7
|
|
157
|
+
|
|
158
|
+
### ✅ Critérios de Aceite
|
|
159
|
+
|
|
160
|
+
1. Botão aparece no header quando logado
|
|
161
|
+
2. Confirmação aparece antes de deslogar
|
|
162
|
+
3. Usuário é redirecionado para /login após logout
|
|
163
|
+
|
|
164
|
+
---
|
|
165
|
+
|
|
166
|
+
> Task criada via Task Request Builder MCP App
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
## Stack
|
|
170
|
+
|
|
171
|
+
- **Server**: Express + MCP SDK + StreamableHTTPServerTransport
|
|
172
|
+
- **UI**: React 19 + MUI V7 + Vite
|
|
173
|
+
- **SDK**: @modelcontextprotocol/ext-apps
|
|
174
|
+
|
|
175
|
+
## Fluxo ideal
|
|
176
|
+
|
|
177
|
+
Se o seu objetivo e usar isso como builder de pedido:
|
|
178
|
+
|
|
179
|
+
1. Publique no npm
|
|
180
|
+
2. Instale globalmente com `npm install -g @justmpm/task-request`
|
|
181
|
+
3. Rode `task-request-mcp`
|
|
182
|
+
4. Cadastre `http://localhost:3001/mcp` no host
|
|
183
|
+
5. Quando eu precisar estruturar uma task, eu chamo `create_task`
|
|
184
|
+
6. Voce preenche o formulario e eu recebo o resultado ja pronto na conversa
|
|
185
|
+
|
|
186
|
+
## Estrutura
|
|
187
|
+
|
|
188
|
+
```
|
|
189
|
+
task-request/
|
|
190
|
+
├── src/
|
|
191
|
+
│ ├── server.ts # Servidor MCP com HTTP transport
|
|
192
|
+
│ └── ui/
|
|
193
|
+
│ ├── main.tsx # Entry point React
|
|
194
|
+
│ ├── App.tsx # Componente principal
|
|
195
|
+
│ └── types.ts # Tipos TypeScript
|
|
196
|
+
├── mcp-app.html # HTML entry point
|
|
197
|
+
├── vite.config.ts # Configuração Vite
|
|
198
|
+
├── tsconfig.json # TypeScript config
|
|
199
|
+
└── package.json
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
## Licença
|
|
203
|
+
|
|
204
|
+
MIT © Koda AI Studio
|