Server MCP
Kiro Memory espone 10 strumenti attraverso il Model Context Protocol (MCP). Questi strumenti permettono agli assistenti AI di programmazione di cercare, archiviare e recuperare memorie in modo programmatico durante una sessione.
Avvio del server MCP
Il server MCP si avvia automaticamente quando invocato dal tuo editor. Puoi anche eseguirlo manualmente:
kiro-memory mcp
Questo avvia il server MCP utilizzando il trasporto stdio, che e lo standard per le integrazioni con gli editor.
Riferimento degli strumenti
search
Ricerca full-text tra osservazioni e riepiloghi utilizzando SQLite FTS5.
Parametri:
| Parametro | Tipo | Obbligatorio | Predefinito | Descrizione |
|---|---|---|---|---|
query | string | Si | -- | Testo da cercare |
project | string | No | auto | Filtra per nome del progetto |
type | string | No | all | Filtra per tipo di osservazione |
limit | number | No | 20 | Numero massimo di risultati da restituire |
Tipi di osservazione: file-write, command, research, tool-use, constraint, decision, heuristic, rejected
Ritorna: Tabella formattata in Markdown con ID, tipo, titolo e data per ogni corrispondenza.
Esempio di utilizzo da parte di un assistente AI:
Cerchero nella tua memoria il lavoro precedente sull'autenticazione.
→ search({ query: "authentication", type: "file-write", limit: 10 })
semantic_search
Ricerca per similarita vettoriale utilizzando embedding locali. Trova osservazioni per significato anziche per parole chiave esatte.
Parametri:
| Parametro | Tipo | Obbligatorio | Predefinito | Descrizione |
|---|---|---|---|---|
query | string | Si | -- | Query in linguaggio naturale |
project | string | No | auto | Filtra per nome del progetto |
limit | number | No | 10 | Numero massimo di risultati da restituire |
Ritorna: Risultati classificati con punteggi di similarita e informazioni sulla fonte.
Esempio:
→ semantic_search({ query: "how to handle API rate limiting", limit: 5 })
La ricerca semantica utilizza un approccio ibrido che combina la similarita vettoriale con la corrispondenza per parole chiave per ottenere i migliori risultati. Gli embedding vengono generati localmente -- non servono chiavi API.
timeline
Mostra il contesto cronologico attorno a una specifica osservazione. Utile per comprendere la sequenza di eventi prima e dopo una particolare azione.
Parametri:
| Parametro | Tipo | Obbligatorio | Predefinito | Descrizione |
|---|---|---|---|---|
anchor | number | Si | -- | ID dell'osservazione come punto di riferimento |
depth_before | number | No | 5 | Numero di osservazioni prima dell'ancora |
depth_after | number | No | 5 | Numero di osservazioni dopo l'ancora |
Ritorna: Lista cronologica di osservazioni con l'osservazione ancora evidenziata. Ogni voce include timestamp, tipo, titolo e contenuto.
Esempio:
→ timeline({ anchor: 42, depth_before: 3, depth_after: 3 })
get_observations
Recupera i dettagli completi di osservazioni specifiche tramite i loro ID. Tipicamente usato dopo una search per ottenere il contenuto completo dei risultati rilevanti.
Parametri:
| Parametro | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
ids | number[] | Si | Array di ID delle osservazioni da recuperare |
Ritorna: Markdown dettagliato per ogni osservazione, inclusi:
- Tipo e progetto
- Data di creazione
- Contenuto completo e narrativa
- Concetti associati (tag)
- Percorsi dei file correlati
Esempio:
→ get_observations({ ids: [12, 45, 67] })
get_context
Recupera il contesto recente per un progetto: osservazioni, riepiloghi e prompt recenti. Questo e lo strumento principale per l'iniezione del contesto all'avvio della sessione.
Parametri:
| Parametro | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
project | string | Si | Nome del progetto |
Ritorna: Contesto formattato che include:
- Riepiloghi recenti (apprendimenti a livello di sessione)
- Osservazioni recenti (fino a 10, con tipo, titolo e timestamp)
Esempio:
→ get_context({ project: "my-app" })
Questo strumento viene richiamato automaticamente all'avvio della sessione dal sistema di hooks/regole. Generalmente non e necessario richiamarlo manualmente.
store_observation
Aggiunge una nuova osservazione alla memoria. Usato dagli hooks per catturare automaticamente scritture di file, comandi e ricerche durante una sessione.
Parametri:
| Parametro | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
type | string | Si | Tipo di osservazione: file-write, command, research, tool-use, constraint, decision, heuristic, rejected |
title | string | Si | Breve titolo descrittivo |
content | string | Si | Contenuto dettagliato |
concepts | string[] | No | Tag/concetti correlati |
files | string[] | No | Percorsi dei file correlati |
Ritorna: Conferma con l'ID dell'osservazione assegnato.
Esempio:
→ store_observation({
type: "decision",
title: "Use Zod for validation",
content: "Chose Zod over Yup for schema validation due to TypeScript-first design",
concepts: ["validation", "typescript"],
files: ["src/schemas/user.ts"]
})
store_summary
Archivia un riepilogo di sessione che cattura cio che e stato appreso e realizzato. Viene richiamato automaticamente dall'hook Stop quando una sessione termina.
Parametri:
| Parametro | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
request | string | Si | Cosa e stato richiesto/tentato |
learned | string | No | Intuizioni chiave scoperte |
completed | string[] | No | Lista delle attivita completate |
nextSteps | string[] | No | Azioni di follow-up consigliate |
Ritorna: Conferma con l'ID del riepilogo assegnato.
store_knowledge
Archivia conoscenza strutturata come elemento di prima classe. La conoscenza persiste indipendentemente dalle sessioni e rappresenta decisioni architetturali, vincoli e linee guida.
Parametri:
| Parametro | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
knowledge_type | string | Si | constraint, decision, heuristic o rejected |
title | string | Si | Breve titolo descrittivo |
content | string | Si | Spiegazione dettagliata |
project | string | Si | Nome del progetto |
severity | string | No | Per i vincoli: hard o soft |
alternatives | string[] | No | Alternative considerate |
reason | string | No | Perche e stato scelto o scartato |
context | string | No | Quando si applica (per le euristiche) |
confidence | string | No | high, medium o low (per le euristiche) |
concepts | string[] | No | Tag correlati |
files | string[] | No | Percorsi dei file correlati |
Ritorna: Conferma con l'ID della conoscenza assegnato.
Esempio:
→ store_knowledge({
knowledge_type: "constraint",
title: "No external fonts",
content: "Must use system fonts only for GDPR compliance and performance",
project: "my-app",
severity: "hard",
concepts: ["gdpr", "performance", "fonts"]
})
resume_session
Riprende una sessione di sviluppo precedente recuperando i dati del checkpoint, inclusi la descrizione dell'attivita, il progresso, i prossimi passi e i file rilevanti.
Parametri:
| Parametro | Tipo | Obbligatorio | Predefinito | Descrizione |
|---|---|---|---|---|
project | string | No | auto | Nome del progetto (rilevato automaticamente dall'ambiente) |
session_id | number | No | latest | ID di sessione specifico (usa l'ultimo checkpoint se omesso) |
Ritorna: Dati del checkpoint formattati:
- Descrizione dell'attivita
- Riepilogo del progresso
- Prossimi passi come checklist
- Domande aperte
- Lista dei file rilevanti
Esempio:
→ resume_session({ project: "my-app" })
generate_report
Genera un report di attivita che riepiloga il lavoro di sviluppo in un periodo di tempo.
Parametri:
| Parametro | Tipo | Obbligatorio | Predefinito | Descrizione |
|---|---|---|---|---|
project | string | No | auto | Nome del progetto (rilevato automaticamente) |
period | string | No | weekly | Periodo del report: weekly o monthly |
Ritorna: Report in Markdown che include:
- Panoramica (conteggio osservazioni, conteggio sessioni, arco temporale)
- Riepiloghi delle sessioni
- Apprendimenti chiave
- Attivita completate
- Prossimi passi
- Top 10 degli hotspot sui file
Configurazione MCP specifica per editor
Claude Code
Claude Code scopre i server MCP attraverso la sua configurazione. Il comando kiro-memory install --claude-code registra il server automaticamente.
Configurazione manuale in .claude/mcp.json:
{
"mcpServers": {
"kiro-memory": {
"command": "kiro-memory",
"args": ["mcp"]
}
}
}
Cursor
Aggiungi a .cursor/mcp.json nella radice del tuo progetto:
{
"mcpServers": {
"kiro-memory": {
"command": "kiro-memory",
"args": ["mcp"],
"env": {}
}
}
}
Dopo aver aggiunto la configurazione, riavvia Cursor affinche il server MCP venga rilevato.
Windsurf
Aggiungi alla configurazione MCP di Windsurf:
{
"mcpServers": {
"kiro-memory": {
"command": "kiro-memory",
"args": ["mcp"],
"env": {}
}
}
}
Cline
Aggiungi alle impostazioni MCP di Cline (accessibili tramite le impostazioni dell'estensione Cline in VS Code):
{
"mcpServers": {
"kiro-memory": {
"command": "kiro-memory",
"args": ["mcp"],
"env": {}
}
}
}
Client MCP generico
Qualsiasi client che implementa la specifica MCP puo connettersi a Kiro Memory. Il server utilizza il trasporto stdio e si aspetta di essere invocato come:
kiro-memory mcp
Il server pubblica tutti i 10 strumenti con i relativi schema alla connessione tramite il metodo standard MCP tools/list.