Connecteur MCP
Vue d'ensemble
Nibomo exécute un serveur MCP (Model Context Protocol) distant pour que les clients MCP et les agents IA puissent lire vos cartes dues, les réviser avec vous une question à la fois, et créer ou modifier des cartes et des paquets pour vous.
Les agents peuvent se connecter de deux façons : via ce serveur MCP (idéal pour les clients MCP comme Claude ou Cursor), ou via l'URL de découverte de l'API agents pour les agents en ligne de commande. Les deux atteignent la même surface de données propre à l'utilisateur ; cette page couvre le serveur MCP.
Connectez-vous à cette adresse :
https://mcp.nibomo.com/mcp
Le transport est Streamable HTTP, et le serveur expose sept outils : deux outils SQL sur une surface SQL réduite et volontairement limitée, une liste des espaces de travail, un guide de référence et trois outils de révision. C'est la même surface de données propre à l'utilisateur que dans la référence de l'API ; le serveur MCP est la voie adaptée aux connecteurs pour l'atteindre depuis les clients qui parlent MCP.
Comment l'ajouter dans votre client
La plupart des clients ajoutent un serveur MCP distant comme connecteur personnalisé :
- Ouvrez les réglages de connecteurs ou de serveurs MCP de votre client.
- Ajoutez un connecteur personnalisé et collez l'URL du serveur
https://mcp.nibomo.com/mcp. - Pour les clients interactifs, autorisez l'accès dans le navigateur quand c'est demandé. Le serveur utilise OAuth 2.1 avec l'enregistrement dynamique de client : il n'y a donc aucun secret client à coller ni application à enregistrer au préalable.
- Pour un usage sans interface ou en ligne de commande, envoyez un en-tête
Authorization: Bearer fca_…avec votre clé API d'agent au lieu du flux navigateur.
Après l'autorisation, appelez list_workspaces une fois pour choisir un espace de
travail, puis utilisez sql_query pour les lectures et sql_execute pour écrire les
cartes et les paquets. Pour réviser, appelez next_review_card, puis reveal_answer,
puis submit_review.
Outils
Le serveur expose sept outils. Les lectures et les écritures sont séparées volontairement, pour qu'un même outil ne mélange jamais opérations sûres et destructrices.
sql_query— accès strictement en lecture seule à vos cartes et paquets (SHOW TABLES,DESCRIBE,SHOW COLUMNS,SELECT).sql_execute— accès en écriture à vos cartes et paquets (INSERT,UPDATE,DELETE) sous forme de lot atomique.list_workspaces— liste strictement en lecture seule des espaces de travail auxquels vous avez accès, chacun avec sonworkspaceId, son nom, son nombre de cartes actives, sa dernière activité et l'indication s'il s'agit de votre espace par défaut actuellement sélectionné. Utilisez unworkspaceIdrenvoyé pour l'argument facultatifworkspaceIddes outils SQL et de révision.get_guide— guide de référence strictement en lecture seule pour un sujet :sql_dialect,card_authoring,bulk_authoringoureview_flow. Il ne lit aucune donnée d'espace de travail.next_review_card— strictement en lecture seule : renvoie la prochaine carte à réviser, recto seulement, dans le même ordre de file que les applications. Les paramètres facultatifstagsoudeckIdrestreignent la file.reveal_answer— strictement en lecture seule : renvoie le verso d'une carte après que l'apprenant a répondu à son recto.submit_review— enregistre une noteAgain,Hard,GoodouEasyet fait avancer la planification FSRS de la carte.
La surface SQL est un dialecte volontairement limité et ne correspond pas à
PostgreSQL complet. Cette documentation ne couvre que le dialecte pris en charge,
pas une référence de compatibilité PostgreSQL. Les instructions ne peuvent adresser
que les ressources workspace, cards, decks et review_events, chaque
instruction est limitée à votre propre espace de travail, et les lectures comme les
écritures sont plafonnées à 100 lignes par instruction.
Révisions
Les outils de révision permettent à un agent d'interroger un apprenant une carte à la fois et d'enregistrer chaque note dans la planification FSRS de la carte :
next_review_cardrenvoie uncardIdet unfrontText, oucard: nullquand rien n'est dû.- Après la réponse de l'apprenant,
reveal_answerrenvoie lebackTextde cette carte. submit_reviewprend lecardId, un UUIDreviewIdgénéré par le client, unratinget lereviewedTimeZoneIANA de l'apprenant. Le serveur horodate la révision et renvoie la nouvelle planification de la carte.
Réessayez un envoi incertain avec le même reviewId ; il n'enregistre jamais une
deuxième révision. Un envoi peut aussi répondre :
409 REVIEW_EVENT_CONFLICT— la révision a déjà été enregistrée, et les détails de l'erreur contiennent la planification actuelle de la carte.409 REVIEW_ID_CARD_MISMATCH— lereviewIdidentifie déjà une révision d'une autre carte, donc rien n'a été enregistré ; renvoyez la révision avec un nouveaureviewId.409 REVIEW_STALE— l'heure de révision enregistrée pour la carte est égale ou postérieure à l'heure actuelle du serveur ; révisez une autre carte.
Les révisions ne sont enregistrées que par submit_review : SQL ne peut pas écrire
review_events ni l'état de planification FSRS. Appelez get_guide avec le sujet
review_flow pour les règles complètes de révision et de notation.
Contrat de carte
Chaque carte suit un même contrat, et les outils s'appuient dessus :
front_textest uniquement une question ou une invite de révision, et ne contient jamais la réponse.back_textcontient la réponse, éventuellement avec un exemple concret.
Les agents qui génèrent des cartes via sql_execute respectent ce contrat, donc les
cartes qu'ils créent sont immédiatement révisables en répétition espacée.
Authentification
Deux voies d'autorisation mènent à la même surface de données propre à l'utilisateur.
OAuth 2.1 (clients connecteurs interactifs)
Le serveur implémente le flux de code d'autorisation avec PKCE et enregistrement dynamique de client. Ajoutez l'URL MCP comme connecteur personnalisé et autorisez l'accès dans le navigateur ; aucun secret client n'est partagé à l'avance. La découverte est standard :
- Métadonnées de la ressource protégée :
https://mcp.nibomo.com/.well-known/oauth-protected-resource - Métadonnées du serveur d'autorisation :
https://auth.flashcards-open-source-app.com/.well-known/oauth-authorization-server
Clé API (sans interface et en ligne de commande)
Obtenez une clé API d'agent fca_ de longue durée via le flux de connexion par OTP
par e-mail documenté dans la référence de l'API, puis envoyez-la comme
jeton Bearer :
Authorization: Bearer fca_ABCDEFGH_0123456789ABCDEFGHJKMNPQRS
C'est la même clé que celle acceptée par la surface d'agent REST, et elle ne nécessite ni navigateur ni aller-retour OAuth.
La description canonique lisible par machine des deux voies est la charge utile de
découverte sur https://api.flashcards-open-source-app.com/v1/ (répliquée sur /v1/agent).
Sécurité et portée
Les outils SQL peuvent être approuvés sans risque, car la surface est un dialecte restreint, imposé par un analyseur syntaxique, plutôt qu'un accès arbitraire à la base de données :
- Liste blanche fermée d'instructions :
sql_queryn'accepte queSHOW TABLES,DESCRIBE,SHOW COLUMNSetSELECT;sql_executen'accepte queINSERT,UPDATEetDELETE. Tout le reste est rejeté dès l'analyse. - Ressources limitées : les instructions ne peuvent toucher que
workspace,cards,decksetreview_events. - Portée par espace de travail : chaque instruction SQL et chaque révision est
limitée à un espace de travail auquel vous avez accès, soit le
workspaceIdque vous passez, soit votre espace par défaut sélectionné, sans accès croisé entre comptes. - Arguments stricts : chaque outil rejette tout argument inconnu, donc un
workspaceIdmal orthographié échoue au lieu de s'exécuter sur votre espace de travail par défaut. - Plafonds : jusqu'à
100lignes par instruction, jusqu'à50instructions par lot, et une limite de résultat d'environ12ktokens. Les lots de modifications s'appliquent de façon atomique. - Séparation lecture/écriture :
sql_query,list_workspaces,get_guide,next_review_cardetreveal_answersont strictement en lecture seule (readOnlyHint) et ne réparent jamais de données, ne recalculent jamais la planification et ne modifient jamais l'état d'une carte.sql_executeetsubmit_reviewsont les seuls outils d'écriture (destructiveHint) :sql_executeécrit les cartes et les paquets, etsubmit_reviewenregistre une révision et fait avancer la planification de sa carte.
L'ensemble de la pile — application, backend et infrastructure — est open source et peut être auto-hébergée, donc vous pouvez faire fonctionner le même connecteur avec votre propre déploiement.