Ця сторінка ще не перекладена українською. Показано англійську версію. Переглянути англійською

MCP Server: поговоріть зі своєю моделлю

Команда raps mcp запускає сервер Model Context Protocol (MCP), що дозволяє ШІ-помічникам взаємодіяти з Autodesk Platform Services природною мовою.

Демонстрація MCP-сервера RAPS

Нове у v3.0.0 — MCP-сервер є основним нововведенням. Розширено у v4.1.0 — Тепер з масовими операціями адміністрування, Issues, RFI та розширеними функціями ACC. Покращено у v4.1.1 — Сервер запускається без облікових даних та надає інтерактивні інструкції з налаштування. Вдосконалено у v4.4.0 — Тепер з 51 інструментом, включаючи дозволи папок, життєвий цикл операцій та повний CRUD для модулів ACC. Розширено у v4.5.0 — Тепер із 72 інструментами: спеціальні API-запити, портфельні звіти, шаблони, вебхуки, Design Automation, Reality Capture та інше.

Від “чату з PDF” до “чату з інструментами”

Ми виходимо за межі ери “чату з PDF”. Наступний рубіж — це чат з інструментами.

Якщо ви коли-небудь пробували вставити JSON-метадані на 500 МБ з моделі Revit у ChatGPT, ви знаєте цей біль: “Message too long.” RAG (Retrieval-Augmented Generation) допомагає, але він статичний. Він не може запитати поточний стан моделі або виконати дію.

На допомогу приходить Model Context Protocol (MCP).

Що таке MCP?

Model Context Protocol — це відкритий стандарт, який дозволяє ШІ-помічникам використовувати зовнішні інструменти. Замість того, щоб завантажувати дані в контекстне вікно, LLM має доступ до набору інструментів у реальному часі.

З MCP-сервером RAPS ви можете попросити свого ШІ-помічника:

  • Знаходити конкретні BIM-елементи за властивостями (“всі екземпляри ‘Basic Wall’ площею понад 100 м²”)
  • Створювати та керувати бакетами динамічно
  • Завантажувати файли та запускати трансляції
  • Переглядати проєкти BIM 360/ACC у реальному часі
  • Перевіряти статус трансляції та отримувати результати
  • Запитувати метадані моделі у реальному часі без обмежень розміру
  • Масово керувати користувачами в кількох проєктах ACC/BIM 360
  • Відстежувати та керувати Issues у будівельних проєктах
  • Запитувати RFI, Assets, Submittals та Checklists
  • Навігувати папками та елементами з повним контролем дозволів

Це з’єднує розрив між жорсткими, складними структурами даних BIM та інтерфейсом природної мови ШІ.

Швидкий старт

# Запуск MCP-сервера
raps mcp

Сервер працює в режимі stdio, очікуючи MCP-запити від ШІ-помічників.

Облікові дані не потрібні для запуску. Сервер запускається навіть без налаштованих облікових даних APS. Коли ви запитаєте ШІ-помічника про статус автентифікації, він надасть покрокові інструкції з налаштування. Це означає, що ви можете спочатку додати RAPS до свого ШІ-помічника, а потім інтерактивно пройти процес налаштування.

Конфігурація

Claude Desktop

Додайте до файлу конфігурації Claude:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%\Claude\claude_desktop_config.json Linux: ~/.config/claude/claude_desktop_config.json

Мінімальне налаштування (з подальшою допомогою):

{
  "mcpServers": {
    "raps": {
      "command": "raps",
      "args": ["mcp"]
    }
  }
}

Після додавання перезапустіть Claude та запитайте “What’s my auth status?” — RAPS проведе вас через налаштування облікових даних.

Повне налаштування (з обліковими даними):

{
  "mcpServers": {
    "raps": {
      "command": "raps",
      "args": ["mcp"],
      "env": {
        "APS_CLIENT_ID": "your_client_id",
        "APS_CLIENT_SECRET": "your_client_secret"
      }
    }
  }
}

Cursor IDE

Додайте до .cursor/mcp.json у вашому проєкті:

{
  "mcpServers": {
    "raps": {
      "command": "raps",
      "args": ["mcp"]
    }
  }
}

Примітка: Cursor використовує змінні середовища з вашої оболонки, тому переконайтеся, що APS_CLIENT_ID та APS_CLIENT_SECRET встановлені.

Доступні інструменти

MCP-сервер RAPS надає 72 інструменти, організовані за функціональністю:

Автентифікація

ІнструментОпис
auth_testТестування облікових даних 2-legged OAuth
auth_statusПеревірка стану автентифікації з інструкціями та доступністю інструментів
auth_loginОтримання інструкцій для входу через 3-legged OAuth
auth_logoutОчищення збережених токенів 3-legged

OSS Buckets

ІнструментОпис
bucket_listПерегляд усіх доступних бакетів
bucket_createСтворення нового бакета
bucket_getОтримання деталей бакета
bucket_deleteВидалення порожнього бакета

OSS Objects

ІнструментОпис
object_listПерегляд об’єктів у бакеті
object_uploadЗавантаження файлу до бакета
object_upload_batchПакетне завантаження кількох файлів
object_downloadСкачування об’єкта з бакета
object_infoОтримання метаданих та деталей об’єкта
object_copyКопіювання об’єкта до іншого бакета або ключа
object_deleteВидалення об’єкта
object_delete_batchПакетне видалення кількох об’єктів
object_signed_urlГенерація попередньо підписаного URL для завантаження
object_urnОтримання URN у кодуванні Base64

Model Derivative

ІнструментОпис
translate_startЗапуск завдання трансляції
translate_statusПеревірка статусу трансляції

Data Management

ІнструментОпис
hub_listПерегляд хабів BIM 360/ACC
hub_infoОтримання деталей хаба
project_listПерегляд проєктів у хабі
project_infoОтримання деталей проєкту
project_users_listПерегляд користувачів проєкту
folder_listПерегляд вмісту папки
folder_contentsОтримання повного вмісту папки з метаданими
folder_createСтворення нової папки
item_infoОтримання деталей елемента
item_createСтворення нового елемента в папці
item_deleteВидалення елемента
item_renameПерейменування існуючого елемента
item_versionsПерегляд версій елемента

Масові операції адміністрування

ІнструментОпис
admin_project_listПерегляд проєктів облікового запису з фільтрацією
admin_user_listПерегляд користувачів облікового запису
admin_user_addМасове додавання користувачів до кількох проєктів
admin_user_removeМасове видалення користувачів з проєктів
admin_user_update_roleМасове оновлення ролей користувачів у проєктах
admin_folder_rightsМасове оновлення дозволів папок у проєктах
project_createСтворення нового проєкту в обліковому записі
project_user_addДодавання користувача до конкретного проєкту
project_users_importІмпорт користувачів до проєкту з CSV
admin_operation_listПерегляд усіх масових операцій зі статусом
admin_operation_statusОтримання детального статусу масової операції
admin_operation_resumeВідновлення призупиненої масової операції
admin_operation_cancelСкасування запущеної масової операції

Issues

ІнструментОпис
issue_listПерегляд Issues у проєкті
issue_getОтримання деталей конкретного Issue
issue_createСтворення нового Issue
issue_updateОновлення існуючого Issue

RFIs

ІнструментОпис
rfi_listПерегляд RFI у проєкті
rfi_getОтримання деталей конкретного RFI
rfi_createСтворення нового RFI
rfi_updateОновлення існуючого RFI

ACC Extended

ІнструментОпис
acc_assets_listПерегляд Assets у проєкті
asset_getОтримання деталей конкретного Asset
asset_createСтворення нового Asset
asset_updateОновлення існуючого Asset
asset_deleteВидалення Asset
acc_submittals_listПерегляд Submittals у проєкті
submittal_createСтворення нового Submittal
submittal_updateОновлення існуючого Submittal
acc_checklists_listПерегляд Checklists у проєкті
checklist_createСтворення нового Checklist
checklist_updateОновлення існуючого Checklist

Коментарі до Issues

ІнструментОпис
issue_comments_listПерегляд коментарів до Issue
issue_comment_addДодавання коментаря до Issue
issue_comment_deleteВидалення коментаря з Issue

Шаблони Checklists

ІнструментОпис
checklist_templates_listПерегляд доступних шаблонів Checklists

Спеціальні API-запити

ІнструментОпис
api_requestВиконання довільних HTTP-запитів до будь-якого ендпоінту APS

Портфельна звітність

ІнструментОпис
report_rfi_summaryАгрегований підсумок RFI по проєктах портфеля
report_issues_summaryАгрегований підсумок Issues по проєктах портфеля

Управління шаблонами

ІнструментОпис
template_listПерегляд шаблонів облікового запису
template_infoОтримання деталей шаблону
template_createСтворення нового шаблону проєкту
template_updateОновлення існуючого шаблону
template_archiveАрхівування шаблону

Webhooks

ІнструментОпис
webhook_listПерегляд підписок на вебхуки
webhook_createСтворення нового вебхука
webhook_getОтримання деталей вебхука
webhook_updateОновлення існуючого вебхука
webhook_deleteВидалення вебхука
webhook_eventsПерегляд доступних типів подій вебхуків

Design Automation

ІнструментОпис
da_engines_listПерегляд доступних рушіїв DA
da_appbundles_listПерегляд зареєстрованих пакетів застосунків
da_activities_listПерегляд зареєстрованих активностей
da_workitem_createСтворення нового робочого елемента
da_workitem_statusПеревірка статусу робочого елемента
da_workitems_listПерегляд робочих елементів

Reality Capture

ІнструментОпис
reality_listПерегляд фотосцен
reality_createСтворення нової фотосцени
reality_processЗапуск обробки фотосцени
reality_statusПеревірка статусу фотосцени
reality_resultОтримання результатів фотосцени
reality_deleteВидалення фотосцени
reality_formatsПерегляд підтримуваних форматів виведення

Як це працює: виконання інструментів у реальному часі

Замість завантаження даних у контекстне вікно, LLM має доступ до набору інструментів. Коли ви ставите запитання, процес виглядає так:

  1. Ви: “Знайди всі екземпляри ‘Basic Wall’ у файлі ‘Hospital.rvt’, які мають площу понад 100 м².”
  2. LLM: Думає… Мені потрібно перевірити метадані моделі.
  3. LLM (дія): Викликає raps model:query --file Hospital.rvt --category Walls
  4. RAPS: Повертає відфільтрований JSON-фрагмент.
  5. LLM (відповідь): “Я знайшов 12 стін, що відповідають вашим критеріям. Ось їхні ID…”

Вам не потрібно писати SQL або складні запити з фільтрами. Ви просто запитуєте. ШІ перекладає вашу природну мову у відповідні команди RAPS.

Приклади діалогів

Перше налаштування (без облікових даних)

Ви: Який мій статус автентифікації?

ШІ: Дозвольте перевірити ваш статус автентифікації.

Потрібне налаштування

Облікові дані APS ще не налаштовані. Ось як почати:

  1. Перейдіть на https://aps.autodesk.com та створіть безкоштовний обліковий запис
  2. Створіть новий застосунок, щоб отримати Client ID та Secret
  3. Додайте облікові дані до конфігурації MCP:
{
  "mcpServers": {
    "raps": {
      "command": "raps",
      "args": ["mcp"],
      "env": {
        "APS_CLIENT_ID": "your_client_id",
        "APS_CLIENT_SECRET": "your_client_secret"
      }
    }
  }
}

Після додавання облікових даних перезапустіть ШІ-помічника для застосування змін.

Перевірка статусу автентифікації (з обліковими даними)

Ви: Який мій поточний статус автентифікації?

ШІ: Дозвольте перевірити ваш статус автентифікації.

Статус автентифікації:

  • 2-legged OAuth: ✓ Дійсний
  • 3-legged OAuth: Не авторизовано

Доступність інструментів:

  • ✓ OSS (bucket_, object_) — доступні
  • ✓ Derivative (translate_*) — доступні
  • ✗ Data Management (hub_, project_) — потрібна 3-legged автентифікація

Для доступу до даних BIM 360/ACC потрібно увійти з обліковим записом Autodesk. Виконайте raps auth login у вашому терміналі.

Створення бакета

Ви: Створи новий постійний бакет у регіоні US з назвою “my-project-files”

ШІ: Зараз створю цей бакет для вас.

✓ Створено бакет ‘my-project-files’ з постійним збереженням у регіоні US.

Перевірка бакетів

Ви: До яких бакетів я маю доступ?

ШІ: Дозвольте перевірити ваші доступні бакети.

У вас є 3 бакети:

  • my-project-files (persistent, US)
  • temp-uploads (transient, US)
  • eu-data (persistent, EMEA)

Розширений запит до моделі

Ви: Знайди всі сталеві балки в моделі лікарні, які довші за 10 метрів, та покажи їхні властивості матеріалу

ШІ: Дозвольте запитати метадані моделі для вас.

Знайдено 47 сталевих балок довжиною понад 10 метрів:

  • Балки W12x45: 12 екземплярів (сталь Grade 50)
  • Балки W14x30: 23 екземпляри (сталь Grade 36)
  • Балки W16x67: 12 екземплярів (сталь Grade 50)

Усі балки мають вогнестійкість 2 години. Бажаєте повні специфікації матеріалів?

Робочий процес трансляції

Ви: Почни трансляцію файлу “building.rvt” у бакеті “my-project-files” у формат SVF2

ШІ: Зараз запущу трансляцію. Спочатку дозвольте отримати URN для цього файлу.

✓ Трансляцію запущено. Файл конвертується у формат SVF2. Ви можете перевірити статус, запитавши мене про це.

Масове управління користувачами

Ви: Додай john.smith@company.com до всіх проєктів, що починаються з “2026-”, як Project Admin

ШІ: Зараз додам цього користувача до відповідних проєктів. Спочатку знайду всі проєкти з префіксом “2026-”.

Знайдено 8 проєктів з відповідністю “2026-*”:

  • 2026-Hospital-Phase1
  • 2026-Hospital-Phase2
  • 2026-Office-Tower … та ще 5

✓ Запущено масову операцію додавання. Користувача буде додано до всіх 8 проєктів як Project Admin. ID операції: op_abc123. Ви можете запитати мене про оновлення статусу.

Управління Issues

Ви: Створи Issue для проєкту Hospital про відсутній графік протипожежних дверей

ШІ: Зараз створю цей Issue для вас.

✓ Створено Issue #47: “Missing fire door schedule”

  • Проєкт: 2026-Hospital-Phase1
  • Тип: Design
  • Статус: Open
  • Виконавець: Не призначено

Бажаєте, щоб я призначив його комусь?

Запит RFI

Ви: Покажи всі відкриті RFI у проєкті Office Tower

ШІ: Дозвольте запитати RFI для цього проєкту.

Знайдено 3 відкритих RFI:

  • RFI-012: “Clarification on structural beam dimensions” (Термін: 20 січня)
  • RFI-015: “MEP coordination at Level 5” (Термін: 22 січня)
  • RFI-018: “Curtain wall detail at entrance” (Термін: 25 січня)

Бажаєте деталі щодо будь-якого з них?

Архітектура

MCP-сервер повторно використовує всі наявні API-клієнти RAPS:

┌─────────────────┐     ┌──────────────────┐
│   AI Assistant  │────▶│  RAPS MCP Server │
│  (Claude, etc.) │◀────│   raps mcp       │
└─────────────────┘     └────────┬─────────┘
                                 │
     ┌───────────┬───────────┬───┴───┬───────────┬───────────┐
     │           │           │       │           │           │
┌────▼────┐ ┌────▼────┐ ┌────▼───┐ ┌─▼──┐ ┌─────▼─────┐ ┌────▼────┐
│  Auth   │ │   OSS   │ │ Deriv  │ │ DM │ │   Admin   │ │   ACC   │
│ Client  │ │ Client  │ │ Client │ │    │ │  Clients  │ │ Clients │
└────┬────┘ └────┬────┘ └────┬───┘ └──┬─┘ └─────┬─────┘ └────┬────┘
     │           │           │        │         │            │
     └───────────┴───────────┴────┬───┴─────────┴────────────┘
                                  │
                           ┌──────▼──────┐
                           │   APS APIs  │
                           └─────────────┘

Клієнти Admin та ACC створюються на вимогу для кожного запиту для підтримки масових операцій та API, специфічних для проєктів.

Обмеження

  • Без завантаження файлів: MCP наразі не підтримує передачу бінарних файлів. Використовуйте CLI для завантажень.
  • 3-legged автентифікація потребує CLI: Хоча MCP-інструменти можуть перевіряти статус автентифікації та надавати інструкції, фактичний вхід через 3-legged потрібно виконувати через raps auth login у терміналі з доступом до браузера.
  • Транспорт stdio: Сервер повинен бути запущений ШІ-клієнтом, а не як демон.

Налагодження

Увімкніть детальне журналювання:

RUST_LOG=debug raps mcp

Перевірте з’єднання з сервером:

echo '{"jsonrpc":"2.0","method":"initialize","params":{},"id":1}' | raps mcp

Наступні кроки