Conectar un cliente MCP
Disponible enFreeProResearch
Readsira ejecuta un servidor del Model Context Protocol, para que los asistentes puedan buscar y leer tu biblioteca mientras trabajas. El asistente trae su propio modelo: Readsira solo devuelve pasajes y documentos, con un enlace de vuelta a cada fuente.
- URL del servidor:
https://api.readsira.com/mcp - Transporte: Streamable HTTP, sin estado (no hay sesión que mantener)
- Autenticación: iniciar sesión con Readsira (OAuth) para Claude y ChatGPT, o una clave MCP
enviada como
Authorization: Bearer pk_...para Claude Code, Cursor y otros clientes que aceptan una cabecera. Ambas llegan a las mismas herramientas, permisos y límites.
Claude (web y escritorio)
- En Claude, abre Settings, Connectors y elige Add custom connector.
- Pega
https://api.readsira.com/mcpy añádelo. Claude abre Readsira en tu navegador. - Inicia sesión si te lo piden. La pantalla de consentimiento muestra con palabras sencillas lo que pide Claude; desmarca lo que no quieras (para buscar nunca hace falta escribir) y elige Permitir.
- Pídele a Claude que "busque en mi biblioteca de Readsira almacenamiento de iones de sodio".
No se pega ninguna clave. La conexión aparece en API y MCP dentro de Configuración, en la lista Apps conectadas.
ChatGPT
- En ChatGPT, abre Settings, Apps and connectors y crea un conector (el modo de desarrollador debe estar activado para los conectores personalizados).
- Pega
https://api.readsira.com/mcpcomo URL del servidor y elige OAuth como autenticación. - ChatGPT abre Readsira: inicia sesión, revisa los permisos y elige Permitir.
- Activa el conector en un chat y pídele que busque en tu biblioteca.
Los nombres de los menús de Claude y ChatGPT cambian de vez en cuando; la URL del servidor y la pantalla de consentimiento de Readsira se mantienen.
Clientes con cabecera: crear una clave MCP
En la aplicación, abre Configuración, elige API y MCP y selecciona Crear clave MCP.
La clave por defecto solo puede leer (mcp + read:library). Añade read:projects para usar tus
proyectos. Añade write:bookmarks o write:notes solo si quieres que el asistente guarde enlaces o añada
notas, y solo si revisas lo que hace: el texto de las páginas web puede intentar manipular a un asistente.
Copia la clave ahora; se muestra una sola vez.
Añadir el servidor a tu cliente
Claude Code
claude mcp add --transport http readsira https://api.readsira.com/mcp \
--header "Authorization: Bearer pk_your_key"
Después escribe /mcp en una sesión de Claude Code: readsira aparece como conectado. Pregunta "busca en
mi biblioteca de Readsira almacenamiento de iones de sodio". Este comando se prueba contra el servidor de
Readsira antes de cada versión (claude mcp list lo muestra como conectado).
Cursor
Añade esto a .cursor/mcp.json en tu proyecto, o a los ajustes MCP globales de Cursor:
{
"mcpServers": {
"readsira": {
"url": "https://api.readsira.com/mcp",
"headers": { "Authorization": "Bearer pk_your_key" }
}
}
}
Otros clientes que aceptan una cabecera
Cualquier cliente que admita servidores MCP remotos por Streamable HTTP con cabeceras personalizadas
funciona con la misma URL y la misma cabecera Authorization.
Clientes que solo inician sesión
Un cliente que admita la especificación de autorización de MCP (OAuth 2.1 con registro dinámico de clientes) solo necesita la URL del servidor: descubre el inicio de sesión de Readsira a partir del servidor, como hacen Claude y ChatGPT.
Herramientas
| Herramienta | Permiso | Qué hace |
|---|---|---|
search_library | read:library | Los pasajes que mejor coinciden, con título, URL, página de PDF y marcas de tiempo de medios (query, limit 1-20) |
get_document | read:library | El texto de un documento por páginas (documentId, bookmarkId o url; offset, maxChars) más tus etiquetas, notas y resaltados |
list_projects | read:projects | Tus proyectos, los de actividad más reciente primero (status active o archived, limit 1-50) |
get_project_context | read:projects | Las instrucciones de un proyecto, decisiones tomadas, notas fijadas y fuentes; con query, los mejores pasajes del proyecto (maxChars hasta 32 000) |
add_bookmark | write:bookmarks | Guarda una URL; guardar una que ya tienes devuelve created: false y solo añade etiquetas. Con projectId (necesita también write:projects), la añade además a ese proyecto |
create_note | write:notes | Añade una nota a uno de tus elementos guardados (bookmarkId), o añade una nota a un proyecto (projectId, title opcional; necesita write:projects); pasa a ser buscable |
Las herramientas que los permisos de tu clave no permiten no aparecen en la lista. get_project_context
da al asistente las instrucciones del proyecto para que pueda seguirlas mientras trabaja para ti en ese
proyecto. Cuando el contexto es más largo que maxChars, se dejan fuera primero las fuentes, después los
pasajes, las notas y las decisiones, y el resultado dice truncated: true.
Los errores de las herramientas vuelven como resultados de herramienta con isError: true y un código:
SCOPE_REQUIRED, NOT_FOUND, RATE_LIMITED (con retryAfterSeconds), PLAN_REQUIRED,
VALIDATION_FAILED, URL_REJECTED y, para las escrituras en proyectos, PROJECT_LIMIT_REACHED (los
elementos por proyecto del plan) o PROJECT_ARCHIVED. Si la búsqueda con IA está en pausa durante el día,
search_library sigue respondiendo con coincidencia de texto y dice degraded: "lexical".
Límites
| 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 |
Los días son UTC. Enumerar herramientas no cuenta; leer un documento largo cuenta una llamada por cada 12 000 caracteres y las escrituras cuentan dos. Todos los límites de los planes: Límites de los planes.
Revocar y revisar
Apps conectadas en API y MCP dentro de Configuración enumera cada aplicación que permitiste con sus permisos, cuándo se conectó y cuándo usó por última vez tu biblioteca. Desconectar la detiene al instante (su siguiente llamada se rechaza); para volver a usarla, conéctala de nuevo desde la aplicación. Recibes un aviso en la aplicación cada vez que una aplicación se conecta, para que una conexión inesperada sea visible.
La misma página enumera cada clave con su último uso y su cliente, y una tabla Actividad con cada llamada a una herramienta (hora, herramienta, estado, cliente, número de resultados). Readsira nunca registra ahí el texto de tus búsquedas ni de tus notas. Revocar detiene una clave al instante. La primera vez que se usa una clave recibes un aviso en la aplicación que nombra el cliente, para que un uso inesperado sea visible.
Para desarrolladores de clientes: detalles de OAuth
Readsira es su propio servidor de autorización, según la especificación de autorización de MCP:
| Qué | Valor |
|---|---|
| Metadatos del recurso protegido (RFC 9728) | https://api.readsira.com/.well-known/oauth-protected-resource/mcp |
| Metadatos del servidor de autorización (8414) | https://api.readsira.com/.well-known/oauth-authorization-server |
| Registro dinámico de clientes (7591) | POST /oauth/register; clientes públicos (none) o client_secret_post / _basic |
| Autorización | GET /oauth/authorize, flujo de código con PKCE S256 solamente (plain se rechaza), state obligatorio |
| Token | POST /oauth/token: authorization_code, refresh_token |
| Revocación (7009) | POST /oauth/revoke |
| Permisos | read:library (por defecto), read:projects, write:projects, write:bookmarks, write:notes |
- Un 401 de
/mcpllevaWWW-Authenticate: Bearer resource_metadata="...", para que los clientes puedan empezar el descubrimiento desde la URL del servidor. - Las URI de redirección deben estar registradas y se comparan exactamente:
https, ohttpen127.0.0.1,localhosto[::1]para aplicaciones nativas. - La respuesta de autorización lleva
iss(RFC 9207). Los códigos duran 60 segundos y sirven una sola vez. - Los tokens de acceso duran una hora. Los tokens de actualización rotan en cada uso; presentar de nuevo un token de actualización ya usado revoca toda la conexión.
- Los tokens son solo para el servidor MCP; la API REST usa claves de API.
- El registro tiene un límite de frecuencia por dirección IP, y los clientes registrados que no se usan durante 30 días se eliminan.