Gilbert

Pesquise suas reuniões Gilbert, explore seus arquivos e consulte as transcrições e resumos com seu assistente de IA.

Servidor MCP hospedado

npx add-mcp 'https://gilbert-assistant.ovh/api/mcp'

Instala no Claude Code, Codex, Cursor e outros

Documentação

Quickstart

Primeiro chamado em 30 segundos.

Obtenha uma chave de API (escopo meetings:read) com seu administrador Gilbert e escolha sua linguagem.

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)
}

Sem SDK oficial? Normal. A API segue estritamente OpenAPI 3. Ferramentas como Stainless ou openapi-generator geram um SDK Python, TypeScript, Go, Java, Swift… em 5 minutos a partir da nossa spec.

Não precisa ser desenvolvedor para começar. Zapier ou Make conectam o Gilbert ao Slack, Notion ou seu CRM com arrastar e soltar — a API está lá quando você quiser ir mais longe.

API REST v1

O coração da plataforma.

Uma API REST padrão, documentada via OpenAPI 3. Autenticação por chave de API Bearer, respostas JSON, paginação, filtros, rate limiting por tier. Todo o app Gilbert (web & mobile) usa essa API.

URL base

Um único endpoint raiz — todas as requisições partem dessa URL:

base_url

https://gilbert-assistant.ovh/api/v1

Autenticação

Header Authorization Bearer — cada requisição carrega sua chave de API:

Authorization

Authorization: Bearer glbrt_live_XXXX

Níveis de acesso — scopes

Cada chave de API é emitida com um ou mais scopes (permissões). Os endpoints verificam o scope antes de aceitar a requisição — uma chave meetings:read não pode excluir reuniões, mesmo que o usuário seja admin.

ScopeO que permiteTier necessário
meetings:readLer reuniões, transcrições, resumos. Pesquisar.Free+
meetings:writeEditar título, descrição, pasta, nomes dos participantes.Pro+
meetings:uploadEnviar um arquivo de áudio para transcrição pela API.Pro+
meetings:deleteExcluir reuniões.Enterprise
webhooks:manageCriar, modificar, excluir webhooks.Free+ (quota por tier)
admin:readLeitura dos metadados da organização (membros, quotas).Enterprise

Endpoints principais

Lista não exaustiva. Para a referência completa (parâmetros, esquemas de resposta, códigos de erro), consulte a documentação OpenAPI interativa.

Reuniões

Gerenciamento de gravações e metadados.

EndpointDescriçãoScope necessário
GET /meetingsLista paginada com filtros (status, data, pasta).meetings:read
GET /meetings/{id}Detalhe completo de uma reunião.meetings:read
POST /meetings/uploadEnvia um arquivo de áudio (mp3/m4a/wav/webm) para transcrição.meetings:upload
PATCH /meetings/{id}Edita título, descrição, pasta, tags.meetings:write
PUT /meetings/{id}/speakersRenomeia os participantes (Speaker 1 → João Silva).meetings:write
DELETE /meetings/{id}Exclui definitivamente uma reunião.meetings:delete

Conteúdo

Transcrições, resumos, pesquisa.

EndpointDescriçãoScope necessário
GET /meetings/{id}/transcriptTranscrição somente texto, formatada com participantes prefixados.meetings:read
GET /meetings/{id}/summaryResumo markdown estruturado (decisões, itens de ação, participantes).meetings:read
GET /searchPesquisa full-text com trechos destacados (PostgreSQL FTS).meetings:read

Organização

Pastas, compartilhamentos, membros.

EndpointDescriçãoScope necessário
GET /foldersLista suas pastas e as compartilhadas com você.meetings:read
POST /meetings/{id}/shareCompartilha uma reunião com outro membro.meetings:write
GET /organization/membersLista dos membros da organização (somente admin).admin:read

Webhooks

Notificações em tempo real.

EndpointDescriçãoScope necessário
GET /webhooksLista seus webhooks ativos.webhooks:manage
POST /webhooksCria um webhook (URL + eventos + secret).webhooks:manage
DELETE /webhooks/{id}Exclui um webhook.webhooks:manage

Lista exaustiva e esquemas JSON: a documentação OpenAPI lista todos os endpoints, parâmetros de requisição, exemplos de resposta e códigos de erro. Você pode testar diretamente pelo navegador (botão « Try it out »).

Webhooks

O push em tempo real.

Ao contrário da API REST, onde você vai buscar os dados, um webhook envia os dados para você assim que um evento ocorre. Ideal para acionar Slack, Zapier ou seu SI interno sem polling.

Como funciona

Você fornece ao Gilbert uma URL https://votre-app.fr/webhooks/gilbert e escolhe os eventos para escutar. Assim que um evento ocorre, o Gilbert envia um POST JSON para sua URL.

  • meeting.completed — transcrição pronta
  • meeting.failed — erro de transcrição
  • meeting.updated — edição manual
  • share.received — reunião compartilhada com você

Segurança

Cada POST é assinado com HMAC-SHA256. O secret é gerado na criação do webhook e exibido uma única vez. Verifique a assinatura via o header X-Gilbert-Signature.

  • Retry automático com backoff (5s, 30s, 2 min, 10 min)
  • Desativação após 10 falhas consecutivas
  • Logs das entregas visíveis no admin

Exemplo 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..."
  }
}

Conectores de IA

Model Context Protocol (MCP).

Acima da API REST, o Gilbert expõe um servidor Model Context Protocol que torna suas reuniões consultáveis em linguagem natural a partir do Claude, ChatGPT (em breve), Cursor e Continue. Três maneiras de se conectar, dependendo do seu cliente de IA.

Usuário final

Gilbert Connect

Conector OAuth 1-clique para claude.ai. Nenhuma chave para gerenciar, consentimento com UI nativa.

Desenvolvedor de IA

MCP Hosted (HTTP)

Endpoint remoto JSON-RPC 2.0 com chave de API Bearer. Claude Desktop, Cursor, Continue.

Instalação local

gilbert-mcp (stdio)

Pacote npm publicado no registro MCP. Execução local via npx.

Gilbert Connect — OAuth 1-clique

Gilbert Connect

Para usuários do claude.ai

URL do conector MCP para colar no claude.ai:

URL

https://gilbert-assistant.ovh/api/mcp

O Claude.ai detecta o fluxo OAuth via /.well-known/oauth-protected-resource. O usuário se conecta ao Gilbert por uma janela pop-up, autoriza, e pronto — nenhuma chave para copiar e colar.

Futuros conectores planejados

ChatGPT custom GPT · Cursor native auth · Continue MCP. Mesmo endpoint OAuth para todos.

  1. claude.ai → Configurações → Connectors → Add custom connector
  2. Cole a URL https://gilbert-assistant.ovh/api/mcp
  3. Autorize o acesso. Uma chave de API OAuth MCP aparece no seu admin.
  4. Faça suas perguntas — as tools aparecem na conversa.

MCP Hosted — endpoint HTTP

MCP Hosted

Para clientes MCP HTTP

Endpoint:

URL

https://gilbert-assistant.ovh/api/mcp

Envie diretamente suas requisições JSON-RPC. Nenhum processo local, sem Node.

  • → Claude Desktop (config « url »)
  • → Cursor / Continue (transporte HTTP)
  • → MCP Inspector (debug oficial)
  • → 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 — pacote npm local

gilbert-mcp

Instalação local stdio

npm · gilbert-mcp GitHub MCP Registry MIT · v1.0.2

O binário gilbert-mcp é um servidor MCP stdio, não uma CLI. Ele é iniciado pelo cliente de IA (Claude, Cursor) e se comunica via stdin/stdout em JSON-RPC.

Somente pacote npm. pip install gilbert-mcp não funciona. Devs Python usam diretamente a API REST v1.

claude_desktop_config.json

{
  "mcpServers": {
    "gilbert": {
      "command": "npx",
      "args": ["-y", "gilbert-mcp"],
      "env": {
        "GILBERT_API_KEY": "glbrt_live_VOTRE_CLE"
      }
    }
  }
}

As 5 tools expostas

  • → list_meetings · get_meeting · get_transcript
  • → get_summary · search_meetings

Preços da API

Tiers e quotas.

Cada chave de API está vinculada a um tier que determina suas quotas e as funcionalidades acessíveis.

FuncionalidadeFreeProEnterprise
Requisições / minuto3060300
Requisições / dia1 0005 00050 000
Leitura de meetings / transcripts / summaries✓✓✓
Pesquisa full-text✓✓✓
Conectores MCP (Connect / Hosted / Local)✓✓✓
Webhooks1 máx5 máxIlimitado
Upload de áudio via API—600 min/dia · 500 MB/arquivo10 000 min/dia · 2 GB/arquivo
Edição (título, pasta, participantes)—✓✓
Exclusão de reuniões——✓
SLA & suporte prioritário——✓