Reline
Pesquise e leia suas notas de reunião, transcrições e itens de ação, e crie notas.
Servidor MCP hospedado
npx add-mcp 'https://mcp.reline.so/mcp'Instala no Claude Code, Codex, Cursor e outros
Documentação
Crie com base nas suas próprias notas de reunião.
Três superfícies, uma credencial: uma API REST para notas e pastas, webhooks assinados para eventos de notas e itens de ação, e um servidor MCP com o qual suas ferramentas de IA podem conversar diretamente.
Autenticação
curl https://api.reline.so/api/zapier/me \
-H "Authorization: Bearer rlk_your_key_here"
# X-API-Key: rlk_your_key_here works too
O que uma chave pode acessar
Uma chave atua como o administrador que a criou, dentro daquele workspace. Cada leitura e escrita passa pelas mesmas verificações de permissão que essa pessoa tem no aplicativo, então uma chave nunca alcança uma nota privada que seu dono já não pudesse abrir.
Revogando uma chave
Revogar bloqueia a chave na próxima solicitação e exclui todas as assinaturas de webhook que ela criou, então os ouvintes param de receber eventos no mesmo instante. Não há janela de carência para esperar.
REST
Seis endpoints sobre notas e pastas.
As respostas são em JSON. Falhas retornam com status 4xx e um campo de erro descrevendo o que deu errado.
| Método | Endpoint | O que faz |
|---|---|---|
| GET | /api/zapier/me | Resolve a chave para um workspace e um usuário. Use para verificar uma credencial. |
| GET | /api/zapier/notes | Notas recentes que você pode ver, das mais novas para as mais antigas. Filtre para uma pasta com folderId. |
| POST | /api/zapier/notes | Cria uma nota, opcionalmente dentro de uma pasta que você pode editar. |
| GET | /api/zapier/folders | Pastas que você pode ver. Passe level=edit para as que você pode escrever. |
| POST | /api/zapier/subscribe | Registra uma assinatura de webhook para um evento, opcionalmente limitada a uma pasta. |
| DELETE | /api/zapier/subscribe | Remove uma assinatura pelo id retornado quando foi criada. |
curl -X POST https://api.reline.so/api/zapier/notes \
-H "Authorization: Bearer rlk_your_key_here" \
-H "Content-Type: application/json" \
-d '{"title":"Kickoff call","description":"Agenda + owners"}'
# 201 -> { "id": "...", "title": "Kickoff call", "url": "https://..." }
O objeto de nota
A mesma estrutura retorna do endpoint de notas e viaja dentro de cada payload de webhook, então um campo que você mapeia uma vez mapeia em todos os lugares. Campos de resumo e itens de ação acompanham os eventos que os carregam.
{
"id": "j57...",
"noteId": "j57...",
"title": "Kickoff call",
"url": "https://app.reline.so/acme/notes/j57...",
"folderId": "k21..." | null,
"folderName": "Clients" | null,
"isArchived": false,
"createdAt": 1788302403777,
"updatedAt": 1788302911204
}
Webhooks
Eventos
note.created
Uma nota foi criada, por uma pessoa, pelo calendário ou pela API.
note.summarized
Um resumo terminou de ser gerado. Editar um resumo depois não o dispara novamente.
note.archived
Uma nota foi movida para a lixeira. Apenas a nota agida diretamente, nunca uma cascata.
note.restored
Uma nota voltou da lixeira.
action_items.extracted
Itens de ação foram extraídos para uma nota, entregues como um lote único com a lista completa atual.
action_item.completed
Alguém marcou um item de ação como concluído.
A entrega
Três cabeçalhos viajam com o corpo: o nome do evento, um id de entrega único e a assinatura.
POST https://your-endpoint.example.com
X-Reline-Event: note.summarized
X-Reline-Delivery: 9f3c...
X-Reline-Signature: t=1788302403,v1=6b8a...
{
"id": "9f3c...",
"event": "note.summarized",
"occurredAt": 1788302403777,
"workspace": { "id": "w1...", "slug": "acme", "name": "Acme" },
"data": { "noteId": "j57...", "summary": "# Kickoff\n..." }
}
Verificando uma entrega
A assinatura é um HMAC-SHA256 sobre o timestamp e o corpo bruto, unidos por um ponto, com a chave do segredo de assinatura mostrado quando a assinatura foi criada. Calcule sobre os bytes que você recebeu, antes de qualquer parsing JSON, e compare em tempo constante.
import crypto from 'node:crypto'
// \`raw\` is the request body as received — verify BEFORE JSON.parse.
function verify(raw: string, header: string, secret: string): boolean {
const parts = Object.fromEntries(header.split(',').map((p) => p.split('=')))
const expected = crypto
.createHmac('sha256', secret)
.update(\`${parts.t}.${raw}\`)
.digest('hex')
if (typeof parts.v1 !== 'string' || parts.v1.length !== expected.length) return false
return crypto.timingSafeEqual(Buffer.from(expected), Buffer.from(parts.v1))
}
Quando um receptor falha
As entregas são repetidas, e uma assinatura que continua falhando é desligada automaticamente em vez de ser repetida para sempre. O último status e erro de cada hook é visível em Configurações.
MCP
Aponte uma ferramenta de IA para seu workspace.
O servidor fala o Model Context Protocol sobre HTTP, então funciona em claude.ai, ChatGPT, Claude Code, Cursor e qualquer outra coisa que suporte o protocolo. Entre com OAuth, ou envie a mesma chave de API do workspace como um token bearer.
claude mcp add --transport http reline https://mcp.reline.so/mcp
# or authenticate a plain HTTP client with the same workspace key:
# Authorization: Bearer rlk_your_key_here
Ferramentas que paginam retornam um cursor. Uma página curta não significa o fim; apenas um cursor nulo significa.
Leitura
- search
- fetch
- get_note
- get_transcript
- list_notes
- count_notes
- list_meetings
- list_recent_meetings
- list_folders
- list_people
- list_calendar_events
- list_action_items
- list_workspaces
- get_workspace_info
Escrita
- create_note
- append_to_note
- update_note
- create_folder
- complete_action_item
Limites
120 solicitações por minuto
Contadas por chave em uma janela fixa de um minuto. Exceder resulta em 429 até a janela rolar.
10 chaves ativas por workspace
Chaves revogadas não contam. Crie uma por integração para poder aposentá-las uma de cada vez.
Somente administradores
Criar e revogar chaves exige o papel de administrador. Membros podem usar uma integração construída sobre uma chave, mas não podem criar uma.
Uma chave por workspace
Uma chave nunca cruza para outro workspace. Trabalhar em vários significa uma chave para cada.
Construindo algo com isso?
Conte-nos o que você está conectando e o que está faltando. A superfície cresce onde as pessoas realmente pressionam.