{
  "markdown": "# ORANO MCP Server\n\nA personal, read-only MCP (Model Context Protocol) server that lets a user's\nown AI agent (ChatGPT, Claude, Cursor, Ollama) read their ORANO library as\ngrounded context.\n\n> **Note:** This public repository contains documentation, the MCP server\n> manifest, and a reference implementation. The production MCP server runs as\n> an authenticated endpoint mounted at `/mcp` on the ORANO backend\n> (FastAPI + Postgres + pgvector). See [the ORANO product\n> site](https://oranoai.com/mcp) for the live endpoint and authentication flow.\n\n## What is ORANO?\n\nORANO turns saved Reels, TikToks, YouTube Shorts, and reference material into\nstructured projects — summary, key takeaways, ordered tasks, research context,\nand a learning roadmap. Live on the iOS App Store\n([App Store listing](https://apps.apple.com/us/app/orano-ai/id6791454509)).\n\nA personal, read-only MCP server so a user's own AI agent can read that\ncontext is the differentiator.\n\n## MCP tools exposed\n\nThe ORANO MCP server exposes the following tools:\n\n| Tool | Description |\n|---|---|\n| `list_projects` | List the user's projects with optional status filters (`active`, `completed`, `skipped`, `archived`). |\n| `get_project` | Return a single project's full structured understanding + summary + tasks + resources + research + roadmap. |\n| `get_project_context` | Return only the requested context fields (`summary`, `overview`, `caption`, `transcript`, `visual_context`, `links`, `tasks`, `roadmap`, `source`, or `raw_source`) in structured, Markdown, or text output. |\n| `search_library` | Search the user's projects by title, summary, source title, or URL. |\n| `read_memory_facts` | Return curated memory facts (preferences, skills, goals) with confidence and freshness signals. |\n| `get_pending_handoffs` | Retrieve projects explicitly sent from the ORANO app to a target agent. Each handoff is acknowledged once on read so concurrent polls do not duplicate. |\n\n## Authentication\n\n- **Mechanism:** Bearer personal API key, scope `orano:read`.\n- **No OAuth.** Manual key creation only (per `landing/mcp-access.html`).\n- **Per-user budget:** 240 calls per 60 minutes.\n- **Maximum active keys per user:** 10.\n\n## MCP server manifest (server.json)\n\nThe canonical MCP server manifest follows the [official MCP server.json\nschema](https://modelcontextprotocol.io/docs/concepts/architecture#server-discovery):\n\n```json\n{\n  \"$schema\": \"https://static.modelcontextprotocol.io/schemas/server.json\",\n  \"name\": \"io.github.infotik/orano-mcp-server\",\n  \"displayName\": \"ORANO\",\n  \"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.\",\n  \"version\": \"0.1.0\",\n  \"repository\": {\n    \"type\": \"git\",\n    \"url\": \"https://github.com/infotik/orano-mcp-server\"\n  },\n  \"homepage\": \"https://oranoai.com/mcp\",\n  \"categories\": [\n    \"knowledge-management\",\n    \"personal-assistant\",\n    \"productivity\",\n    \"second-brain\"\n  ],\n  \"tools\": [\n    { \"name\": \"list_projects\", \"description\": \"List the user's ORANO projects with optional status filters.\" },\n    { \"name\": \"get_project\", \"description\": \"Return a single project's full structured understanding.\" },\n    { \"name\": \"get_project_context\", \"description\": \"Return only the requested context fields (summary, overview, transcript, visual_context, links, tasks, roadmap, source, raw_source).\" },\n    { \"name\": \"search_library\", \"description\": \"Search the user's projects by title, summary, source title, or URL.\" },\n    { \"name\": \"read_memory_facts\", \"description\": \"Return curated memory facts with confidence and freshness signals.\" },\n    { \"name\": \"get_pending_handoffs\", \"description\": \"Retrieve acknowledged-once projects explicitly sent from the ORANO app to a target agent.\" }\n  ],\n  \"transports\": [\n    { \"type\": \"http\", \"endpoint\": \"https://api.oranoai.com/mcp/\" }\n  ],\n  \"authentication\": {\n    \"type\": \"bearer\",\n    \"scope\": \"orano:read\",\n    \"user_specific\": true,\n    \"rate_limit\": \"240 calls / 60 minutes / user\"\n  }\n}\n```\n\n## Reference implementation (Python)\n\nThe production server runs as part of the ORANO backend (FastAPI + SQLAlchemy +\npgvector). The reference implementation pattern is:\n\n```python\nfrom mcp.server.fastmcp import FastMCP\nfrom mcp.server.auth.settings import AuthSettings\nfrom mcp.server.auth.provider import AccessToken\n\nmcp = FastMCP(\n    name=\"orano\",\n    auth=AuthSettings(issuer_url=\"https://api.oranoai.com\", required_scopes=[\"orano:read\"]),\n)\n\n@mcp.tool()\nasync def list_projects(status: str | None = None) -> list[dict]:\n    \"\"\"List the user's ORANO projects.\"\"\"\n    ...\n\n@mcp.tool()\nasync def get_project(project_id: str, fields: list[str] | None = None) -> dict:\n    \"\"\"Return a single project's full structured understanding.\"\"\"\n    ...\n\n# ... plus get_project_context, search_library, read_memory_facts,\n# get_pending_handoffs\n```\n\nThe full production server (787 lines + 290 lines of auth/handshake helpers)\nlives in `ExecutionOSBackend/app/mcp_server.py` and is part of the private\nORANO backend repository. Open-sourcing the full production code requires\nextracting the SQLAlchemy models + ingest services into a public package,\nwhich is on the product roadmap but not yet complete.\n\n## How to use\n\nEnd users:\n\n1. Install the ORANO iOS app from\n   [the App Store](https://apps.apple.com/us/app/orano-ai/id6791454509).\n2. Sign in, save at least one Reel/TikTok/YouTube Short to generate your\n   first project.\n3. Open Settings → MCP access → Create new key (scope `orano:read`).\n4. Connect your AI agent (ChatGPT, Claude, Cursor, Ollama) to your personal\n   MCP endpoint with the key as a bearer token.\n\n## Privacy and trust\n\n- The MCP server is **read-only**. It does not write to projects, sources,\n  tasks, memory, or account data.\n- The single state mutation is `get_pending_handoffs` acknowledging a queued\n  app-triggered delivery by setting its delivery timestamp.\n- No agent write access is promised; no one-click OAuth flow exists.\n\n## License\n\nMIT — see [LICENSE](./LICENSE).\n\n## Links\n\n- [Product site](https://oranoai.com/)\n- [MCP overview](https://oranoai.com/mcp)\n- [MCP access flow](https://oranoai.com/mcp-access.html)\n- [App Store listing](https://apps.apple.com/us/app/orano-ai/id6791454509)\n- [Deck](https://oranoai.com/deck/)\n",
  "bytes": 6317,
  "sha": "65c6af86455e6b27aaa90f86b754c0fe0b659704bfde0fd559d9677caaa76210",
  "repo_slug": "infotik/orano-mcp-server",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_infotik_orano_mcp_server_f1950d15/readme"
}