EsempioscriptadvancedEseguibileguided-flow
Server
Esempio rieseguibile advanced di tipo script che usa mcp.
Fatti chiave
- Livello
- advanced
- Runtime
- Python • Mcp
- Pattern
- Flusso ispezionabile con confini di sistema visibili
- Interazione
- Sandbox live • Script
- Aggiornato
- 14 marzo 2026
Naviga questo esempio
Libreria
Sfoglia gli esempiRiapri la libreria completa per confrontare pattern vicini e percorsi collegati.Interazione
Esegui ora nel sandboxProva l'interazione direttamente nella superficie guidata di questo esempio.Sorgente
Apri codice completoLeggi l'implementazione reale, i punti evidenziati e i requisiti runtime.MCP
Chiama via MCPUsa la stessa risorsa dentro agenti, export deterministici e setup MCP.
Principi collegati
server.py
python
import os
import json
from mcp.server.fastmcp import FastMCP
# Create an MCP server
mcp = FastMCP(
name="Knowledge Base",
host="0.0.0.0", # only used for SSE transport (localhost)
port=8050, # only used for SSE transport (set this to any port)
)
@mcp.tool()
def get_knowledge_base() -> str:
"""Retrieve the entire knowledge base as a formatted string.
Returns:
A formatted string containing all Q&A pairs from the knowledge base.
"""
try:
kb_path = os.path.join(os.path.dirname(__file__), "data", "kb.json")
with open(kb_path, "r") as f:
kb_data = json.load(f)
# Format the knowledge base as a string
kb_text = "Here is the retrieved knowledge base:\n\n"
if isinstance(kb_data, list):
for i, item in enumerate(kb_data, 1):
if isinstance(item, dict):
question = item.get("question", "Unknown question")
answer = item.get("answer", "Unknown answer")
else:
question = f"Item {i}"
answer = str(item)
kb_text += f"Q{i}: {question}\n"
kb_text += f"A{i}: {answer}\n\n"
else:
kb_text += f"Knowledge base content: {json.dumps(kb_data, indent=2)}\n\n"
return kb_text
except FileNotFoundError:
return "Error: Knowledge base file not found"
except json.JSONDecodeError:
return "Error: Invalid JSON in knowledge base file"
except Exception as e:
return f"Error: {str(e)}"
# Run the server
if __name__ == "__main__":
mcp.run(transport="stdio")
Principi correlati
- P6visibilityEsporre uno stato operativo significativo, non la complessità internaPresentare lo stato del sistema in linguaggio e strutture rilevanti per l'utente, piuttosto che esporre dettagli interni di basso livello che non supportano l'azione o la comprensione.Apri il principio →
- P7trustStabilire fiducia attraverso l'ispezionabilitàGli utenti dovrebbero essere in grado di esaminare come è stato prodotto un risultato quando la fiducia, la responsabilità o la qualità della decisione sono importanti.Apri il principio →
- P8trustRendere espliciti i passaggi, le approvazioni e i blocchiQuando il sistema non può procedere, la ragione dovrebbe essere immediatamente visibile, insieme a qualsiasi azione richiesta dall'utente o da un'altra dipendenza.Apri il principio →
- P9orchestrationRappresentare il lavoro delegato come un sistema, non solo come una conversazioneDove il lavoro coinvolge più passaggi, agenti, dipendenze o attività concorrenti, dovrebbe essere rappresentato come un sistema strutturato piuttosto che solo come un flusso di messaggi.Apri il principio →