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)
- Dans Claude, ouvrez Paramètres, Connecteurs et choisissez Ajouter un connecteur personnalisé.
- Collez
https://api.readsira.com/mcpet ajoutez-le. Claude ouvre Readsira dans votre navigateur. - 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.
- 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
- 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).
- Collez
https://api.readsira.com/mcpcomme URL du serveur et choisissez OAuth comme authentification. - ChatGPT ouvre Readsira : connectez-vous, vérifiez les autorisations et choisissez Autoriser.
- 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
| Outil | Portée | Ce qu'il fait |
|---|---|---|
search_library | read:library | Les passages les plus pertinents avec titre, URL, page PDF et horodatages média (query, limit 1-20) |
get_document | read:library | Le texte d'un document par pages (documentId, bookmarkId ou url ; offset, maxChars) ainsi que vos étiquettes, notes et surlignages |
list_projects | read:projects | Vos projets, les plus récemment actifs d'abord (status active ou archived, limit 1-50) |
get_project_context | read:projects | Les 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_bookmark | write:bookmarks | Enregistre 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_note | write:notes | Ajoute 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
| Plan | MCP keys | Tool calls per day | Calls per hour per key | Tools |
|---|---|---|---|---|
| Free | 1 | 100 | 60 | read tools |
| Pro | 10 | 10,000 | 600 | all |
| Research | 10 | 25,000 | 1,200 | all |
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 :
| Quoi | Valeur |
|---|---|
| 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 |
| Autorisation | GET /oauth/authorize, flux avec code et PKCE S256 uniquement (plain est refusé), state obligatoire |
| Jeton | POST /oauth/token : authorization_code, refresh_token |
| Révocation (7009) | POST /oauth/revoke |
| Portées | read:library (par défaut), read:projects, write:projects, write:bookmarks, write:notes |
- Un 401 de
/mcpporteWWW-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, ouhttpsur127.0.0.1,localhostou[::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.