Aller au contenu principal

Connecter un client MCP

Disponible avecFreeProResearch

Readsira exécute un serveur Model Context Protocol, pour que des assistants puissent rechercher et lire votre bibliothèque pendant que vous travaillez. L'assistant apporte son propre modèle : Readsira ne renvoie que des passages et des documents, avec un lien vers chaque source.

  • URL du serveur : https://api.readsira.com/mcp
  • Transport : HTTP en flux continu (Streamable HTTP), sans état (aucune session à conserver)
  • Authentification : se connecter avec Readsira (OAuth) pour Claude et ChatGPT, ou une clé MCP envoyée sous la forme Authorization: Bearer pk_... pour Claude Code, Cursor et les autres clients qui acceptent un en-tête. Les deux donnent accès aux mêmes outils, portées et limites.

Claude (web et bureau)​

  1. Dans Claude, ouvrez Paramètres, Connecteurs et choisissez Ajouter un connecteur personnalisé.
  2. Collez https://api.readsira.com/mcp et ajoutez-le. Claude ouvre Readsira dans votre navigateur.
  3. Connectez-vous si on vous le demande. L'écran de consentement montre en termes simples ce que Claude demande ; décochez ce que vous ne voulez pas (l'écriture n'est jamais nécessaire pour la recherche), puis choisissez Autoriser.
  4. Demandez à Claude de « rechercher dans ma bibliothèque Readsira le stockage sodium-ion ».

Aucune clé n'est collée. La connexion apparaît sous API et MCP dans Paramètres, dans la liste Apps connectées.

ChatGPT​

  1. Dans ChatGPT, ouvrez Paramètres, Applications et connecteurs et créez un connecteur (le mode développeur doit être activé pour les connecteurs personnalisés).
  2. Collez https://api.readsira.com/mcp comme URL du serveur et choisissez OAuth comme authentification.
  3. ChatGPT ouvre Readsira : connectez-vous, vérifiez les autorisations et choisissez Autoriser.
  4. Activez le connecteur dans une conversation et demandez-lui de rechercher dans votre bibliothèque.

Les noms des menus de Claude et de ChatGPT changent de temps en temps ; l'URL du serveur et l'écran de consentement de Readsira restent les mêmes.

Clients avec un en-tête : créer une clé MCP​

Dans l'application, ouvrez Paramètres, choisissez API et MCP et sélectionnez Créer une clé MCP.

La clé par défaut ne peut que lire (mcp + read:library). Ajoutez read:projects pour utiliser vos projets. N'ajoutez write:bookmarks ou write:notes que si vous voulez que l'assistant enregistre des liens ou ajoute des notes, et seulement si vous vérifiez ce qu'il fait : le texte des pages web peut tenter d'orienter un assistant. Copiez la clé maintenant ; elle n'est affichée qu'une seule fois.

Ajouter le serveur à votre client​

Claude Code​

claude mcp add --transport http readsira https://api.readsira.com/mcp \
--header "Authorization: Bearer pk_your_key"

Tapez ensuite /mcp dans une session Claude Code : readsira apparaît comme connecté. Demandez « recherche dans ma bibliothèque Readsira le stockage sodium-ion ». Cette commande est testée sur le serveur Readsira avant chaque version (claude mcp list la signale comme connectée).

Cursor​

Ajoutez ceci à .cursor/mcp.json dans votre projet, ou aux paramètres MCP globaux de Cursor :

{
"mcpServers": {
"readsira": {
"url": "https://api.readsira.com/mcp",
"headers": { "Authorization": "Bearer pk_your_key" }
}
}
}

Autres clients qui acceptent un en-tête​

Tout client qui prend en charge les serveurs MCP distants en Streamable HTTP avec des en-têtes personnalisés fonctionne avec la même URL et le même en-tête Authorization.

Clients qui ne gèrent que la connexion​

Un client qui prend en charge la spécification d'autorisation MCP (OAuth 2.1 avec enregistrement dynamique du client) n'a besoin que de l'URL du serveur : il découvre la connexion de Readsira à partir du serveur, comme le font Claude et ChatGPT.

Outils​

OutilPortéeCe qu'il fait
search_libraryread:libraryLes passages les plus pertinents avec titre, URL, page PDF et horodatages média (query, limit 1-20)
get_documentread:libraryLe texte d'un document par pages (documentId, bookmarkId ou url ; offset, maxChars) ainsi que vos étiquettes, notes et surlignages
list_projectsread:projectsVos projets, les plus récemment actifs d'abord (status active ou archived, limit 1-50)
get_project_contextread:projectsLes instructions d'un projet, les décisions prises, les notes épinglées et les sources ; avec query, les meilleurs passages du projet (maxChars jusqu'à 32 000)
add_bookmarkwrite:bookmarksEnregistre une URL ; en enregistrer une que vous avez déjà renvoie created: false et n'ajoute que des étiquettes. Avec projectId (nécessite aussi write:projects), l'ajoute aussi à ce projet
create_notewrite:notesAjoute une note à l'un de vos éléments enregistrés (bookmarkId), ou ajoute une note à un projet (projectId, title facultatif ; nécessite write:projects) ; elle devient consultable

Les outils que les portées de votre clé n'autorisent pas ne sont pas listés. get_project_context donne à l'assistant les instructions du projet pour qu'il les suive pendant qu'il travaille pour vous dans ce projet. Quand le contexte dépasse maxChars, les sources sont écartées en premier, puis les passages, les notes et les décisions, et le résultat indique truncated: true.

Les erreurs d'outil reviennent sous forme de résultats d'outil avec isError: true et un code : SCOPE_REQUIRED, NOT_FOUND, RATE_LIMITED (avec retryAfterSeconds), PLAN_REQUIRED, VALIDATION_FAILED, URL_REJECTED, et pour les écritures de projet PROJECT_LIMIT_REACHED (les éléments par projet de l'offre) ou PROJECT_ARCHIVED. Si la recherche par IA est en pause pour la journée, search_library répond quand même par correspondance de texte et indique degraded: "lexical".

Limites​

PlanMCP keysTool calls per dayCalls per hour per keyTools
Free110060read tools
Pro1010,000600all
Research1025,0001,200all

Les jours sont en UTC. Lister les outils ne compte pas ; lire un long document compte un appel par tranche de 12 000 caractères, les écritures en comptent deux. Toutes les limites des offres : Limites des offres.

Révoquer et vérifier​

Apps connectées sous API et MCP dans Paramètres liste chaque application que vous avez autorisée avec ses autorisations, le moment de sa connexion et celui de sa dernière utilisation de votre bibliothèque. Déconnecter l'arrête immédiatement (son prochain appel est refusé) ; pour l'utiliser de nouveau, reconnectez-la depuis l'application. Vous recevez un avis dans l'application chaque fois qu'une application se connecte, afin qu'une connexion inattendue soit visible.

La même page liste chaque clé avec sa dernière utilisation et son client, ainsi qu'un tableau Activité de chaque appel d'outil (heure, outil, statut, client, nombre de résultats). Readsira n'y enregistre jamais le texte de vos recherches ni celui de vos notes. Révoquer arrête une clé immédiatement. La première fois qu'une clé est utilisée, vous recevez un avis dans l'application qui nomme le client, afin qu'une utilisation inattendue soit visible.

Pour les développeurs de clients : détails OAuth​

Readsira est son propre serveur d'autorisation, conformément à la spécification d'autorisation MCP :

QuoiValeur
Métadonnées de la ressource protégée (RFC 9728)https://api.readsira.com/.well-known/oauth-protected-resource/mcp
Métadonnées du serveur d'autorisation (8414)https://api.readsira.com/.well-known/oauth-authorization-server
Enregistrement dynamique du client (7591)POST /oauth/register ; clients publics (none) ou client_secret_post / _basic
AutorisationGET /oauth/authorize, flux avec code et PKCE S256 uniquement (plain est refusé), state obligatoire
JetonPOST /oauth/token : authorization_code, refresh_token
Révocation (7009)POST /oauth/revoke
Portéesread:library (par défaut), read:projects, write:projects, write:bookmarks, write:notes
  • Un 401 de /mcp porte WWW-Authenticate: Bearer resource_metadata="...", pour que les clients puissent démarrer la découverte à partir de l'URL du serveur.
  • Les URI de redirection doivent être enregistrées et sont comparées exactement : https, ou http sur 127.0.0.1, localhost ou [::1] pour les applications natives.
  • La réponse d'autorisation porte iss (RFC 9207). Les codes vivent 60 secondes et ne fonctionnent qu'une fois.
  • Les jetons d'accès vivent une heure. Les jetons d'actualisation tournent à chaque utilisation ; présenter de nouveau un jeton d'actualisation déjà utilisé révoque toute la connexion.
  • Les jetons ne valent que pour le serveur MCP ; l'API REST accepte des clés d'API.
  • L'enregistrement est limité en débit par adresse IP, et les clients enregistrés qui ne sont pas utilisés pendant 30 jours sont supprimés.