@justmpm/memory 0.1.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 +254 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +582 -0
- package/dist/index.js.map +1 -0
- package/mcp-config.example.json +10 -0
- package/package.json +40 -0
- package/src/index.ts +647 -0
- package/tsconfig.json +20 -0
package/README.md
ADDED
|
@@ -0,0 +1,254 @@
|
|
|
1
|
+
# @justmpm/memory
|
|
2
|
+
|
|
3
|
+
MCP Server (Model Context Protocol) para gerenciar memória persistente de subagents entre sessões.
|
|
4
|
+
|
|
5
|
+
## Descrição
|
|
6
|
+
|
|
7
|
+
Este servidor permite que subagents salvem e recuperem aprendizados específicos do projeto entre diferentes sessões de trabalho. Cada agent mantém sua própria memória isolada, armazenada em `.claude/agent-memory/<agent-name>/MEMORY.md`.
|
|
8
|
+
|
|
9
|
+
## Por que usar?
|
|
10
|
+
|
|
11
|
+
- **Persistência entre sessões**: Aprendizados salvos não se perdem quando a sessão termina
|
|
12
|
+
- **Memória por agent**: Cada subagent tem sua própria memória isolada
|
|
13
|
+
- **Específico por projeto**: Cada projeto tem sua própria pasta de memórias
|
|
14
|
+
- **Auto-limpeza**: Limite automático de 200 linhas para manter memória gerenciável
|
|
15
|
+
- **Busca eficiente**: Encontre informações rapidamente sem ler tudo
|
|
16
|
+
|
|
17
|
+
## Instalação
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
npm install
|
|
21
|
+
npm run build
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## Uso
|
|
25
|
+
|
|
26
|
+
### Como Servidor MCP
|
|
27
|
+
|
|
28
|
+
Para usar este servidor como MCP, adicione ao seu arquivo de configuração do cliente MCP:
|
|
29
|
+
|
|
30
|
+
**Opção 1 - Caminho absoluto (desenvolvimento local):**
|
|
31
|
+
```json
|
|
32
|
+
{
|
|
33
|
+
"mcpServers": {
|
|
34
|
+
"memory": {
|
|
35
|
+
"command": "node",
|
|
36
|
+
"args": ["D:\\Users\\Matheus Pimenta\\Pictures\\Pacotes-Pessoais\\mcps-ai\\memory\\dist\\index.js"]
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
**Opção 2 - Após publicar no npm (futuro):**
|
|
43
|
+
```json
|
|
44
|
+
{
|
|
45
|
+
"mcpServers": {
|
|
46
|
+
"memory": {
|
|
47
|
+
"command": "npx",
|
|
48
|
+
"args": ["@justmpm/memory"]
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
**Nota:** O nome do servidor MCP é "memory" para facilitar o uso, enquanto o nome do pacote npm é "@justmpm/memory".
|
|
55
|
+
|
|
56
|
+
### Comandos Disponíveis
|
|
57
|
+
|
|
58
|
+
#### `read` - Lê a memória do agent
|
|
59
|
+
|
|
60
|
+
**Quando usar:** Ao iniciar uma sessão para carregar contexto anterior.
|
|
61
|
+
|
|
62
|
+
```json
|
|
63
|
+
{
|
|
64
|
+
"command": "read",
|
|
65
|
+
"agent": "sentinel"
|
|
66
|
+
}
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
**Retorna:** Conteúdo completo do MEMORY.md com contagem de linhas.
|
|
70
|
+
|
|
71
|
+
#### `write` - Substitui toda a memória
|
|
72
|
+
|
|
73
|
+
**Quando usar:** Para reorganizar, limpar ou reconstruir memória do zero.
|
|
74
|
+
|
|
75
|
+
```json
|
|
76
|
+
{
|
|
77
|
+
"command": "write",
|
|
78
|
+
"agent": "sentinel",
|
|
79
|
+
"content": "# Memória do Sentinel\n\n## Padrões\n- Sempre use TypeScript estrito\n\n## Bugs\n- Bug XYZ ocorre quando..."
|
|
80
|
+
}
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
**Retorna:** Confirmação + contagem de linhas.
|
|
84
|
+
|
|
85
|
+
#### `append` - Adiciona uma entrada no final
|
|
86
|
+
|
|
87
|
+
**Quando usar:** Ao aprender algo novo e importante.
|
|
88
|
+
|
|
89
|
+
```json
|
|
90
|
+
{
|
|
91
|
+
"command": "append",
|
|
92
|
+
"agent": "sentinel",
|
|
93
|
+
"entry": "Padrão descoberto: sempre use Zod para validar inputs do usuário"
|
|
94
|
+
}
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
**Retorna:** Timestamp + preview da entrada.
|
|
98
|
+
|
|
99
|
+
**Nota:** O timestamp é adicionado automaticamente: `## [2026-02-09 12:34:56]`
|
|
100
|
+
|
|
101
|
+
#### `search` - Busca texto na memória
|
|
102
|
+
|
|
103
|
+
**Quando usar:** Para encontrar informações rápidas sem ler tudo.
|
|
104
|
+
|
|
105
|
+
```json
|
|
106
|
+
{
|
|
107
|
+
"command": "search",
|
|
108
|
+
"agent": "sentinel",
|
|
109
|
+
"query": "Zod"
|
|
110
|
+
}
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
**Retorna:** Máximo 20 ocorrências com número da linha.
|
|
114
|
+
|
|
115
|
+
#### `list` - Lista todos os agents com memória
|
|
116
|
+
|
|
117
|
+
**Quando usar:** Para descobrir quais agents usaram memória no projeto.
|
|
118
|
+
|
|
119
|
+
```json
|
|
120
|
+
{
|
|
121
|
+
"command": "list"
|
|
122
|
+
}
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
**Retorna:** Lista com nome de cada agent + contagem de linhas.
|
|
126
|
+
|
|
127
|
+
## Estrutura de Arquivos
|
|
128
|
+
|
|
129
|
+
```
|
|
130
|
+
.claude/
|
|
131
|
+
└── agent-memory/
|
|
132
|
+
├── sentinel/
|
|
133
|
+
│ └── MEMORY.md
|
|
134
|
+
├── qa-tester/
|
|
135
|
+
│ └── MEMORY.md
|
|
136
|
+
└── nexus/
|
|
137
|
+
└── MEMORY.md
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
**Nota:** O nome do agent é normalizado automaticamente:
|
|
141
|
+
- "Sentinel" → "sentinel"
|
|
142
|
+
- "QA-Tester" → "qa-tester"
|
|
143
|
+
- "My Agent" → "my-agent"
|
|
144
|
+
|
|
145
|
+
## Workflow Recomendado
|
|
146
|
+
|
|
147
|
+
1. **Ao iniciar sessão:**
|
|
148
|
+
```json
|
|
149
|
+
{ "command": "read", "agent": "sentinel" }
|
|
150
|
+
```
|
|
151
|
+
→ Carrega memória anterior para contexto
|
|
152
|
+
|
|
153
|
+
2. **Ao aprender algo importante:**
|
|
154
|
+
```json
|
|
155
|
+
{ "command": "append", "agent": "sentinel", "entry": "Padrão descoberto: ..." }
|
|
156
|
+
```
|
|
157
|
+
→ Salva aprendizado incremental
|
|
158
|
+
|
|
159
|
+
3. **Quando memória ficar grande (~200 linhas):**
|
|
160
|
+
```json
|
|
161
|
+
{ "command": "write", "agent": "sentinel", "content": "# Memória Reorganizada\n\n..." }
|
|
162
|
+
```
|
|
163
|
+
→ Consolide e remova entradas obsoletas
|
|
164
|
+
|
|
165
|
+
4. **Para buscar informação específica:**
|
|
166
|
+
```json
|
|
167
|
+
{ "command": "search", "agent": "sentinel", "query": "Zod" }
|
|
168
|
+
```
|
|
169
|
+
→ Encontre rapidamente sem ler tudo
|
|
170
|
+
|
|
171
|
+
## O Que Salvar
|
|
172
|
+
|
|
173
|
+
### ✅ SEMPRE salve
|
|
174
|
+
|
|
175
|
+
- **Padrões de código:** Ex: "Sempre use 2 espaços de indentação em TSX"
|
|
176
|
+
- **Decisões arquiteturais:** Ex: "Escolhemos Firestore em vez de PostgreSQL porque..."
|
|
177
|
+
- **Bugs recorrentes:** Ex: "Erro X acontece quando..."
|
|
178
|
+
- **Soluções específicas:** Ex: "Para resolver problema Y, use..."
|
|
179
|
+
- **Configurações importantes:** Ex: "Firebase Auth usa Google Sign-In"
|
|
180
|
+
- **Preferências do usuário:** Ex: "Matheus prefere estilos inline para componentes simples"
|
|
181
|
+
|
|
182
|
+
### ❌ NÃO salve
|
|
183
|
+
|
|
184
|
+
- Coisas triviais: "Hoje está chovendo"
|
|
185
|
+
- Informações que mudam frequentemente: "Tem 3 arquivos na pasta"
|
|
186
|
+
- Coisas óbvias: "O código precisa compilar"
|
|
187
|
+
- Informações duplicadas
|
|
188
|
+
- Logs de conversação
|
|
189
|
+
|
|
190
|
+
## Boas Práticas
|
|
191
|
+
|
|
192
|
+
### Formatação recomendada
|
|
193
|
+
|
|
194
|
+
Use seções markdown organizadas:
|
|
195
|
+
|
|
196
|
+
```markdown
|
|
197
|
+
# Memória do [Nome do Agent]
|
|
198
|
+
|
|
199
|
+
## Padrões
|
|
200
|
+
- Sempre use TypeScript estrito
|
|
201
|
+
- Use Zod para validação de inputs
|
|
202
|
+
|
|
203
|
+
## Decisões
|
|
204
|
+
- Escolhemos Zustand em vez de Redux (mais leve)
|
|
205
|
+
- Firestore para banco de dados (escalabilidade)
|
|
206
|
+
|
|
207
|
+
## Bugs
|
|
208
|
+
- Bug XYZ: ocorre quando...
|
|
209
|
+
- Solução temporária: use workaround...
|
|
210
|
+
|
|
211
|
+
## Configurações
|
|
212
|
+
- Firebase Auth com Google Sign-In
|
|
213
|
+
- MUI v7 para componentes
|
|
214
|
+
|
|
215
|
+
## Preferências
|
|
216
|
+
- Matheus prefere componentes funcionais
|
|
217
|
+
- Use 2 espaços de indentação
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
### Dicas
|
|
221
|
+
|
|
222
|
+
- **Seja específico:** "Use 2 espaços" > "Formate bem"
|
|
223
|
+
- **Adicione contexto:** "No projeto X, use Y..."
|
|
224
|
+
- **Use append para entradas cronológicas:** Mantém histórico
|
|
225
|
+
- **Use write para reorganizar:** Limpa e estrutura
|
|
226
|
+
- **Search antes de salvar:** Evita duplicatas
|
|
227
|
+
- **Limpe periodicamente:** Remova entradas obsoletas
|
|
228
|
+
|
|
229
|
+
## Limitações
|
|
230
|
+
|
|
231
|
+
- **Máximo 200 linhas:** Quando excedido, mantém as últimas 160 linhas
|
|
232
|
+
- **Memória é específica por projeto:** Cada projeto tem sua própria pasta
|
|
233
|
+
- **Parâmetro agent é opcional:** Usa "unknown" se não fornecido (mas é recomendável sempre fornecer)
|
|
234
|
+
|
|
235
|
+
## Desenvolvimento
|
|
236
|
+
|
|
237
|
+
```bash
|
|
238
|
+
# Desenvolvimento com hot reload
|
|
239
|
+
npm run dev
|
|
240
|
+
|
|
241
|
+
# Build
|
|
242
|
+
npm run build
|
|
243
|
+
|
|
244
|
+
# Executar
|
|
245
|
+
npm start
|
|
246
|
+
```
|
|
247
|
+
|
|
248
|
+
## Versão
|
|
249
|
+
|
|
250
|
+
Para alterar a versão do servidor MCP, basta modificar o campo `version` no arquivo `package.json`. O `index.ts` lê automaticamente a versão do package.json em tempo de execução.
|
|
251
|
+
|
|
252
|
+
## Licença
|
|
253
|
+
|
|
254
|
+
MIT © Koda AI Studio
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Memory MCP Server - Sistema de memória persistente para subagents
|
|
3
|
+
*
|
|
4
|
+
* Permite que subagents salvem e recuperem aprendizados entre sessões.
|
|
5
|
+
* Cada agent tem sua própria memória, armazenada em .claude/agent-memory/<agent-name>/MEMORY.md
|
|
6
|
+
*
|
|
7
|
+
* @see https://modelcontextprotocol.io/
|
|
8
|
+
*/
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG"}
|