ORANO MCP Server

Servidor MCP personal y de solo lectura que expone la biblioteca ORANO del usuario (proyectos, tareas, investigaciones, hojas de ruta, hechos de memoria) como herramientas para su propio agente de IA.

Documentación

Servidor ORANO MCP

Un servidor MCP (Protocolo de Contexto de Modelo) personal y de solo lectura que permite que el agente de IA propio de un usuario (ChatGPT, Claude, Cursor, Ollama) lea su biblioteca ORANO como contexto fundamentado.

Nota: Este repositorio público contiene documentación, el manifiesto del servidor MCP y una implementación de referencia. El servidor MCP de producción se ejecuta como un endpoint autenticado montado en /mcp en el backend de ORANO (FastAPI + Postgres + pgvector). Consulta https://oranoai.com/mcp para ver el endpoint en vivo y el flujo de autenticación.

¿Qué es ORANO?

ORANO convierte Reels, TikToks, YouTube Shorts y material de referencia guardados en proyectos estructurados: resumen, conclusiones clave, tareas ordenadas, contexto de investigación y una hoja de ruta de aprendizaje. Disponible en la App Store de iOS (listado en App Store).

Un servidor MCP personal y de solo lectura para que el agente de IA propio de un usuario pueda leer ese contexto es el diferenciador.

Herramientas MCP expuestas

El servidor MCP de ORANO expone las siguientes herramientas:

HerramientaDescripción
list_projectsLista los proyectos del usuario con filtros de estado opcionales (active, completed, skipped, archived).
get_projectDevuelve la comprensión estructurada completa de un solo proyecto + resumen + tareas + recursos + investigación + hoja de ruta.
get_project_contextDevuelve solo los campos de contexto solicitados (summary, overview, caption, transcript, visual_context, links, tasks, roadmap, source o raw_source) en salida estructurada, Markdown o texto.
search_libraryBusca en los proyectos del usuario por título, resumen, título de fuente o URL.
read_memory_factsDevuelve hechos de memoria seleccionados (preferencias, habilidades, objetivos) con señales de confianza y frescura.
get_pending_handoffsRecupera proyectos enviados explícitamente desde la aplicación ORANO a un agente objetivo. Cada entrega se reconoce una vez al leerla para que las consultas concurrentes no se dupliquen.

Autenticación

  • Mecanismo: Clave API personal Bearer, alcance orano:read.
  • Sin OAuth. Solo creación manual de claves (según landing/mcp-access.html).
  • Presupuesto por usuario: 240 llamadas por 60 minutos.
  • Máximo de claves activas por usuario: 10.

Manifiesto del servidor MCP (server.json)

El manifiesto canónico del servidor MCP sigue el https://modelcontextprotocol.io/docs/concepts/architecture#server-discovery:

{
  "$schema": "https://static.modelcontextprotocol.io/schemas/server.json",
  "name": "io.github.infotik/orano-mcp-server",
  "displayName": "ORANO",
  "description": "Personal, read-only MCP server that exposes the user's ORANO library (projects, tasks, research, roadmaps, memory facts) as tools for their own AI agent.",
  "version": "0.1.0",
  "repository": {
    "type": "git",
    "url": "https://github.com/infotik/orano-mcp-server"
  },
  "homepage": "https://oranoai.com/mcp",
  "categories": [
    "knowledge-management",
    "personal-assistant",
    "productivity",
    "second-brain"
  ],
  "tools": [
    { "name": "list_projects", "description": "List the user's ORANO projects with optional status filters." },
    { "name": "get_project", "description": "Return a single project's full structured understanding." },
    { "name": "get_project_context", "description": "Return only the requested context fields (summary, overview, transcript, visual_context, links, tasks, roadmap, source, raw_source)." },
    { "name": "search_library", "description": "Search the user's projects by title, summary, source title, or URL." },
    { "name": "read_memory_facts", "description": "Return curated memory facts with confidence and freshness signals." },
    { "name": "get_pending_handoffs", "description": "Retrieve acknowledged-once projects explicitly sent from the ORANO app to a target agent." }
  ],
  "transports": [
    { "type": "http", "endpoint": "https://api.oranoai.com/mcp/" }
  ],
  "authentication": {
    "type": "bearer",
    "scope": "orano:read",
    "user_specific": true,
    "rate_limit": "240 calls / 60 minutes / user"
  }
}

Implementación de referencia (Python)

El servidor de producción se ejecuta como parte del backend de ORANO (FastAPI + SQLAlchemy + pgvector). El patrón de implementación de referencia es:

from mcp.server.fastmcp import FastMCP
from mcp.server.auth.settings import AuthSettings
from mcp.server.auth.provider import AccessToken

mcp = FastMCP(
    name="orano",
    auth=AuthSettings(issuer_url="https://api.oranoai.com", required_scopes=["orano:read"]),
)

@mcp.tool()
async def list_projects(status: str | None = None) -> list[dict]:
    """List the user's ORANO projects."""
    ...

@mcp.tool()
async def get_project(project_id: str, fields: list[str] | None = None) -> dict:
    """Return a single project's full structured understanding."""
    ...

# ... plus get_project_context, search_library, read_memory_facts,
# get_pending_handoffs

El servidor de producción completo (787 líneas + 290 líneas de ayudantes de autenticación/negociación) vive en ExecutionOSBackend/app/mcp_server.py y es parte del repositorio privado del backend de ORANO. Abrir el código de producción completo requiere extraer los modelos SQLAlchemy + servicios de ingesta en un paquete público, lo cual está en la hoja de ruta del producto pero aún no está completo.

Cómo usar

Usuarios finales:

  1. Instala la aplicación iOS de ORANO desde la App Store.
  2. Inicia sesión, guarda al menos un Reel/TikTok/YouTube Short para generar tu primer proyecto.
  3. Abre Configuración → Acceso MCP → Crear nueva clave (alcance orano:read).
  4. Conecta tu agente de IA (ChatGPT, Claude, Cursor, Ollama) a tu endpoint MCP personal con la clave como token Bearer.

Privacidad y confianza

  • El servidor MCP es de solo lectura. No escribe en proyectos, fuentes, tareas, memoria o datos de cuenta.
  • La única mutación de estado es get_pending_handoffs reconociendo una entrega encolada activada por la aplicación al establecer su marca de tiempo de entrega.
  • No se promete acceso de escritura para agentes; no existe un flujo OAuth de un clic.

Licencia

MIT — consulta LICENCIA.

Enlaces