{
  "version": "1.0",
  "protocolVersion": "2025-06-18",
  "serverInfo": {
    "name": "orano",
    "title": "ORANO MCP",
    "version": "3"
  },
  "description": "Your saved videos, posts and links, analyzed. An agent can save a link, wait for ORANO's analysis (transcript, frames, key points, resources), read and search the library, run research, plan tasks and ask Ori. Read and write over one personal key.",
  "documentationUrl": "https://oranoai.com/mcp/docs",
  "transport": {
    "type": "streamable-http",
    "endpoint": "https://orano-ai-backend-1037939693300.asia-southeast1.run.app/mcp/"
  },
  "capabilities": {
    "tools": {
      "listChanged": false
    }
  },
  "authentication": {
    "required": true,
    "schemes": [
      "bearer"
    ],
    "signup": "https://oranoai.com/mcp/docs#agent-signup"
  },
  "tools": [
    {
      "name": "get_pending_handoffs",
      "title": "Get saves the user sent you",
      "description": "Retrieve projects sent from the ORANO app to this MCP agent."
    },
    {
      "name": "create_video_upload",
      "title": "Start a video upload",
      "description": "Step 1 of analyzing a local video file (one not online): get an upload URL."
    },
    {
      "name": "finish_video_upload",
      "title": "Finish a video upload",
      "description": "Step 2 of analyzing a local video: start the analysis of the uploaded file."
    },
    {
      "name": "get_processing_status",
      "title": "Check processing status",
      "description": "Check whether saves have finished analyzing (cheap; fine to poll every few seconds)."
    },
    {
      "name": "retry_save",
      "title": "Retry a failed save",
      "description": "Run a failed save's analysis again (no need to save the link again)."
    },
    {
      "name": "save_link",
      "title": "Save a link",
      "description": "Save a link to the user's ORANO library and have ORANO analyze it."
    },
    {
      "name": "save_text",
      "title": "Save text",
      "description": "Save a piece of text (notes, a copied post, a transcript) for ORANO to analyze."
    },
    {
      "name": "get_collection",
      "title": "Get a collection's saves",
      "description": "List the saves in one collection (custom uuid or \"category:<key>\"), newest first, as compact cards. Pass next_cursor back as cursor for the next page."
    },
    {
      "name": "get_project",
      "title": "Get a save's full analysis",
      "description": "Get complete agent-ready detail for one project."
    },
    {
      "name": "get_project_context",
      "title": "Get selected evidence from a save",
      "description": "Return only the requested evidence for one saved project."
    },
    {
      "name": "get_shelf",
      "title": "Get a shelf",
      "description": "One shelf's contents. Item shelves (books, watch, games, tools, wishlist, listen, places) list each named thing once with its status (none/want/active/ done), rating, links and the saves that mention it; update_saved_item changes status or rating by item id. Project shelves (recipes, workouts, routines, dates) list the saves themselves; dates come upcoming-first."
    },
    {
      "name": "list_collections",
      "title": "List collections",
      "description": "List the user's collections: their own (kind \"custom\") and the automatic category ones (kind \"generated\", id \"category:<key>\"), with member counts and ids."
    },
    {
      "name": "list_library_groups",
      "title": "List topic groups",
      "description": "Topic groups ORANO builds from the user's own saves (e.g. \"Cooking\", \"AI agents\"), with counts. include_members adds each group's project ids. Filter list_projects by group_id to read one group's saves."
    },
    {
      "name": "list_projects",
      "title": "List saves",
      "description": "List the user's saved projects (saves), most recently updated first."
    },
    {
      "name": "list_shelves",
      "title": "List shelves",
      "description": "Counts for the library's shelves: things the saves mention, grouped by kind."
    },
    {
      "name": "search_library",
      "title": "Search the library",
      "description": "Search the user's saved projects by meaning, topic, tool or title."
    },
    {
      "name": "add_to_collection",
      "title": "Add saves to a collection",
      "description": "Add saves (1-100 project ids) to one of the user's own collections. Saves already in it are left as they are."
    },
    {
      "name": "create_collection",
      "title": "Create a collection",
      "description": "Create a named collection (up to 80 characters), optionally with saves in it."
    },
    {
      "name": "delete_project",
      "title": "Delete a save",
      "description": "Permanently delete a save with its analysis, tasks, research and chat."
    },
    {
      "name": "move_project_to_group",
      "title": "Move a save into a topic group",
      "description": "Put a save in a topic group by hand; automatic regrouping never moves it again."
    },
    {
      "name": "remove_project_from_group",
      "title": "Remove a save from a topic group",
      "description": "\"Not this group\": take a save out of a topic group and never put it back there."
    },
    {
      "name": "rename_library_group",
      "title": "Rename a topic group",
      "description": "Rename one of the user's topic groups (1-40 characters). ORANO keeps the user's name from then on."
    },
    {
      "name": "set_project_view",
      "title": "Change a save's screen type",
      "description": "Correct which specialised view a save gets (the app's \"Wrong type?\")."
    },
    {
      "name": "update_project",
      "title": "Update a save",
      "description": "Change a save's status (active, completed, skipped, archived), title or priority. Only the fields you pass change; clear_priority=true removes the priority. Marking it completed records the time and notifies the user's webhooks."
    },
    {
      "name": "update_saved_item",
      "title": "Update a shelf item",
      "description": "Set a shelf item's status (none, want, active, done: e.g. a book to read, a film watched) and/or its 1-5 rating. item_id comes from get_shelf or from a save's details. Applies to the same item in every save that mentions it."
    },
    {
      "name": "create_personal_task",
      "title": "Add a personal task",
      "description": "Add a task to the user's to-do list (shows in the app's Today/Week views)."
    },
    {
      "name": "delete_personal_task",
      "title": "Delete a personal task",
      "description": "Delete one of the user's personal tasks for good. To keep it as done, use update_personal_task(completed=true) instead."
    },
    {
      "name": "generate_tasks",
      "title": "Generate a task plan",
      "description": "(Re)write a save's step-by-step task plan from its analysis (4-7 concrete steps, in the user's language). A new plan REPLACES the save's existing tasks, including their done states. Takes ~10-20 s. ORANO already plans how-to saves automatically; use this to plan a save that has none or to start over."
    },
    {
      "name": "list_personal_tasks",
      "title": "List personal tasks",
      "description": "The user's personal to-do list for a date range (default today; at most 92 days). Unfinished tasks from past days roll over to today, as in the app. Each task has its date, optional time and reminder, priority, subtasks and the save it came from."
    },
    {
      "name": "suggest_tasks",
      "title": "Suggest next tasks",
      "description": "A few concrete next actions picked from the user's saves and habits (the app's \"Suggestions\"). Creates nothing: add the ones the user wants with create_personal_task. Cached for the day; a fresh set is limited to 6/hour."
    },
    {
      "name": "update_personal_task",
      "title": "Update a personal task",
      "description": "Change a personal task: mark it done (completed=true) or not, rename it, move it to another day, set a time/reminder/priority, or replace its subtasks. Only the fields you pass change; list fields in clear to remove them."
    },
    {
      "name": "update_task",
      "title": "Update a save's task",
      "description": "Set the status of one task in a save's plan: todo, inProgress, done or skipped."
    },
    {
      "name": "ask_about_project",
      "title": "Ask about a save",
      "description": "Ask ORANO a question about one save and get its answer, grounded in that save's transcript, frames, caption, research and tasks (it can search the web for current facts). The exchange is kept in the save's chat in the app, so follow-ups have context; fresh_session=true ignores earlier turns. Proposed task changes come back in proposals, not applied."
    },
    {
      "name": "ask_ori",
      "title": "Ask Ori",
      "description": "Ask Ori, ORANO's assistant, anything across the user's whole library: \"what did I save about pricing?\", \"plan my week from my saves\", \"which recipe needs the fewest ingredients?\". Ori searches the library, reads saves, checks tasks and memory, and may search the web."
    },
    {
      "name": "generate_roadmap",
      "title": "Build a learning roadmap",
      "description": "Turn a save into an ordered learning roadmap (steps with time estimates and resources) for going deeper on its topic. Replaces the save's previous roadmap; takes ~10-30 s."
    },
    {
      "name": "run_research",
      "title": "Research a save",
      "description": "Research a save on the web: current, sourced key points that go beyond the video or post (who, what's changed, alternatives, costs). Takes ~15-40 s and replaces the save's previous research; get_project shows it afterwards."
    },
    {
      "name": "add_memory_fact",
      "title": "Remember a fact",
      "description": "Add a fact to the user's ORANO memory (e.g. kind \"preference\": \"Prefers vegetarian recipes\", \"goal\": \"Run a 10k in March\"). Ori and every analysis use memory to personalise answers. Only store what the user said or confirmed. Up to 2000 characters; 60/hour."
    },
    {
      "name": "delete_memory_fact",
      "title": "Forget a fact",
      "description": "Delete one fact from the user's memory (ids come from get_memory_facts)."
    },
    {
      "name": "export_library_markdown",
      "title": "Export the library as Markdown",
      "description": "The whole library as one Markdown document: profile, memory facts, every save with its summary, tasks and research (the app's \"Export\"). max_chars caps the size (up to 400,000); truncated=true means it was cut."
    },
    {
      "name": "get_account",
      "title": "Get account and limits",
      "description": "The ORANO account this key belongs to: plan and renewal date, what this key may do (scopes), the user's language, library size, activity streak, the forward-to-ORANO email address (emails sent there become saves) and the rate limits. Call it once at the start to know what is possible."
    },
    {
      "name": "get_memory_facts",
      "title": "Read memory facts",
      "description": "List curated, user-editable facts with freshness signals."
    }
  ]
}
