Gilbert
Recherchez vos réunions Gilbert, explorez vos dossiers et consultez les transcriptions et résumés avec votre assistant IA.
Hosted MCP Server
npx add-mcp 'https://gilbert-assistant.ovh/api/mcp'Installs into Claude Code, Codex, Cursor and more
Documentation
Quickstart
Premier appel en 30 secondes.
Obtenez une clé API (scope meetings:read) auprès de votre administrateur Gilbert, puis choisissez votre langage.
cURL · terminal.sh
# Lister les 50 dernières réunions terminées
curl -s "https://gilbert-assistant.ovh/api/v1/meetings?status=completed&per_page=50" \
-H "Authorization: Bearer glbrt_live_XXXXXXXXXXXXXXXXXXXXXXXX"
Python · example.py
import requests
API_KEY = "glbrt_live_XXXXXXXXXXXXXXXXXXXXXXXX"
headers = {"Authorization": f"Bearer {API_KEY}"}
r = requests.get(
"https://gilbert-assistant.ovh/api/v1/meetings",
headers=headers,
params={"status": "completed", "per_page": 50},
)
for m in r.json()["data"]:
print(m["title"], m.get("transcript_text", "")[:200])
JavaScript / Node · example.mjs
const API_KEY = "glbrt_live_XXXXXXXXXXXXXXXXXXXXXXXX";
const headers = { Authorization: \`Bearer ${API_KEY}\` };
const res = await fetch(
"https://gilbert-assistant.ovh/api/v1/meetings?status=completed",
{ headers },
);
const { data } = await res.json();
data.forEach(m => console.log(m.title));
PHP · example.php
$apiKey = "glbrt_live_XXXXXXXXXXXXXXXXXXXXXXXX";
$ch = curl_init("https://gilbert-assistant.ovh/api/v1/meetings");
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ["Authorization: Bearer {$apiKey}"],
]);
$response = json_decode(curl_exec($ch), true);
foreach ($response["data"] as $m) {
echo $m["title"] . "\n";
}
Go · main.go
package main
import (
"encoding/json"
"net/http"
)
func main() {
req, _ := http.NewRequest("GET",
"https://gilbert-assistant.ovh/api/v1/meetings", nil)
req.Header.Set("Authorization", "Bearer glbrt_live_...")
res, _ := http.DefaultClient.Do(req)
var data map[string]interface{}
json.NewDecoder(res.Body).Decode(&data)
}
Pas de SDK officiel? Normal. L'API suit strictement OpenAPI 3. Des outils comme Stainless ou openapi-generator génèrent un SDK Python, TypeScript, Go, Java, Swift… en 5 minutes depuis notre spec.
Pas besoin d'être développeur pour commencer. Zapier ou Make connectent Gilbert à Slack, Notion ou votre CRM en glisser-déposer — l'API est là quand vous voulez aller plus loin.
API REST v1
Le cœur de la plateforme.
Une API REST standard, documentée via OpenAPI 3. Authentification par clé API Bearer, réponses JSON, pagination, filtres, rate limiting par tier. Toute l'app Gilbert (web & mobile) utilise cette API.
URL de base
Un seul endpoint racine — toutes les requêtes partent de cette URL:
base_url
https://gilbert-assistant.ovh/api/v1
Authentification
Header Authorization Bearer — chaque requête porte votre clé API:
Authorization
Authorization: Bearer glbrt_live_XXXX
Niveaux d'accès — scopes
Chaque clé API est émise avec un ou plusieurs scopes (permissions). Les endpoints vérifient le scope avant d'accepter la requête — une clé meetings:read ne peut pas supprimer de réunions, même si l'utilisateur est admin.
| Scope | Ce que ça permet | Tier requis |
|---|---|---|
meetings:read | Lire réunions, transcriptions, synthèses. Rechercher. | Free+ |
meetings:write | Éditer titre, description, dossier, noms des locuteurs. | Pro+ |
meetings:upload | Uploader un fichier audio pour transcription depuis l'API. | Pro+ |
meetings:delete | Supprimer des réunions. | Enterprise |
webhooks:manage | Créer, modifier, supprimer des webhooks. | Free+ (quota par tier) |
admin:read | Lecture des métadonnées de l'organisation (membres, quotas). | Enterprise |
Endpoints principaux
Liste non exhaustive. Pour la référence complète (paramètres, schémas de réponse, codes d'erreur), consultez la documentation OpenAPI interactive.
Réunions
Gestion des enregistrements et métadonnées.
| Endpoint | Description | Scope requis |
|---|---|---|
GET /meetings | Liste paginée avec filtres (status, date, dossier). | meetings:read |
GET /meetings/{id} | Détail complet d'une réunion. | meetings:read |
POST /meetings/upload | Upload un fichier audio (mp3/m4a/wav/webm) pour transcription. | meetings:upload |
PATCH /meetings/{id} | Édite titre, description, dossier, tags. | meetings:write |
PUT /meetings/{id}/speakers | Renomme les locuteurs (Speaker 1 → Jean Dupont). | meetings:write |
DELETE /meetings/{id} | Supprime définitivement une réunion. | meetings:delete |
Contenu
Transcriptions, synthèses, recherche.
| Endpoint | Description | Scope requis |
|---|---|---|
GET /meetings/{id}/transcript | Transcription texte seule, formatée avec locuteurs préfixés. | meetings:read |
GET /meetings/{id}/summary | Synthèse markdown structurée (décisions, action items, participants). | meetings:read |
GET /search | Recherche full-text avec snippets highlighted (PostgreSQL FTS). | meetings:read |
Organisation
Dossiers, partages, membres.
| Endpoint | Description | Scope requis |
|---|---|---|
GET /folders | Liste vos dossiers et ceux partagés avec vous. | meetings:read |
POST /meetings/{id}/share | Partage une réunion avec un autre membre. | meetings:write |
GET /organization/members | Liste des membres de l'organisation (admin uniquement). | admin:read |
Webhooks
Notifications temps réel.
| Endpoint | Description | Scope requis |
|---|---|---|
GET /webhooks | Liste vos webhooks actifs. | webhooks:manage |
POST /webhooks | Crée un webhook (URL + événements + secret). | webhooks:manage |
DELETE /webhooks/{id} | Supprime un webhook. | webhooks:manage |
Liste exhaustive et schémas JSON: la documentation OpenAPI liste tous les endpoints, paramètres de requête, exemples de réponse et codes d'erreur. Vous pouvez tester directement depuis le navigateur (bouton « Try it out »).
Webhooks
Le push temps réel.
À l'inverse de l'API REST où vous allez chercher les données, un webhook vous les pousse dès qu'un événement survient. Idéal pour déclencher Slack, Zapier, ou votre SI interne sans polling.
Comment ça marche
Vous fournissez à Gilbert une URL https://votre-app.fr/webhooks/gilbert et choisissez les événements à écouter. Dès qu'un événement survient, Gilbert envoie un POST JSON à votre URL.
meeting.completed— transcription prêtemeeting.failed— erreur de transcriptionmeeting.updated— édition manuelleshare.received— réunion partagée avec vous
Sécurité
Chaque POST est signé avec HMAC-SHA256. Le secret est généré à la création du webhook et affiché une seule fois. Vérifiez la signature via le header X-Gilbert-Signature.
- Retry automatique avec backoff (5s, 30s, 2 min, 10 min)
- Désactivation après 10 échecs consécutifs
- Logs des livraisons visibles dans l'admin
Exemple de payload — meeting.completed · POST
{
"event": "meeting.completed",
"timestamp": "2026-04-19T14:32:10Z",
"data": {
"meeting_id": "mtg_01H...",
"title": "Point commercial Acme",
"duration_seconds": 1847,
"participants_count": 4,
"transcript_available": true,
"summary_available": true,
"url": "https://gilbert-assistant.ovh/meetings/mtg_01H..."
}
}
Connecteurs IA
Model Context Protocol (MCP).
Au-dessus de l'API REST, Gilbert expose un serveur Model Context Protocol qui rend vos réunions interrogeables en langage naturel depuis Claude, ChatGPT (bientôt), Cursor et Continue. Trois manières de vous y connecter, selon votre client IA.
Utilisateur final
Gilbert Connect
Connecteur OAuth 1-clic pour claude.ai. Aucune clé à gérer, consent UI natif.
Développeur IA
MCP Hosted (HTTP)
Endpoint distant JSON-RPC 2.0 avec clé API Bearer. Claude Desktop, Cursor, Continue.
Installation locale
gilbert-mcp (stdio)
Package npm publié sur le registre MCP. Exécution locale via npx.
Gilbert Connect — OAuth 1-clic
Gilbert Connect
Pour les utilisateurs de claude.ai
URL du connecteur MCP à coller dans claude.ai:
URL
https://gilbert-assistant.ovh/api/mcp
Claude.ai détecte le flow OAuth via /.well-known/oauth-protected-resource. L'utilisateur se connecte à Gilbert via une fenêtre pop-up, autorise, et c'est fini — aucune clé à copier-coller.
Futurs connecteurs prévus
ChatGPT custom GPT · Cursor native auth · Continue MCP. Même endpoint OAuth pour tous.
- claude.ai → Paramètres → Connectors → Add custom connector
- Collez l'URL
https://gilbert-assistant.ovh/api/mcp - Autorisez l'accès. Une clé API OAuth MCP apparaît dans votre admin.
- Posez vos questions — les tools apparaissent dans la conversation.
MCP Hosted — endpoint HTTP
MCP Hosted
Pour les clients MCP HTTP
Endpoint:
URL
https://gilbert-assistant.ovh/api/mcp
Envoyez directement vos requêtes JSON-RPC. Aucun process local, pas de Node.
- → Claude Desktop (config « url »)
- → Cursor / Continue (HTTP transport)
- → MCP Inspector (debug officiel)
- → curl / fetch / httpx
claude_desktop_config.json
{
"mcpServers": {
"gilbert": {
"url": "https://gilbert-assistant.ovh/api/mcp",
"headers": {
"Authorization": "Bearer glbrt_live_VOTRE_CLE"
}
}
}
}
gilbert-mcp — package npm local
gilbert-mcp
Installation locale stdio
npm · gilbert-mcp GitHub MCP Registry MIT · v1.0.2
Le binaire gilbert-mcp est un serveur MCP stdio, pas une CLI. Il est spawné par le client IA (Claude, Cursor) et communique via stdin/stdout en JSON-RPC.
Package npm uniquement. pip install gilbert-mcp ne marche pas. Les devs Python utilisent directement l'API REST v1.
claude_desktop_config.json
{
"mcpServers": {
"gilbert": {
"command": "npx",
"args": ["-y", "gilbert-mcp"],
"env": {
"GILBERT_API_KEY": "glbrt_live_VOTRE_CLE"
}
}
}
}
Les 5 tools exposés
- → list_meetings · get_meeting · get_transcript
- → get_summary · search_meetings
Tarifs API
Tiers et quotas.
Chaque clé API est rattachée à un tier qui détermine ses quotas et les fonctionnalités accessibles.
| Fonctionnalité | Free | Pro | Enterprise |
|---|---|---|---|
| Requêtes / minute | 30 | 60 | 300 |
| Requêtes / jour | 1 000 | 5 000 | 50 000 |
| Lecture meetings / transcripts / summaries | ✓ | ✓ | ✓ |
| Recherche full-text | ✓ | ✓ | ✓ |
| Connecteurs MCP (Connect / Hosted / Local) | ✓ | ✓ | ✓ |
| Webhooks | 1 max | 5 max | Illimité |
| Upload audio via API | — | 600 min/jour · 500 MB/fichier | 10 000 min/jour · 2 GB/fichier |
| Édition (titre, dossier, locuteurs) | — | ✓ | ✓ |
| Suppression de réunions | — | — | ✓ |
| SLA & support prioritaire | — | — | ✓ |