Conector MCP
Visão geral
O Nibomo mantém um servidor MCP (Model Context Protocol) remoto para que clientes MCP e agentes de IA possam ler seus cartões pendentes, revisá-los com você uma pergunta de cada vez e criar ou editar cartões e baralhos para você.
Os agentes podem se conectar de duas formas: por este servidor MCP (melhor para clientes MCP como o Claude ou o Cursor) ou pela URL de descoberta da API de agentes, no caso de agentes de CLI. As duas chegam à mesma superfície de dados por usuário; esta página trata do servidor MCP.
Conecte-se a ele em:
https://mcp.nibomo.com/mcp
O transporte é Streamable HTTP, e o servidor expõe sete ferramentas: duas ferramentas SQL sobre uma superfície SQL pequena e limitada de propósito, uma lista de espaços de trabalho, um guia de referência e três ferramentas de revisão. É a mesma superfície de dados por usuário da referência da API; o servidor MCP é o caminho mais prático para chegar a ela a partir de clientes que falam MCP.
Como adicionar no seu cliente
A maioria dos clientes adiciona um servidor MCP remoto como conector personalizado:
- Abra as configurações de conectores ou de servidores MCP do seu cliente.
- Adicione um conector personalizado e cole a URL do servidor
https://mcp.nibomo.com/mcp. - Em clientes interativos, autorize no navegador quando for pedido. O servidor usa OAuth 2.1 com Dynamic Client Registration, então não há client secret para colar nem app para registrar antes.
- Para uso headless ou via CLI, defina o cabeçalho
Authorization: Bearer fca_…com a sua chave de API de agente, em vez do fluxo pelo navegador.
Depois de autorizar, chame list_workspaces uma vez para escolher um espaço de
trabalho e então use sql_query para leituras e sql_execute para escritas de
cartões e baralhos. Para revisar, chame next_review_card, depois
reveal_answer e depois submit_review.
Ferramentas
O servidor expõe sete ferramentas. Leituras e escritas são separadas de propósito, para que uma mesma ferramenta nunca misture operações seguras e destrutivas.
sql_query— acesso estritamente somente leitura aos seus cartões e baralhos (SHOW TABLES,DESCRIBE,SHOW COLUMNS,SELECT).sql_execute— acesso de escrita aos seus cartões e baralhos (INSERT,UPDATE,DELETE), como um lote atômico.list_workspaces— lista estritamente somente leitura dos espaços de trabalho a que você tem acesso, cada um com seuworkspaceId, nome, quantidade de cartões ativos, última atividade e se ele é o seu padrão selecionado no momento. Use umworkspaceIdretornado no argumento opcionalworkspaceIddas ferramentas de SQL e de revisão.get_guide— guia de referência estritamente somente leitura sobre um tópico:sql_dialect,card_authoring,bulk_authoringoureview_flow. Ele não lê dados do espaço de trabalho.next_review_card— estritamente somente leitura: retorna o próximo cartão a revisar, só a frente, na mesma ordem de fila dos apps. Os campos opcionaistagsoudeckIdrestringem a fila.reveal_answer— estritamente somente leitura: retorna o verso de um cartão depois que o estudante tentou responder a frente.submit_review— registra uma avaliaçãoAgain,Hard,GoodouEasye avança o agendamento FSRS do cartão.
A superfície SQL é um dialeto limitado de propósito e não é o PostgreSQL completo.
Esta documentação cobre apenas o dialeto suportado, e não serve como referência
de compatibilidade com o PostgreSQL. Os comandos só podem endereçar os recursos
workspace, cards, decks e review_events, todo comando fica restrito ao
seu próprio espaço de trabalho, e leituras e escritas têm teto de 100 linhas por comando.
Revisões
As ferramentas de revisão permitem que um agente teste o estudante um cartão de cada vez e salve cada avaliação no agendamento FSRS do cartão:
next_review_cardretorna umcardIde umfrontText, oucard: nullquando não há nada pendente.- Depois que o estudante responde,
reveal_answerretorna obackTextdaquele cartão. submit_reviewrecebe ocardId, um UUIDreviewIdgerado pelo cliente, umratinge oreviewedTimeZoneIANA do estudante. O servidor marca o horário da revisão e retorna o novo agendamento do cartão.
Repita um envio incerto com o mesmo reviewId; ele nunca registra uma segunda
revisão. Um envio também pode responder:
409 REVIEW_EVENT_CONFLICT— a revisão já tinha sido registrada, e os detalhes do erro trazem o agendamento atual do cartão.409 REVIEW_ID_CARD_MISMATCH— oreviewIdjá identifica a revisão de outro cartão, então nada foi gravado; envie de novo com umreviewIdnovo.409 REVIEW_STALE— o horário de revisão guardado do cartão é igual ou posterior ao horário atual do servidor; revise outro cartão.
As revisões são registradas apenas por submit_review: o SQL não grava
review_events nem o estado de agendamento do FSRS. Chame get_guide com o
tópico review_flow para ver as regras completas de revisão e avaliação.
Contrato do cartão
Todo cartão segue um contrato, e as ferramentas dependem dele:
front_texté apenas uma pergunta ou um enunciado de revisão e nunca contém a resposta.back_textcontém a resposta, opcionalmente com um exemplo concreto.
Os agentes que geram cartões por sql_execute seguem esse contrato, então os
cartões que eles criam já ficam prontos para revisão com repetição espaçada.
Autenticação
Dois caminhos de autorização chegam à mesma superfície de dados por usuário.
OAuth 2.1 (clientes de conector interativos)
O servidor implementa o fluxo de authorization code com PKCE e Dynamic Client Registration. Adicione a URL do MCP como conector personalizado e autorize no navegador; nenhum client secret é compartilhado antes. A descoberta é padrão:
- Metadados do recurso protegido:
https://mcp.nibomo.com/.well-known/oauth-protected-resource - Metadados do servidor de autorização:
https://auth.flashcards-open-source-app.com/.well-known/oauth-authorization-server
Chave de API (headless e CLI)
Obtenha uma chave de API de agente fca_ de longa duração pelo fluxo de login
por OTP no e-mail documentado na referência da API e envie-a como token Bearer:
Authorization: Bearer fca_ABCDEFGH_0123456789ABCDEFGHJKMNPQRS
É a mesma chave que a superfície REST de agentes aceita, e ela não precisa de navegador nem de ida e volta com OAuth.
A descrição canônica legível por máquina dos dois caminhos é o payload de
descoberta em https://api.flashcards-open-source-app.com/v1/ (espelhado em /v1/agent).
Segurança e escopo
As ferramentas SQL são seguras de aprovar porque a superfície é um dialeto contido e validado por parser, e não acesso livre ao banco de dados:
- Lista fechada de comandos permitidos:
sql_queryaceita apenasSHOW TABLES,DESCRIBE,SHOW COLUMNSeSELECT;sql_executeaceita apenasINSERT,UPDATEeDELETE. Qualquer outra coisa é rejeitada já na análise sintática. - Recursos limitados: os comandos só podem tocar
workspace,cards,decksereview_events. - Escopo por espaço de trabalho: todo comando SQL e toda revisão ficam
restritos a um espaço de trabalho ao qual você tem acesso, seja o
workspaceIdque você passa, seja o seu padrão selecionado, sem acesso entre tenants. - Argumentos estritos: toda ferramenta rejeita argumentos desconhecidos, então
um
workspaceIdescrito errado falha em vez de rodar contra o seu espaço de trabalho padrão. - Limites: até
100linhas por comando, até50comandos por lote e um teto de resultado de cerca de12ktokens. Lotes de alteração são aplicados de forma atômica. - Divisão entre leitura e escrita:
sql_query,list_workspaces,get_guide,next_review_cardereveal_answersão estritamente somente leitura (readOnlyHint) e nunca consertam dados, recalculam o agendamento ou mudam o estado de um cartão.sql_executeesubmit_reviewsão as únicas ferramentas de escrita (destructiveHint):sql_executegrava cartões e baralhos, esubmit_reviewregistra uma revisão e avança o agendamento do cartão.
Toda a stack — app, backend e infraestrutura — é open source e pode ser auto-hospedada, então você pode rodar o mesmo conector contra a sua própria implantação.