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.

https://api.reline.so

MétodoEndpointO que faz
GET/api/zapier/meResolve a chave para um workspace e um usuário. Use para verificar uma credencial.
GET/api/zapier/notesNotas recentes que você pode ver, das mais novas para as mais antigas. Filtre para uma pasta com folderId.
POST/api/zapier/notesCria uma nota, opcionalmente dentro de uma pasta que você pode editar.
GET/api/zapier/foldersPastas que você pode ver. Passe level=edit para as que você pode escrever.
POST/api/zapier/subscribeRegistra uma assinatura de webhook para um evento, opcionalmente limitada a uma pasta.
DELETE/api/zapier/subscribeRemove 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.

https://mcp.reline.so/mcp

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.

Entre em contato