# Come creare i miei strumenti MCP?
Gli sviluppatori di moduli possono creare i propri strumenti per esporre la funzionalità del loro modulo alle applicazioni IA, o per esporre funzionalità native PrestaShop oltre a ciò che offrono gli strumenti predefiniti.
Per creare i tuoi strumenti per PrestaShop MCP Server, dichiara il tuo modulo come compatibile con MCP e definisci i tuoi strumenti personalizzati usando attributi PHP.
Indici dei contenuti
# 1. Dichiarare il tuo modulo come compatibile con MCP
Per far sapere a PrestaShop MCP Server che il tuo modulo include strumenti MCP, dichiaralo come compatibile con MCP aggiungendo il metodo isMcpCompliant() alla tua classe modulo principale:
<?php
class Ps_MySuperModule extends Module
{
// Questo metodo permette a ps_mcp_server di scoprire i tuoi strumenti
public function isMcpCompliant()
{
return true;
}
}
?>
# 2. Implementare i tuoi strumenti MCP
Usa gli attributi PHP-MCP McpTool e Schema per dichiarare la tua funzione come uno strumento MCP. I tuoi strumenti saranno automaticamente scoperti e resi disponibili.
Per maggiori informazioni sugli attributi PHP-MCP, visita la documentazione PHP-MCP (opens new window).
Esempio:
<?php
class MySuperTool
{
// esempio di uno strumento per recuperare prodotti dal database
#[PhpMcp\\Server\\Attributes\\McpTool(
name: 'update_prestashop_product_by_id',
description: 'Aggiorna una descrizione prodotto per il suo ID nel negozio PrestaShop'
)]
#[PhpMcp\\Server\\Attributes\\Schema(
properties: [
'productId' => ['type' => 'integer', 'description' => 'ID del prodotto'],
],
required: ['productId']
)]
public function getProducts(int $langId): array {
return Product::getProducts($langId, 0, 100, 'id_product', 'ASC');
}
}
?>
# Linee guida per strumenti efficaci
Queste linee guida ti aiuteranno a progettare strumenti che gli agenti possano comprendere e utilizzare per completare attività complesse.
# 1. Descrivi i tuoi strumenti in modo chiaro e conciso
Definisci chiaramente e in modo conciso lo scopo e il comportamento di ogni strumento. Questo aiuta i modelli IA a comprendere la funzionalità dello strumento e usarlo correttamente.
Esempio:
#[PhpMcp\\Server\\Attributes\\McpTool(
name: 'search_product_by_name',
description: 'Cerca un prodotto nel negozio solo per nome. Questa ricerca usa corrispondenza fuzzy. I risultati sono ordinati per rilevanza. '
)]
#[PhpMcp\\Server\\Attributes\\Schema(
properties: [
'searchTerms' => ['type' => 'string', 'description' => 'Termini di ricerca da cercare nei nomi dei prodotti. Diversi termini possono essere forniti come una lista separata da punto e virgola.'],
'language' => ['type' => 'integer', 'description' => 'Lingua per eseguire la ricerca. Di default, la lingua preferita.']
],
required: ['productId']
)]
In questo esempio, il nome e la descrizione dello strumento non lasciano dubbi sull'uso dello strumento. Il campo searchTerms mostra anche come un agente può essere guidato per utilizzare appieno i tuoi strumenti.
# 2. Usa vocabolario coerente
Usa vocabolario coerente in tutto il tuo server MCP per aiutare gli agenti a connettere i tuoi strumenti e pianificare flussi di lavoro complessi usando più strumenti insieme. Questo include parametri, messaggi di errore e altri termini tecnici.
# 3. Valida i tuoi input
Valida gli input dei tuoi strumenti usando l'annotazione #[Schema()] fornita da PHP-MCP (opens new window) per assicurarti che siano corretti e coerenti.
# 4. Esegui controlli di coerenza
Dopo aver validato i parametri, assicurati che gli agenti facciano richieste ragionevoli al tuo strumento. Questo include:
- Limitare la dimensione dei risultati e la complessità delle richieste
- Applicare i permessi
- Verificare contenuti inappropriati quando l'IA genera testo o immagini
- Rilevare comportamenti erratici, come un agente bloccato in un loop
Per più linee guida su come scrivere strumenti MCP efficaci, visita la Guida allo sviluppo MCP (opens new window).
# Debug
PrestaShop MCP Server memorizza i registri, la cache e i file di configurazione nella cartella .mcp. I file .logs vengono creati quando il parametro del modulo MCP Abilita registri è impostato su true.
Per forzare una nuova scansione delle posizioni, elimina .cache.json.
Usa l'ispettore MCP (opens new window) per verificare che il tuo server funzioni e validare che i tuoi strumenti MCP funzionino correttamente.
# Dipendenze
php-mcp/server(opens new window) - Libreria server PHP MCPphp-mcp/client(opens new window) - Libreria client PHP MCP
# Documentazione
- Specifica del protocollo MCP: modelcontextprotocol.io (opens new window)
- Libreria PHP MCP: PHP-MCP (opens new window)