Server MCP di Babel Licensing Data Center
Il server MCP di Babel Licensing è un server Model Context Protocol (MCP) scritto in Python che espone come strumenti tutte le funzioni dell’API di Babel Licensing. Gli assistenti AI come Claude possono così interagire direttamente con il tuo sistema Babel Licensing per la gestione delle licenze, le operazioni sui clienti, la gestione dei prodotti e altro ancora.
Che cos’è MCP?
Il Model Context Protocol (MCP) è uno standard aperto che permette agli assistenti AI di connettersi in modo sicuro a sistemi e origini dati esterni. I server MCP fanno da ponte tra i modelli AI e i tuoi sistemi aziendali, e consentono di interagire in linguaggio naturale con API, database e strumenti.
Funzionalità
- Copertura completa dell’API: espone come strumenti MCP tutti gli oltre 90 endpoint dell’API di Babel Licensing
- Configurazione tipizzata: configurazione basata su Pydantic con convalida automatica
- Supporto dell’autenticazione: supporta l’autenticazione sia con chiave API sia con token Bearer
- Rotazione giornaliera dei log: registrazione automatica nella cartella
logs/con rotazione giornaliera dei file - Set completo di strumenti: include strumenti per:
- Autenticazione e gestione degli utenti
- Operazioni sulle licenze (attivazione, disattivazione, convalida, richiesta, rilascio)
- Gestione di clienti e contatti
- Gestione di prodotti e ordini
- Modelli di licenza e token
- Webhook e gestione degli eventi
- Report e log
- Notifiche email
- Impostazioni e configurazione del sistema
Requisiti
- Python 3.10 o versione successiva
- Accesso all’API di Babel Licensing (URL di base e credenziali)
- Un client compatibile con MCP (per esempio Claude Desktop)
Installazione
Avvio rapido
macOS / Linux
- Estrai l’archivio e spostati nella cartella:
unzip babel-licensing-mcp-*.zip
cd babel-licensing-mcp-*- Esegui lo script di installazione:
chmod +x setup.sh
./setup.sh- Configura il tuo ambiente:
# Edit .env file with your Babel Licensing API credentials
nano .envWindows
-
Estrai l’archivio ZIP e spostati nella cartella in PowerShell
-
Abilita l’esecuzione degli script PowerShell (se necessario):
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser- Esegui lo script di installazione:
.\setup.ps1- Configura il tuo ambiente:
# Edit .env file with your Babel Licensing API credentials
notepad .envInstallazione manuale
Crea un ambiente virtuale
python3 -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activateInstalla le dipendenze
pip install -r requirements.txtConfigura le variabili d’ambiente
cp .env.example .env
# Edit .env with your actual credentialsConfigurazione
Il server richiede le seguenti variabili d’ambiente (configurate in .env):
# Babel Licensing API Base URL
BABEL_API_BASE_URL=https://your-babel-licensing-server.com
# Authentication - Use ONE of the following:
# Option 1: API Key
BABEL_API_KEY=your-api-key-here
# Option 2: Bearer Token
# BABEL_BEARER_TOKEN=your-bearer-token-here
# Optional Configuration
# BABEL_VERIFY_SSL=true # Set to false for self-signed certificates
# BABEL_TIMEOUT=30 # Request timeout in seconds
# BABEL_CONTENT_TYPE=application/json # Content type: application/json or application/toon
# DEBUG=false # Enable debug loggingConfigurazione del tipo di contenuto
Il server supporta due tipi di contenuto per le richieste all’API:
application/json(predefinito): formato JSON standardapplication/toon: formato TOON per casi d’uso specifici
Per usare il formato TOON, imposta la variabile d’ambiente BABEL_CONTENT_TYPE:
BABEL_CONTENT_TYPE=application/toonIl client imposta automaticamente le intestazioni Content-Type e Accept appropriate per tutte le richieste all’API.
Utilizzo
Eseguire il server MCP
Opzione 1: usare il comando installato
babel-licensing-mcpOpzione 2: esecuzione diretta
python src/server.pyConfigurare i client AI
Il server MCP di Babel Licensing può essere usato con qualsiasi client AI compatibile con MCP, compresi Claude Desktop e Claude Code.
Configurare Claude Desktop
Aggiungi quanto segue al file di configurazione di Claude Desktop:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
Linux: ~/.config/Claude/claude_desktop_config.json
Configurazione consigliata (percorso diretto)
{
"mcpServers": {
"babel-licensing": {
"command": "/absolute/path/to/babel-licensing-mcp/venv/bin/python",
"args": [
"/absolute/path/to/babel-licensing-mcp/src/server.py"
],
"env": {
"BABEL_API_BASE_URL": "https://your-babel-server.com",
"BABEL_API_KEY": "your-api-key-here"
}
}
}
}Esempio con percorsi reali (macOS):
{
"mcpServers": {
"babel-licensing": {
"command": "/Users/username/Projects/babel-licensing-mcp/venv/bin/python",
"args": [
"/Users/username/Projects/babel-licensing-mcp/src/server.py"
],
"env": {
"BABEL_API_BASE_URL": "https://api.babel-licensing.com",
"BABEL_API_KEY": "abc123def456"
}
}
}
}Esempio con percorsi reali (Windows):
{
"mcpServers": {
"babel-licensing": {
"command": "C:\\Users\\username\\Projects\\babel-licensing-mcp\\venv\\Scripts\\python.exe",
"args": [
"C:\\Users\\username\\Projects\\babel-licensing-mcp\\src\\server.py"
],
"env": {
"BABEL_API_BASE_URL": "https://api.babel-licensing.com",
"BABEL_API_KEY": "abc123def456"
}
}
}
}Nota: sostituisci /absolute/path/to/ con il percorso effettivo della cartella del tuo progetto. Puoi trovarlo eseguendo pwd (macOS/Linux) o cd (Windows) nella cartella del progetto.
Alternativa: usare il file .env
Invece di specificare le variabili d’ambiente nella configurazione di Claude Desktop, puoi creare un file .env nella cartella principale del progetto:
# Copy the example file
cp .env.example .env
# Edit with your credentials
BABEL_API_BASE_URL=https://your-babel-server.com
BABEL_API_KEY=your-api-key-herePoi usa una configurazione di Claude Desktop più semplice:
{
"mcpServers": {
"babel-licensing": {
"command": "/absolute/path/to/babel-licensing-mcp/venv/bin/python",
"args": [
"/absolute/path/to/babel-licensing-mcp/src/server.py"
]
}
}
}Dopo la configurazione:
- Chiudi completamente Claude Desktop e riavvialo
- Avvia una nuova conversazione
- Cerca l’icona degli strumenti 🔨, che indica che i server MCP sono connessi
- Chiedi a Claude: “A quali strumenti di Babel Licensing hai accesso?”
Configurare Claude Code
Claude Code è un’estensione di VS Code che porta l’assistenza dell’AI direttamente nel tuo ambiente di sviluppo. Per usare il server MCP di Babel Licensing con Claude Code:
Passo 1: installa Claude Code
Installa l’estensione Claude Code dal marketplace di VS Code:
- Apri VS Code
- Vai a Extensions (Cmd+Shift+X su macOS, Ctrl+Shift+X su Windows/Linux)
- Cerca “Claude Code”
- Fai clic su Install
Passo 2: aggiungi il server MCP alle impostazioni
Apri le impostazioni di VS Code e aggiungi la configurazione del server MCP:
Opzione A: impostazioni dell’area di lavoro (consigliata per l’uso in un progetto specifico)
Crea o modifica .vscode/settings.json nella tua area di lavoro:
{
"claude.mcpServers": {
"babel-licensing": {
"command": "/absolute/path/to/babel-licensing-mcp/venv/bin/python",
"args": [
"/absolute/path/to/babel-licensing-mcp/src/server.py"
],
"env": {
"BABEL_API_BASE_URL": "https://licensing.example.com",
"BABEL_API_KEY": "your-api-key-here"
}
}
}
}Opzione B: impostazioni utente (per l’accesso globale da tutte le aree di lavoro)
- Apri la Command Palette (Cmd+Shift+P su macOS, Ctrl+Shift+P su Windows/Linux)
- Digita “Preferences: Open User Settings (JSON)”
- Aggiungi la configurazione
claude.mcpServers:
{
"claude.mcpServers": {
"babel-licensing": {
"command": "/Users/username/Projects/babel-licensing-mcp/venv/bin/python",
"args": [
"/Users/username/Projects/babel-licensing-mcp/src/server.py"
],
"env": {
"BABEL_API_BASE_URL": "https://licensing.example.com",
"BABEL_API_KEY": "your-api-key-here"
}
}
}
}Passo 3: usa le variabili d’ambiente
Nella configurazione puoi fare riferimento alle variabili d’ambiente:
{
"claude.mcpServers": {
"babel-licensing": {
"command": "/path/to/babel-licensing-mcp/venv/bin/python",
"args": ["/path/to/babel-licensing-mcp/src/server.py"],
"env": {
"BABEL_API_BASE_URL": "${env:BABEL_URL}",
"BABEL_API_KEY": "${env:BABEL_KEY}"
}
}
}
}Poi imposta le variabili d’ambiente nella shell prima di avviare VS Code:
# macOS/Linux
export BABEL_URL="https://licensing.example.com"
export BABEL_KEY="your-api-key-here"
code .
# Windows PowerShell
$env:BABEL_URL = "https://licensing.example.com"
$env:BABEL_KEY = "your-api-key-here"
code .Passo 4: usa il file .env (l’approccio più semplice)
Configura il file .env nella cartella del server MCP con le tue credenziali, poi usa una configurazione minima:
{
"claude.mcpServers": {
"babel-licensing": {
"command": "/path/to/babel-licensing-mcp/venv/bin/python",
"args": ["/path/to/babel-licensing-mcp/src/server.py"]
}
}
}Il server carica automaticamente le impostazioni dal file .env.
Passo 5: esempi di percorsi per ogni piattaforma
macOS:
{
"claude.mcpServers": {
"babel-licensing": {
"command": "/Users/username/Projects/babel-licensing-mcp/venv/bin/python",
"args": [
"/Users/username/Projects/babel-licensing-mcp/src/server.py"
]
}
}
}Windows:
{
"claude.mcpServers": {
"babel-licensing": {
"command": "C:\\Users\\username\\Projects\\babel-licensing-mcp\\venv\\Scripts\\python.exe",
"args": [
"C:\\Users\\username\\Projects\\babel-licensing-mcp\\src\\server.py"
]
}
}
}Linux:
{
"claude.mcpServers": {
"babel-licensing": {
"command": "/home/username/projects/babel-licensing-mcp/venv/bin/python",
"args": [
"/home/username/projects/babel-licensing-mcp/src/server.py"
]
}
}
}Passo 6: usa i percorsi relativi
Per le configurazioni specifiche di un’area di lavoro puoi usare le variabili di VS Code:
{
"claude.mcpServers": {
"babel-licensing": {
"command": "${workspaceFolder}/../babel-licensing-mcp/venv/bin/python",
"args": [
"${workspaceFolder}/../babel-licensing-mcp/src/server.py"
],
"cwd": "${workspaceFolder}/../babel-licensing-mcp"
}
}
}È utile quando il server MCP si trova in una cartella allo stesso livello della tua area di lavoro.
Passo 7: verifica l’installazione
Dopo la configurazione, ricarica VS Code per attivare il server MCP:
- Apri la Command Palette (Cmd+Shift+P / Ctrl+Shift+P)
- Digita “Developer: Reload Window”
- Premi Enter
Per verificare che il server funzioni:
- Apri il pannello di Claude in VS Code
- Avvia una nuova conversazione
- Chiedi: “Quali funzionalità di Babel Licensing hai a disposizione?”
- Claude dovrebbe elencare tutti gli 86 strumenti disponibili
Suggerimenti per l’uso di Claude Code:
-
Richieste che tengono conto del contesto: Claude Code vede il file corrente e l’area di lavoro, quindi puoi chiedere:
- “In base a questo codice, crea una licenza per questo cliente”
- “Genera una chiamata di attivazione della licenza per il prodotto in questo file”
-
Generazione di codice: chiedi a Claude di generare codice che usa l’API di Babel Licensing:
- “Scrivi un metodo C# che attivi una licenza con questi parametri”
- “Crea uno script Python che interroghi tutte le licenze attive”
-
Assistenza inline: seleziona del codice e chiedi a Claude:
- “Controlla se questa chiave di licenza è valida”
- “Trova il cliente associato a questa chiave utente”
-
Operazioni su più file: Claude può aiutarti a coordinare la gestione delle licenze tra più file:
- “Aggiorna le chiavi di licenza in tutti i file di configurazione”
- “Trova tutte le chiavi di licenza scritte direttamente nel codice di questo progetto”
Risoluzione dei problemi di Claude Code:
Se il server MCP non si connette:
- Controlla lo stato dell’estensione: assicurati che l’estensione Claude Code sia attiva
- Verifica il percorso di Python: controlla che il percorso dell’ambiente virtuale sia corretto
- Controlla i log: visualizza l’output di Claude Code nel pannello Output di VS Code
- Ricarica la finestra: usa “Developer: Reload Window” dopo le modifiche alla configurazione
- Controlla i permessi: assicurati che l’eseguibile di Python abbia i permessi di esecuzione
Configurazione di più ambienti:
Puoi configurare ambienti Babel Licensing diversi:
{
"claude.mcpServers": {
"babel-licensing-prod": {
"command": "/path/to/venv/bin/python",
"args": ["/path/to/src/server.py"],
"env": {
"BABEL_API_BASE_URL": "https://licensing.production.com",
"BABEL_API_KEY": "${env:BABEL_PROD_KEY}"
}
},
"babel-licensing-dev": {
"command": "/path/to/venv/bin/python",
"args": ["/path/to/src/server.py"],
"env": {
"BABEL_API_BASE_URL": "https://licensing.dev.com",
"BABEL_API_KEY": "${env:BABEL_DEV_KEY}"
}
}
}
}In questo modo puoi passare dall’ambiente di produzione a quello di sviluppo mentre lavori con Claude.
Log
Il server registra automaticamente tutte le operazioni in file di log giornalieri nella cartella logs/:
- Posizione:
logs/babel_licensing_YYYYMMDD.log - Formato: voci con data e ora, livello e informazioni sul modulo
- Rotazione: crea automaticamente un nuovo file ogni giorno
- Output: i log vengono scritti sia su file sia sulla console
Esempio di file di log: logs/babel_licensing_20251111.log
2025-11-11 10:30:15 - server - INFO - MCP server starting...
2025-11-11 10:30:16 - server - INFO - Babel Licensing client initialized
2025-11-11 10:31:22 - server - INFO - Tool called: babel_get_customersStrumenti disponibili
Il server espone 86 strumenti organizzati nelle seguenti categorie:
Nota: l’autenticazione è gestita automaticamente tramite la chiave API o il token Bearer configurati nelle variabili d’ambiente. Gli strumenti di accesso interattivo non sono necessari.
Operazioni sulle licenze (7 strumenti)
babel_activate_license: attiva una licenzababel_deactivate_license: disattiva una licenzababel_request_license: richiede una licenzababel_release_license: rilascia una licenzababel_license_heartbeat: invia l’heartbeat della licenzababel_validate_license: convalida una licenzababel_get_license_info: ottiene le informazioni sulla licenza
Gestione
Chiavi API (4 strumenti)
babel_get_api_keys: elenca le chiavi APIbabel_insert_api_key: crea una nuova chiave APIbabel_update_api_key: aggiorna una chiave APIbabel_delete_api_key: elimina una chiave API
Utenti (7 strumenti)
babel_get_users: elenca gli utentibabel_insert_user: crea un utentebabel_update_user: aggiorna un utentebabel_delete_user: elimina un utentebabel_get_user_roles: ottiene i ruoli di un utentebabel_add_user_to_roles: aggiunge un utente ai ruolibabel_remove_user_from_roles: rimuove un utente dai ruoli
Clienti (7 strumenti)
babel_get_customers: elenca i clientibabel_insert_customer: crea un clientebabel_update_customer: aggiorna un clientebabel_delete_customer: elimina un clientebabel_get_customer_contacts: ottiene i contatti di un clientebabel_get_customer_orders: ottiene gli ordini di un clientebabel_get_customer_licenses: ottiene le licenze di un cliente
Prodotti (15 strumenti)
- Gestione dei prodotti (lettura, inserimento, aggiornamento, eliminazione)
- Gestione dei rilasci dei prodotti
- Gestione degli assembly dei rilasci
- Modelli di licenza dei rilasci
Ordini (9 strumenti)
- Gestione degli ordini (lettura, inserimento, aggiornamento, eliminazione)
- Gestione dei prodotti degli ordini
- Recupero delle licenze degli ordini
Licenze (9 strumenti)
- Gestione delle licenze (lettura, inserimento, aggiornamento, eliminazione)
- Gestione dei token di licenza
- Tracce delle licenze
- Modelli di licenza
Webhook (9 strumenti)
- Gestione delle sottoscrizioni webhook
- Recupero dei tipi di evento
- Test dei webhook
- Gestione degli eventi
Altri strumenti di gestione
- Assembly (4 strumenti)
- Contatti (4 strumenti)
- Risorse (4 strumenti)
- Report (3 strumenti)
- Log (3 strumenti)
- Impostazioni (2 strumenti)
- Email (2 strumenti)
- Informazioni sul server (1 strumento)
Lavorare con l’API
Formato dei dati per le operazioni di inserimento e aggiornamento
Quando usi gli strumenti che creano o aggiornano risorse (quelli il cui nome inizia con babel_insert_ o babel_update_), il client racchiude automaticamente i tuoi dati nel formato di richiesta previsto dall’API di Babel Licensing.
Devi fornire solo i dati grezzi: l’incapsulamento è gestito automaticamente.
Esempi
Creare un nuovo cliente:
// You provide:
{
"customer_data": {
"name": "Acme Corporation",
"email": "contact@acme.com"
}
}
// The client automatically wraps it as:
{
"customer": {
"name": "Acme Corporation",
"email": "contact@acme.com"
}
}Creare un nuovo utente:
// You provide:
{
"user_data": {
"userName": "johndoe",
"email": "john@example.com",
"password": "SecureP@ssw0rd"
}
}
// The client automatically wraps it as:
{
"user": {
"userName": "johndoe",
"email": "john@example.com"
},
"password": "SecureP@ssw0rd"
}Aggiornare una licenza:
// You provide:
{
"license_data": {
"id": 123,
"revoked": false,
"description": "Updated description"
}
}
// The client automatically wraps it as:
{
"license": {
"id": 123,
"revoked": false,
"description": "Updated description"
}
}Parametri di query
Molti endpoint GET supportano i seguenti parametri di query:
select: elenco separato da virgole dei nomi dei campi da includere nella rispostafilter: criteri di filtro con la sintassi .NET (vedi Sintassi dei filtri più avanti)include: elenco separato da virgole degli oggetti correlati da includere (vedi Parametro include più avanti)sort: nome del campo, con ‘asc’ o ‘desc’ facoltativitake: limite di paginazione (dimensione della pagina)skip: offset di paginazione
Parametro include
Il parametro include ti permette di recuperare gli oggetti correlati in un’unica richiesta.
Regole IMPORTANTI:
- Usa i nomi in PascalCase (con l’iniziale maiuscola):
Customer,Order,Product(NONcustomer,order,product) - DEVI aggiungere a select gli oggetti inclusi: indicali in entrambi i parametri
- Più oggetti: separali con una virgola, senza spazi
Esempi:
// Correct - Get licenses with customer and order objects
{
"params": {
"select": "id,licenseId,licenseType,createdAt,customerId,orderId,Customer,Order", // Include Customer,Order here
"include": "Customer,Order" // PascalCase, no spaces
}
}
// Wrong - lowercase names
{
"params": {
"select": "id,licenseId,customer,order", // L Lowercase
"include": "customer,order" // L Will fail
}
}
// Wrong - missing from select
{
"params": {
"select": "id,licenseId,licenseType", // L Missing Customer,Order
"include": "Customer,Order" // Objects won't be returned!
}
}Opzioni di include disponibili:
babel_get_licenses: Product, Order, Customer, Template, Licenseebabel_get_customers: Contacts, Orders, Licensesbabel_get_orders: Customer, Reseller, Products, Licensesbabel_get_products: Releases, Ordersbabel_get_users: Roles, Settings, Customerbabel_get_api_keys: Ownerbabel_get_all_license_tokens: License, NodeLockedLicensebabel_get_license_templates: Product
Sintassi dei filtri
L’API usa la sintassi dei filtri .NET, NON lo standard OData.
Operatori di confronto:
| Operatore | Descrizione | Esempio |
|---|---|---|
>= | Maggiore o uguale | createdAt >= "2025-11-11T00:00:00" |
<= | Minore o uguale | expireDate <= "2025-12-31T23:59:59" |
> | Maggiore | id > 100 |
< | Minore | id < 1000 |
== | Uguale | revoked == false |
!= | Diverso | status != "expired" |
Operatori logici:
| Operatore | Descrizione | Esempio |
|---|---|---|
&& | AND logico | revoked == false && expireDate >= "2025-01-01" |
|| | OR logico | status == "active" || status == "trial" |
! | Negazione (NOT) | !revoked o !licenseType.Contains("Trial") |
Funzioni per le stringhe:
| Funzione | Descrizione | Esempio |
|---|---|---|
Contains() | Verifica se la stringa contiene una sottostringa | licenseType.Contains("Ultimate") |
StartsWith() | Verifica se la stringa inizia con una sottostringa | userKey.StartsWith("ABC") |
EndsWith() | Verifica se la stringa termina con una sottostringa | licenseeEmail.EndsWith("@example.com") |
Esempi di filtri complessi:
# Active licenses of Ultimate type created after Nov 11
revoked == false && licenseType.Contains("Ultimate") && createdAt >= "2025-11-11T00:00:00"
# Exclude Enterprise licenses
!licenseType.Contains("Enterprise")
# User keys starting with ABC or XYZ
userKey.StartsWith("ABC") || userKey.StartsWith("XYZ")
# Expired licenses excluding trial
expireDate < "2025-01-01T00:00:00" && !licenseType.Contains("Trial")IMPORTANTE: NON usare la sintassi OData (eq, ne, gt, lt, and, or). Questi operatori non funzionano.
Parametro sort:
Il parametro sort accetta:
- Nome del campo con direzione:
createdAt desc(decrescente) - Nome del campo con direzione:
createdAt asc(crescente) - Solo il nome del campo:
createdAt(crescente per impostazione predefinita)
Esempio completo:
{
"params": {
"filter": "revoked == false && licenseType.Contains(\"Ultimate\") && expireDate >= \"2025-01-01T00:00:00\"",
"select": "id,licenseId,userKey,expireDate,licenseType",
"take": 10,
"skip": 0,
"sort": "createdAt desc"
}
}Esempi
Attivare una licenza
Chiedi a Claude:
“Attiva una licenza con chiave utente ABC-123-DEF, codice prodotto PROD001 e ID hardware HW-12345”
Claude userà lo strumento babel_activate_license:
{
"tool": "babel_activate_license",
"arguments": {
"license_data": {
"userKey": "ABC-123-DEF",
"productCode": "PROD001",
"hardwareId": "HW-12345"
}
}
}Ottenere i clienti
Chiedi a Claude:
“Mostrami i primi 10 clienti rivenditori, ordinati per nome dell’azienda”
Claude userà lo strumento babel_get_customers:
{
"tool": "babel_get_customers",
"arguments": {
"params": {
"filter": "isReseller == true",
"take": 10,
"sort": "company asc"
}
}
}Creare una sottoscrizione webhook
Chiedi a Claude:
“Crea una sottoscrizione webhook per gli eventi di attivazione e disattivazione delle licenze che punti a https://example.com/webhook ”
Claude userà lo strumento babel_create_webhook_subscription:
{
"tool": "babel_create_webhook_subscription",
"arguments": {
"subscription_data": {
"url": "https://example.com/webhook",
"events": ["license.activated", "license.deactivated"],
"isActive": true
}
}
}Esempio di query complessa
Chiedi a Claude:
“Mostrami tutte le licenze Ultimate create dopo l’11 novembre 2025 e non revocate, con i dettagli del cliente e dell’ordine, ordinate per data di creazione”
Claude costruirà una query come questa:
{
"tool": "babel_get_licenses",
"arguments": {
"params": {
"filter": "revoked == false && licenseType.Contains(\"Ultimate\") && createdAt >= \"2025-11-11T00:00:00\"",
"select": "id,licenseId,userKey,expireDate,licenseType,createdAt,Customer,Order",
"include": "Customer,Order",
"sort": "createdAt desc"
}
}
}Risoluzione dei problemi
Problemi di connessione
- Verifica che il valore di
BABEL_API_BASE_URLsia corretto - Assicurati che la chiave API o il token Bearer siano validi
- Controlla la connettività di rete verso il server di Babel Licensing
- Consulta i log del server nella cartella
logs/per i messaggi di errore dettagliati
Problemi con i certificati SSL
Se riscontri errori di verifica del certificato SSL (soprattutto con i certificati autofirmati):
- Imposta
BABEL_VERIFY_SSL=falsenel file.envo nella configurazione dell’ambiente - Per Claude Desktop, aggiungila alla sezione
env:{ "mcpServers": { "babel-licensing": { "command": "/path/to/venv/bin/python", "args": ["/path/to/src/server.py"], "env": { "BABEL_API_BASE_URL": "https://your-server.com", "BABEL_API_KEY": "your-key", "BABEL_VERIFY_SSL": "false" } } } }
Nota di sicurezza: disabilita la verifica SSL solo per i server interni attendibili con certificati autofirmati. Non disabilitarla mai per i sistemi di produzione o per le API pubbliche.
Errori di autenticazione
- Assicurati di usare UN SOLO metodo di autenticazione (chiave API OPPURE token Bearer)
- Verifica che le tue credenziali non siano scadute
- Controlla che la chiave API abbia i permessi necessari
Errori di esecuzione degli strumenti
- Controlla lo schema di input dello strumento che stai usando
- Assicurati di fornire tutti i parametri obbligatori
- Verifica che i tipi dei parametri corrispondano allo schema
- Esamina la risposta dell’API per i messaggi di errore specifici
Saturazione dei token con babel_get_logs
Lo strumento babel_get_logs può restituire quantità di dati molto grandi, soprattutto quando includi i campi exception e properties. Questo può saturare i token AI disponibili nella conversazione.
Indicazioni per la scelta dei campi:
exceptioneproperties: possono contenere quantità di dati molto grandi; evitali quando richiedi molti recordmessageTemplate: non è strettamente necessario, perché contiene solo il modello di formattazione; il contenuto informativo vero e proprio è inmessage- Campi consigliati:
id,message,level,timeStamp
Procedure consigliate:
-
Limita i campi in
select: evita di includereexception,propertiesemessageTemplatese non ti servono davvero# Good - excludes large/unnecessary fields { "params": { "select": "id,message,level,timeStamp", "take": 50 } } # Risky - includes large fields { "params": { "select": "id,message,level,timeStamp,exception,properties", "take": 50 # May saturate tokens } } -
Usa la paginazione con criterio: quando includi
exceptionoproperties, usa valori ditakepiccoli (10-20 record al massimo) -
Filtra prima di recuperare: usa il parametro
filterper ridurre il numero di record prima di recuperarli
Documentazione dell’API
Per informazioni dettagliate sugli endpoint, i parametri e le risposte dell’API di Babel Licensing, consulta il file di specifica OpenAPI babel-licensing-api.json incluso nel pacchetto del server MCP.
Assistenza
Per problemi o domande, scrivi a: support@babelfor.net
Risorse
- Documentazione del Model Context Protocol
- Claude Desktop
- Documentazione di Babel Licensing
- Riferimento API di Babel Licensing
Cronologia delle versioni
- 0.1.0 (versione iniziale)
- Implementazione completa di tutti gli endpoint dell’API di Babel Licensing
- Supporto dell’autenticazione, delle operazioni sulle licenze e delle funzioni di gestione
- Suite di test completa
- Documentazione completa