Skip to main content
Glama

SailfishOS MCP для OpenCode

Сервер MCP (Model Context Protocol), который расширяет возможности OpenCode для разработки приложений под SailfishOS.

Возможности

Инструмент

Что он делает

sailfish_create_project

Создает каркас проекта SailfishOS (CMake, RPM spec, QML, иконки, переводы)

sailfish_build

Собирает проект с помощью sfdk и создает RPM-пакет

sailfish_clean

Очищает директорию сборки

sailfish_deploy

Развертывает RPM-пакет на подключенном устройстве или эмуляторе

sailfish_guidelines

Возвращает рекомендации по любой теме SailfishOS

sailfish_pitfalls

Перечисляет типичные ошибки для области разработки

sailfish_snippet

Генерирует готовые фрагменты кода для распространенных шаблонов

sailfish_add_feature

Добавляет новую страницу, обложку, сервис, D-Bus интерфейс или C++ бэкенд

sailfish_add_chum_metadata

Добавляет метаданные Chum в RPM spec существующего проекта

Предварительные требования

  • TypeScript

  • Sailfish SDK с sfdk в вашем PATH (требуется для инструментов сборки/развертывания)

  • OpenCode

Установка

git clone https://github.com/ilpianista/sailfishos-mcp
cd sailfishos-mcp
npm install
npm run build

Настройка OpenCode

Добавьте этот сервер в ваш конфигурационный файл OpenCode (~/.config/opencode/config.json или локальный для проекта .opencode/config.json):

{
  "mcp": {
    "sailfishos": {
      "type": "local",
      "command": [
        "node",
        "/absolute/path/to/sailfishos-mcp/dist/index.js"
      ],
      "enabled": true
    }
  }
}

Перезапустите OpenCode — инструменты SailfishOS станут доступны немедленно.


Примеры использования

1. Создание нового приложения

"Создай новое приложение SailfishOS под названием my-notes в ~/Projects. Это простое приложение для заметок."

OpenCode вызовет sailfish_create_project и создаст:

~/Projects/harbour-my-notes/
├── CMakeLists.txt
├── rpm/
│   ├── harbour-my-notes.changes.in
│   ├── harbour-my-notes.changes.run.in
│   └── harbour-my-notes.spec
├── src/
│   └── main.cpp
├── qml/
│   ├── harbour-my-notes.qml
│   ├── pages/
│   │   ├── FirstPage.qml
│   │   └── SecondPage.qml
│   └── cover/
│       └── CoverPage.qml
├── icons/  (86, 108, 128, 172 px stubs)
└── translations/harbour-my-notes.ts
└── harbour-my-notes.desktop

2. Сборка проекта

"Собери мой проект SailfishOS в ~/Projects/harbour-my-notes для armv7hl"

Запускает:

sfdk config target SailfishOS-4.5.0.18-armv7hl
sfdk cmake -B build -S .
sfdk cmake --build build
sfdk rpm

3. Добавление функции

"Добавь страницу сведений под названием NoteDetailPage в мой проект"

Создает qml/pages/NoteDetailPage.qml с правильным шаблоном Silica и объясняет, как к ней перейти.

4. Получение рекомендаций

"Каковы требования Harbour к иконкам?"

Вызывает sailfish_guidelines({ topic: "harbour-validation" }).

5. Избежание ошибок

"Какие типичные ошибки QML встречаются в SailfishOS?"

Вызывает sailfish_pitfalls({ area: "qml" }) и возвращает аннотированный список антипаттернов.

6. Фрагменты кода по запросу

"Покажи мне, как сделать выпадающее меню в SailfishOS QML"

Вызывает sailfish_snippet({ pattern: "page-with-pulley", language: "qml" }).


Доступные шаблоны

Шаблон

Описание

qmlOnlyTemplate

Приложение Sailfish OS Qt Quick (только QML)

qmake

Приложение Sailfish OS Qt Quick как проект QMake

cmake

Приложение Sailfish OS Qt Quick как проект CMake

Доступные фрагменты кода

page-with-pulley, list-view-delegate, cover-page, settings-page, dbus-interface, background-service, notification, file-picker, share-picker, theme-aware-colors, keep-alive, remorse-item, section-header, search-field

Доступные темы рекомендаций

harbour-validation, ui-components, navigation, theming, permissions, dbus, background-services, notifications, covers, sailfishsilica, cmake, rpm-spec, general, ux-guidelines


Краткий справочник Sailfish SDK

# List available build targets
sfdk tools list

# Set active target
sfdk config target SailfishOS-4.5.0.18-armv7hl

# Configure and build
sfdk cmake -B build -S .
sfdk cmake --build build

# Package as RPM
sfdk rpm

# List connected devices
sfdk device list

# Set active device
sfdk config device "Xperia 10 III"

# Deploy to device
sfdk deploy --sdk

# Open a shell inside the build engine
sfdk build-shell

Соглашения о структуре проекта

Приложения SailfishOS / Harbour следуют строгим соглашениям:

harbour-appname/          ← Must start with "harbour-"
├── CMakeLists.txt
├── rpm/
│   ├── harbour-appname.spec              ← RPM packaging
│   ├── harbour-appname.changes.in        ← Changelog file
│   └── harbour-appname.changes.run.in    ← Changelog script file
├── src/
│   └── main.cpp               ← Uses SailfishApp::main()
├── qml/
│   ├── harbour-appname.qml    ← ApplicationWindow root
│   ├── pages/
│   └── cover/
├── icons/
│   ├── 86x86/harbour-appname.png
│   ├── 108x108/harbour-appname.png
│   ├── 128x128/harbour-appname.png
│   └── 172x172/harbour-appname.png
├── translations/
│   └── harbour-appname.ts
└── harbour-appname.desktop

Поддержать проект

Liberapay receiving

Лицензия

MIT

Install Server
A
security – no known vulnerabilities
A
license - permissive license
A
quality - A tier

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ilpianista/sailfishos-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server