Einen MCP-Client verbinden
Verfügbar inFreeProResearch
Readsira betreibt einen Model-Context-Protocol-Server, damit Assistenten deine Bibliothek durchsuchen und lesen können, während du arbeitest. Der Assistent bringt sein eigenes Modell mit: Readsira liefert nur Passagen und Dokumente, mit einem Link zurück zu jeder Quelle.
- Server-URL:
https://api.readsira.com/mcp - Transport: Streamable HTTP, zustandslos (keine Sitzung, die du aufrechterhalten musst)
- Authentifizierung: Mit Readsira anmelden (OAuth) für Claude und ChatGPT oder ein MCP-Schlüssel,
gesendet als
Authorization: Bearer pk_..., für Claude Code, Cursor und andere Clients, die einen Header akzeptieren. Beide erreichen dieselben Tools, Scopes und Limits.
Claude (Web und Desktop)
- Öffne in Claude Einstellungen, Konnektoren (Settings, Connectors) und wähle Benutzerdefinierten Konnektor hinzufügen (Add custom connector).
- Füge
https://api.readsira.com/mcpein und füge ihn hinzu. Claude öffnet Readsira in deinem Browser. - Melde dich an, falls du gefragt wirst. Der Zustimmungsbildschirm zeigt in einfachen Worten, was Claude anfragt; entferne den Haken bei allem, was du nicht möchtest (Schreiben wird für die Suche nie gebraucht), und wähle dann Erlauben.
- Bitte Claude: „Durchsuche meine Readsira-Bibliothek nach Natrium-Ionen-Speichern“.
Es wird kein Schlüssel eingefügt. Die Verbindung erscheint unter API und MCP in Einstellungen, in der Liste Verbundene Apps.
ChatGPT
- Öffne in ChatGPT Einstellungen, Apps und Konnektoren (Settings, Apps and connectors) und erstelle einen Konnektor (für benutzerdefinierte Konnektoren muss der Entwicklermodus aktiviert sein).
- Füge
https://api.readsira.com/mcpals Server-URL ein und wähle OAuth als Authentifizierung. - ChatGPT öffnet Readsira: Melde dich an, prüfe die Berechtigungen und wähle Erlauben.
- Aktiviere den Konnektor in einem Chat und bitte ihn, deine Bibliothek zu durchsuchen.
Die Menünamen in Claude und ChatGPT ändern sich von Zeit zu Zeit; die Server-URL und der Zustimmungsbildschirm von Readsira bleiben gleich.
Clients mit Header: einen MCP-Schlüssel erstellen
Öffne in der App Einstellungen, wähle API und MCP und wähle MCP-Schlüssel erstellen.
Der Standardschlüssel kann nur lesen (mcp + read:library). Füge read:projects hinzu, um deine
Projekte zu nutzen. Füge write:bookmarks oder write:notes nur hinzu, wenn der Assistent Links
speichern oder Notizen hinzufügen soll, und nur, wenn du prüfst, was er tut: Text auf Webseiten kann
versuchen, einen Assistenten zu steuern. Kopiere den Schlüssel jetzt; er wird einmal angezeigt.
Den Server zu deinem Client hinzufügen
Claude Code
claude mcp add --transport http readsira https://api.readsira.com/mcp \
--header "Authorization: Bearer pk_your_key"
Tippe dann /mcp in eine Claude-Code-Sitzung: readsira erscheint als verbunden. Frage „Durchsuche
meine Readsira-Bibliothek nach Natrium-Ionen-Speichern“. Dieser Befehl wird vor jedem Release gegen den
Readsira-Server getestet (claude mcp list meldet ihn als verbunden).
Cursor
Füge Folgendes in .cursor/mcp.json in deinem Projekt oder in die globalen MCP-Einstellungen von Cursor
ein:
{
"mcpServers": {
"readsira": {
"url": "https://api.readsira.com/mcp",
"headers": { "Authorization": "Bearer pk_your_key" }
}
}
}
Andere Clients, die einen Header akzeptieren
Jeder Client, der Remote-MCP-Server über Streamable HTTP mit eigenen Headern unterstützt, funktioniert
mit derselben URL und demselben Authorization-Header.
Clients, die sich nur anmelden
Ein Client, der die MCP-Autorisierungsspezifikation unterstützt (OAuth 2.1 mit dynamischer Client-Registrierung), braucht nur die Server-URL: Er entdeckt die Anmeldung von Readsira über den Server, wie Claude und ChatGPT es tun.
Tools
| Tool | Scope | Was es tut |
|---|---|---|
search_library | read:library | Die am besten passenden Passagen mit Titel, URL, PDF-Seite und Medien-Zeitstempeln (query, limit 1-20) |
get_document | read:library | Den Text eines Dokuments seitenweise (documentId, bookmarkId oder url; offset, maxChars) plus deine Tags, Notizen und Markierungen |
list_projects | read:projects | Deine Projekte, zuletzt aktive zuerst (status active oder archived, limit 1-50) |
get_project_context | read:projects | Die Anweisungen eines Projekts, getroffene Entscheidungen, angeheftete Notizen und Quellen; mit query die besten Passagen aus dem Projekt (maxChars bis 32.000) |
add_bookmark | write:bookmarks | Eine URL speichern; wenn du sie schon hast, liefert es created: false und fügt nur Tags hinzu. Mit projectId (braucht auch write:projects) fügt es sie außerdem diesem Projekt hinzu |
create_note | write:notes | Eine Notiz an einen deiner gespeicherten Einträge anhängen (bookmarkId) oder eine Notiz zu einem Projekt hinzufügen (projectId, optional title; braucht write:projects); sie wird durchsuchbar |
Tools, die die Scopes deines Schlüssels nicht erlauben, werden nicht aufgelistet.
get_project_context gibt dem Assistenten die Anweisungen des Projekts, damit er sie befolgen kann,
während er in diesem Projekt für dich arbeitet. Ist der Kontext länger als maxChars, werden zuerst
Quellen weggelassen, dann Passagen, Notizen und Entscheidungen, und das Ergebnis meldet
truncated: true.
Tool-Fehler kommen als Tool-Ergebnisse mit isError: true und einem Code zurück: SCOPE_REQUIRED,
NOT_FOUND, RATE_LIMITED (mit retryAfterSeconds), PLAN_REQUIRED, VALIDATION_FAILED,
URL_REJECTED und bei Projekt-Schreibzugriffen PROJECT_LIMIT_REACHED (die Einträge pro Projekt des
Tarifs) oder PROJECT_ARCHIVED. Wenn die KI-Suche für den Tag pausiert ist, antwortet search_library
weiterhin mit Textabgleich und meldet degraded: "lexical".
Limits
| 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 |
Tage sind UTC. Das Auflisten von Tools zählt nicht; das Lesen eines langen Dokuments zählt einen Aufruf pro 12.000 Zeichen, Schreibzugriffe zählen zwei. Alle Tariflimits: Tariflimits.
Widerrufen und prüfen
Verbundene Apps unter API und MCP in Einstellungen listet jede App auf, der du Zugriff erlaubt hast, mit ihren Berechtigungen, dem Zeitpunkt der Verbindung und der letzten Nutzung deiner Bibliothek. Trennen stoppt sie sofort (ihr nächster Aufruf wird abgelehnt); um sie wieder zu nutzen, verbinde sie erneut aus der App. Bei jeder Verbindung einer App bekommst du einen Hinweis in der App, sodass eine unerwartete Verbindung sichtbar wird.
Dieselbe Seite listet jeden Schlüssel mit letzter Nutzung und Client auf, dazu eine Tabelle Aktivität mit jedem Tool-Aufruf (Zeit, Tool, Status, Client, Anzahl der Ergebnisse). Readsira zeichnet dort nie deinen Suchtext oder Notiztext auf. Widerrufen stoppt einen Schlüssel sofort. Beim ersten Gebrauch eines Schlüssels bekommst du einen Hinweis in der App, der den Client nennt, sodass eine unerwartete Nutzung sichtbar wird.
Für Client-Entwickler: OAuth-Details
Readsira ist sein eigener Autorisierungsserver und folgt der MCP-Autorisierungsspezifikation:
| Was | Wert |
|---|---|
| Protected resource metadata (RFC 9728) | https://api.readsira.com/.well-known/oauth-protected-resource/mcp |
| Authorization server metadata (8414) | https://api.readsira.com/.well-known/oauth-authorization-server |
| Dynamic client registration (7591) | POST /oauth/register; public clients (none) or client_secret_post / _basic |
| Authorization | GET /oauth/authorize, code flow with PKCE S256 only (plain is refused), state required |
| Token | POST /oauth/token: authorization_code, refresh_token |
| Revocation (7009) | POST /oauth/revoke |
| Scopes | read:library (default), read:projects, write:projects, write:bookmarks, write:notes |
- Ein 401 von
/mcpträgtWWW-Authenticate: Bearer resource_metadata="...", sodass Clients die Erkennung von der Server-URL aus starten können. - Redirect-URIs müssen registriert sein und werden exakt verglichen:
https, oderhttpauf127.0.0.1,localhostoder[::1]für native Apps. - Die Autorisierungsantwort trägt
iss(RFC 9207). Codes leben 60 Sekunden und funktionieren einmal. - Access-Tokens leben eine Stunde. Refresh-Tokens rotieren bei jeder Nutzung; wer ein bereits benutztes Refresh-Token erneut vorlegt, widerruft die gesamte Verbindung.
- Tokens gelten nur für den MCP-Server; die REST-API nimmt API-Schlüssel.
- Die Registrierung ist pro IP-Adresse ratenbegrenzt, und registrierte Clients, die 30 Tage nicht genutzt werden, werden entfernt.