Ramifica

Collaborative nested-list outliner with OAuth-backed MCP tools for reading, creating, updating, checking off, and reorganizing live Ramifica lists.

От сообщества: Добавлен пользователем или импортирован; проверьте владельца перед подключениемРаботаетБез входаГлобальныйБесплатноТолько чтение

Что умеет

  • Get Lists: Use this tool to retrieve all lists belonging to the authenticated Ramifica user. Call this before any write operation to discover valid list names and IDs. Returns an array of list objects
  • Get Items: Use this tool to retrieve all items in a specific Ramifica list. Requires listId — obtain this from get_lists first. Returns items with their hierarchical structure. Each item includes: - i
  • Add Items: Use this tool to add one or more items to a Ramifica list. Call this tool when you have content to store in Ramifica — outlines, lists, notes, plans. Items are specified as a flat array. Ea

Какие данные видит

Нужен ли аккаунт

Не нужен: сервер работает без входа

Collaborative nested-list outliner with OAuth-backed MCP tools for reading, creating, updating, checking off, and reorganizing live Ramifica lists.

Как подключить

Как подключить Ramifica к Claude

Адрес сервера, который нужно вставить в настройках Claude:

https://ramifica--rapidlyproductive.run.tools

  1. Откройте Claude (сайт claude.ai или приложение для компьютера).
  2. Перейдите в Настройки → Коннекторы (в английском интерфейсе: Settings → Connectors).
  3. Нажмите Добавить пользовательский коннектор (Add custom connector).
  4. Вставьте адрес сервера, скопированный ниже, в поле URL удалённого MCP-сервера и нажмите Добавить.
  5. В чате нажмите + → Коннекторы и включите новый коннектор.

Пользовательские коннекторы доступны на тарифах Free, Pro, Max, Team и Enterprise. На Free можно добавить только один. В Team и Enterprise коннектор сначала добавляет владелец организации в Настройки организации → Коннекторы.

Авторизация

После нажатия Добавить откроется окно входа в сервис. Войдите под своим аккаунтом и подтвердите доступ. Пароль Claude не видит.

Как подключить Ramifica к ChatGPT

Адрес сервера, который нужно вставить в настройках ChatGPT:

https://ramifica--rapidlyproductive.run.tools

  1. Откройте ChatGPT в браузере (chatgpt.com). Нужен тариф Plus, Pro, Business, Enterprise или Edu.
  2. Один раз включите режим разработчика: Настройки → Приложения → Дополнительные настройки → Режим разработчика (Settings → Apps → Advanced settings → Developer mode).
  3. Откройте Настройки → Коннекторы и нажмите Создать (Create).
  4. Заполните форму: Название (любое), Описание (одна фраза, что делает сервис), URL MCP-сервера (скопируйте ниже).
  5. В поле Аутентификация выберите OAuth, если сервис требует вход, иначе Нет. Нажмите Создать.
  6. В новом чате откройте + → Приложения/Коннекторы и включите коннектор.

Название раздела у OpenAI менялось (Connectors → Apps/Plugins). Если пункт называется иначе, ищите «режим разработчика» в настройках. В рабочих пространствах Business/Enterprise администратор должен разрешить пользовательские коннекторы.

Авторизация

При первом использовании ChatGPT откроет окно входа в сервис. Войдите и подтвердите доступ.

Как подключить Ramifica к Cursor

Адрес сервера, который нужно вставить в настройках Cursor:

https://ramifica--rapidlyproductive.run.tools

Быстрый способ: нажмите кнопку Открыть в Cursor ниже, Cursor сам предложит добавить сервер.

Вручную:

  1. В Cursor откройте Settings → Cursor Settings → MCP и нажмите Add new global MCP server.
  2. Вставьте JSON, скопированный ниже, в открывшийся файл ~/.cursor/mcp.json (для одного проекта: .cursor/mcp.json в корне проекта).
  3. Сохраните файл. Сервер появится в списке MCP; при необходимости пройдите авторизацию по кнопке рядом с ним.

Авторизация

Если сервис требует вход, рядом с сервером в списке MCP появится кнопка авторизации.

Список инструментов сервера (9)

Технические названия из tools/list. Нужны только разработчикам.

get_listsUse this tool to retrieve all lists belonging to the authenticated Ramifica user. Call this before any write operation to discover valid list names and IDs. Returns an array of list objects. Each object includes: - id: the Convex ID string — use this as the listId argument in get_items - name: the human-readable list name - itemCount: number of items currently in the list (0 for empty lists) - createdAt / updatedAt: Unix timestamps in milliseconds - isShared: true if this list was shared with the user by another user Example output: [ { "id": "jd7abc123", "name": "Inbox", "itemCount": 5, "createdAt": 1711234567000, "updatedAt": 1711234599000, "isShared": false }, { "id": "jd7def456", "name": "Project Alpha", "itemCount": 12, "createdAt": 1710000000000, "updatedAt": 1711200000000, "isShared": true } ]
get_itemsUse this tool to retrieve all items in a specific Ramifica list. Requires listId — obtain this from get_lists first. Returns items with their hierarchical structure. Each item includes: - id: Convex ID string for the item - content: the text content of the item - parentId: ID of the parent item, or null if this is a top-level item - depth: 0-based nesting level (0 = top level, 1 = child, 2 = grandchild, etc.) - order: fractional index string used for ordering among siblings - isChecked: boolean — true if the item is checked off / completed (defaults to false); use this to triage open vs done items - checkedAt: number | null — Unix ms timestamp when the item was checked, or null if it is not checked - imageIds: string[] — ids of the item's attached images (empty array [] if none); to fetch an image call get_item_image(itemId, index) where index is the position of the id in imageIds (i.e. imageIds[0] is fetched with index 0, imageIds[1] with index 1, etc.) Example input: { "listId": "jd7abc123" } Example output: [ { "id": "item1", "content": "Section 1", "parentId": null, "depth": 0, "order": "a0", "isChecked": false, "checkedAt": null, "imageIds": ["img_abc", "img_def"] }, { "id": "item2", "content": "Subsection 1.1", "parentId": "item1", "depth": 1, "order": "a0", "isChecked": true, "checkedAt": 1700000000000, "imageIds": [] } ]
add_itemsUse this tool to add one or more items to a Ramifica list. Call this tool when you have content to store in Ramifica — outlines, lists, notes, plans. Items are specified as a flat array. Each item has: - content (required): the text of the item - depth (optional): nesting level — 0 = top-level, 1 = child, 2 = grandchild, etc. - parentIndex (optional): index of the parent item within this same items array (0-based). Takes precedence over depth. If listName is omitted, items are added to the user's Inbox list (auto-created if it does not exist). Maximum 50 items per call. Example — flat list: { "items": [{"content": "Buy milk"}, {"content": "Buy eggs"}] } Example — nested using depth: { "listName": "Project Plan", "items": [ {"content": "Phase 1", "depth": 0}, {"content": "Research", "depth": 1}, {"content": "Phase 2", "depth": 0} ]} Example — nested using parentIndex: { "items": [ {"content": "Parent item", "depth": 0}, {"content": "Child item", "depth": 1, "parentIndex": 0} ]}
create_listUse this tool to create a new named list in Ramifica. Call this before add_items when you want to store content in a specific new list. Returns the new list's id — use this to verify the list was created. If the token grants access to multiple workspaces, pass an explicit workspaceId to choose where the list lives. If the token grants Personal access, omit workspaceId to create a Personal list. Example — Personal list: { "name": "Shopping List" } Example — workspace list: { "name": "Q2 Plan", "workspaceId": "ws123" }
update_itemUse this tool to update an existing item in a Ramifica list. Call get_items first to obtain valid item IDs. At least one of content or checked must be provided. Parameters: - itemId: the Convex ID of the item to update (get from get_items) - content (optional): new text content for the item - checked (optional): true to mark item as done, false to unmark, null/omit to leave unchanged Error codes in error responses: - NOT_FOUND: item does not exist - ACCESS_DENIED: token does not have write access to this list - INVALID_ARGS: neither content nor checked was provided Example — update content: { "itemId": "item123", "content": "Updated text" } Example — mark as done: { "itemId": "item123", "checked": true } Example — update both: { "itemId": "item123", "content": "Done task", "checked": true }
rename_listUse this tool to rename a Ramifica list. Only the list owner can rename — collaborators will receive an ACCESS_DENIED error. Call get_lists first to obtain valid list IDs. Parameters: - listId: the Convex ID of the list to rename (get from get_lists) - name: the new name for the list (must be non-empty) Error codes in error responses: - NOT_FOUND: list does not exist - ACCESS_DENIED: token belongs to a collaborator, not the owner Example: { "listId": "list456", "name": "Q2 Planning" }
set_checkedUse this tool to toggle an item's checkbox state in a Ramifica list. Call get_items first to obtain valid item IDs. This is the canonical "mark done" / "uncheck" surface — single-purpose so the call site is unambiguous (vs update_item which also accepts a checked field but is intended for content edits). Parameters: - itemId: the Convex ID of the item to toggle (get from get_items) - checked: true to mark the item complete (stamps checkedAt = now), false to uncheck (clears checkedAt) Server semantics (mirrors the UI's toggleCheck behavior exactly): - checked: true → isChecked = true, checkedAt = <ms timestamp> - checked: false → isChecked = false, checkedAt = null Error codes in error responses: - NOT_FOUND: item does not exist - ACCESS_DENIED: token does not have access to this list Example — mark done: { "itemId": "item123", "checked": true } Example — uncheck: { "itemId": "item123", "checked": false }
move_itemUse this tool to reparent an item and its entire subtree within the same list. Call get_items first to obtain valid item IDs. Parameters: - itemId: the Convex ID of the item to move (get from get_items) - parent_id: Convex ID of the new parent item, or null to move the item to root level. Omit or pass null to move to root level. - after_item_id: Convex ID of the sibling to insert after. Omit to append as the last sibling. Constraints: - Same-list moves only. Cross-list moves are not supported. - Cycle prevention: an item cannot be moved under itself or any of its own descendants. - parent_id: null with no after_item_id → item becomes the last root-level item. Error codes in error responses: - NOT_FOUND: item or parent item does not exist - INVALID_ARGS: parent item belongs to a different list - CYCLE: move would create a cycle (item becoming its own ancestor) - ACCESS_DENIED: token does not have write access to this list Example — reparent under another item: { "itemId": "item123", "parent_id": "item456" } Example — move to root level: { "itemId": "item123", "parent_id": null } Example — reorder as last child of a parent: { "itemId": "item123", "parent_id": "item456", "after_item_id": "item789" }
get_item_imageUse this tool to retrieve the image(s) attached to an item as MCP image content blocks the model can see directly (base64-encoded with mimeType). Parameters: - itemId: Convex ID of the item whose images you want. Get from get_items. - index: 0-based image index in upload/createdAt order. Omit to return all ready images up to the per-call cap (3). Pass 0 for the first image, 1 for the second, etc. Behavior: - No index: returns all ready images up to 3 (oldest first). If the item has more than 3 images, the first 3 are returned with a continuation note — pass index to fetch the others. - With index: returns exactly that one image (0-based, upload order). Per-image size limit: 1,500,000 bytes raw. - Explicit index on an oversized image → IMAGE_TOO_LARGE error. - Oversized image in a multi-image (no-index) result → skipped with a note; others are returned. Error codes in error responses: - NO_IMAGES: this item has no ready images - INVALID_INDEX: index out of range for this item's image count - IMAGE_TOO_LARGE: the requested image exceeds the size cap - "Item not found or access denied": item does not exist or the token lacks access
Ramifica: подключить к Claude, ChatGPT, Cursor · Connectors.fun