{
  "name": "RAGfly",
  "description": "Choose your folders and talk to your documents, with the source of every answer. Connect them to Claude, ChatGPT or your own agents. We don't store your documents.",
  "desktop": {
    "included_in": "all_plans",
    "free_plan_included": true,
    "download_url": "https://ragfly.ai/download"
  },
  "site": "https://ragfly.ai",
  "app": "https://app.ragfly.ai",
  "updated": "2026-10-27",
  "mcp": {
    "nombre": "ragfly",
    "endpointHTTP": "https://api.ragfly.ai/mcp-http/",
    "endpointSSE": "https://api.ragfly.ai/mcp/sse",
    "setupScript": "https://ragfly.ai/integradores/ragfly-mcp-setup.sh",
    "setupScriptWindows": "https://ragfly.ai/integradores/ragfly-mcp-setup.ps1",
    "auth": "OAuth 2.1 or Authorization: Bearer rf_xxxxxxxxxx (API Key issued from a human session)",
    "scope": "Every call is filtered by the key owner’s organization, workspace, area and role. Flexible workspace focus is stored server-side."
  },
  "total_mcp_tools": 42,
  "tools": [
    {
      "name": "session",
      "description": "Verifies the connection and returns the identity and the active organization, workspace and area",
      "parameters": "—"
    },
    {
      "name": "set_active_workspace",
      "description": "Sets an authorized workspace for a flexible key or releases focus with null; fixed keys cannot change workspace",
      "parameters": "`workspace_code` (string or null)"
    },
    {
      "name": "unset_active_workspace",
      "description": "Releases the workspace focus (same as `set_active_workspace` with null): back to the identity's default workspace scope",
      "parameters": "—"
    },
    {
      "name": "list_operations",
      "description": "What this key can do: every operation its RBAC allows, with `kind` and `confirm_required`",
      "parameters": "—"
    },
    {
      "name": "get_operation",
      "description": "One operation with its `input_schema` and `output_schema`",
      "parameters": "`code`"
    },
    {
      "name": "run_operation",
      "description": "Runs one operation. A `write_confirm` one only runs with `confirm=true`; otherwise it returns a preview",
      "parameters": "`code`, `input?`, `confirm?`"
    },
    {
      "name": "list_documents",
      "description": "Lists organization documents with filters",
      "parameters": "`status`, `limit`, `page`"
    },
    {
      "name": "get_document",
      "description": "Full detail of a document",
      "parameters": "`document_code`"
    },
    {
      "name": "document_edges",
      "description": "Corpus-graph edges of a document: neighbors and documents at 2 hops",
      "parameters": "`document_code`, `neighbor_limit?`"
    },
    {
      "name": "list_collections",
      "description": "Lists the organization's Collections",
      "parameters": "`limit`"
    },
    {
      "name": "get_collection",
      "description": "Collection detail: criteria + documents + queue",
      "parameters": "`collection_id`, `doc_limit`"
    },
    {
      "name": "compose_collections",
      "description": "Set algebra (COMPOSE) of two Collections → a new Collection handle",
      "parameters": "`operation`, `collection_id_a`, `collection_id_b`, `name?`, `collection_type?` (`TEMPORARY`|`SAVED`)"
    },
    {
      "name": "read_collection",
      "description": "Materialize a Collection (READ) at a chosen resolution, paginated",
      "parameters": "`collection_id`, `resolution?`, `query?`, `limit?`"
    },
    {
      "name": "refresh_collection",
      "description": "Re-applies the Collection's natural-language criteria and re-materializes its set (picks up newly qualifying documents)",
      "parameters": "`collection_id`"
    },
    {
      "name": "save_collection",
      "description": "Saves a temporary Collection (`TEMPORARY`) as a saved one (`SAVED`)",
      "parameters": "`collection_id`"
    },
    {
      "name": "wiki_index",
      "description": "Index of the compiled-knowledge pages visible from the active area. **Not available to integrator keys today (403)**",
      "parameters": "`area_code?`"
    },
    {
      "name": "wiki_page",
      "description": "One compiled-knowledge page. **Not available to integrator keys today (403)**",
      "parameters": "`document_code`"
    },
    {
      "name": "compile_collection",
      "description": "Compiles a Collection (background job). The leaf skill must be one your access can run; the default public code is `COMPILE_PAGE`",
      "parameters": "`collection_id`, `leaf_skill_code?`"
    },
    {
      "name": "queue",
      "description": "Current state of the processing pipeline",
      "parameters": "`process`, `status`, `limit`"
    },
    {
      "name": "list_runs",
      "description": "Skill run history",
      "parameters": "`limit`"
    },
    {
      "name": "catalog",
      "description": "User capabilities: available functions + LLM skills (RBAC-filtered)",
      "parameters": "`type?` (`FUNCTIONS`|`SKILLS`|`ALL`)"
    },
    {
      "name": "list_skills",
      "description": "LLM skills available to you (the same list as `catalog`)",
      "parameters": "—"
    },
    {
      "name": "get_skill",
      "description": "Skill detail: type and output; prompt and model only if your role administers skills",
      "parameters": "`skill_code`"
    },
    {
      "name": "run_skill",
      "description": "Queues a run over a collection or document",
      "parameters": "`skill_code`, `collection_id?`, `document_code?`"
    },
    {
      "name": "search_documents",
      "description": "Direct semantic search over the corpus. `filter` narrows by document type, file attributes and content characteristics (codes from `list_document_types` and `list_characteristics`); a valid filter answers `filter_not_available` until structured filters are enabled for the organization",
      "parameters": "`query`, `limit?`, `min_similarity?`, `workspace_code?`, `collection_id?`, `filter?`, `location_code?`"
    },
    {
      "name": "list_document_types",
      "description": "Document types of the workspace as a tree, with parent, synonyms and document counts. Picking a type also covers its more specific types",
      "parameters": "`workspace_code?`"
    },
    {
      "name": "list_characteristics",
      "description": "Content characteristics (a date, an amount, an ID, a person…) available for the given types and their more specific ones",
      "parameters": "`document_types?`, `workspace_code?`"
    },
    {
      "name": "ask",
      "description": "Natural language question with full RAG (non-streaming). `mode: \"help\"` answers questions about RAGfly itself instead, without links to web screens",
      "parameters": "`message`, `function_code?`, `conversation_id?`, `title?`, `location_code?`, `mode?`"
    },
    {
      "name": "set_active_area",
      "description": "Set or release an organizational area focus",
      "parameters": "`area_code` (required; `null` releases)"
    },
    {
      "name": "list_areas",
      "description": "List visible organizational areas",
      "parameters": "`workspace_code?`, `parent_code?`, `query?`, `limit?`, `cursor?`"
    },
    {
      "name": "list_locations",
      "description": "List visible document folders",
      "parameters": "`workspace_code?`, `parent_code?`, `query?`, `limit?`, `cursor?`"
    },
    {
      "name": "get_agent_context",
      "description": "Authenticated layered prompt, identity, allowed tools and limits for Agentic Retrieval. Tool names are stable English identifiers; the available list and schemas depend on identity/profile",
      "parameters": "`function_profile?` (`user_chat`|`support_chat`)"
    },
    {
      "name": "run_agent_tool",
      "description": "Runs one tool from the current authenticated AgentContext",
      "parameters": "`public_name`, `arguments_json?`, `function_profile?`"
    },
    {
      "name": "get_organization",
      "description": "Reads this organization's profile and what is still missing",
      "parameters": "—"
    },
    {
      "name": "update_organization",
      "description": "Writes the profile. Needs an administrator of the organization",
      "parameters": "`group_description?`, `group_system_prompt?`, `workspace_description?`, `workspace_system_prompt?`"
    },
    {
      "name": "draft_organization",
      "description": "Proposes the four profile texts from a source text. Does **not** save",
      "parameters": "`source_text`"
    },
    {
      "name": "get_usage",
      "description": "Plan quotas against what is already consumed",
      "parameters": "—"
    },
    {
      "name": "list_conversations",
      "description": "Conversation history; its ids feed `ask`",
      "parameters": "`function_code?`, `limit?`"
    },
    {
      "name": "delete_conversation",
      "description": "Deletes a conversation and its messages. Not reversible",
      "parameters": "`conversation_id`"
    },
    {
      "name": "list_processes",
      "description": "Process instances: support, requests, collection jobs",
      "parameters": "`status?`, `process_type?`, `category?`, `mine?`, `only_open?`, `limit?`, `page?`"
    },
    {
      "name": "get_process",
      "description": "One process in full, with description and comments",
      "parameters": "`process_code`"
    },
    {
      "name": "update_process",
      "description": "Updates the fields the \"My Processes\" screen lets a person edit",
      "parameters": "`process_code`, `status?`, `priority?`, `name?`, `description?`, `comments?`, `assigned_to?`, `due_at?`, `finished_at?`"
    }
  ],
  "operations": {
    "method": "GET",
    "endpoint": "https://api.ragfly.ai/v1/operations",
    "description": "Separate manifest catalog of screen operations allowed by the credential after RBAC filtering. Its entries are not MCP tools."
  },
  "total_resources": 1,
  "resources": [
    {
      "id": "configurar_conectores_ingesta",
      "tipo": "GUIA_OPERATIVA",
      "titulo": "Configurar conectores de ingesta: Google Drive y Dropbox",
      "descripcion": "Cuando una persona necesite conectar Google Drive o Dropbox, acompáñala con estas guías. No es una tool MCP, un comando CLI, una operación REST ni una función del SDK: el administrador configura la aplicación y los parámetros del grupo directamente en RAGfly; cada usuario autoriza su propia cuenta y elige la carpeta en el navegador.",
      "reglas_seguridad": [
        "Nunca pidas, recibas, almacenes ni repitas secretos de cliente, access tokens, refresh tokens, contraseñas, cookies o códigos OAuth.",
        "Indica al administrador que ingrese las credenciales de aplicación solo en Parámetros de Grupo de RAGfly; el agente solo describe los pasos y verifica requisitos no sensibles.",
        "No intentes completar la autorización OAuth ni seleccionar carpetas fuera del navegador y la sesión del usuario."
      ],
      "enlaces": [
        {
          "titulo": "Guía humana: Google Drive",
          "url": "https://ragfly.ai/build/google-drive"
        },
        {
          "titulo": "Guía humana: Dropbox",
          "url": "https://ragfly.ai/build/dropbox"
        },
        {
          "titulo": "Referencia técnica: Google Drive (Markdown)",
          "url": "https://ragfly.ai/integradores/GOOGLE_DRIVE.md"
        },
        {
          "titulo": "Referencia técnica: Dropbox (Markdown)",
          "url": "https://ragfly.ai/integradores/DROPBOX.md"
        }
      ]
    }
  ]
}
