sailfishos-mcp
SailfishOS MCP для OpenCode
Сервер MCP (Model Context Protocol), который расширяет возможности OpenCode для разработки приложений под SailfishOS.
Возможности
Инструмент | Что он делает |
| Создает каркас проекта SailfishOS (CMake, RPM spec, QML, иконки, переводы) |
| Собирает проект с помощью |
| Очищает директорию сборки |
| Развертывает RPM-пакет на подключенном устройстве или эмуляторе |
| Возвращает рекомендации по любой теме SailfishOS |
| Перечисляет типичные ошибки для области разработки |
| Генерирует готовые фрагменты кода для распространенных шаблонов |
| Добавляет новую страницу, обложку, сервис, D-Bus интерфейс или C++ бэкенд |
| Добавляет метаданные Chum в RPM spec существующего проекта |
Предварительные требования
Sailfish SDK с
sfdkв вашем PATH (требуется для инструментов сборки/развертывания)
Установка
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.desktop2. Сборка проекта
"Собери мой проект 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 rpm3. Добавление функции
"Добавь страницу сведений под названием 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" }).
Доступные шаблоны
Шаблон | Описание |
| Приложение Sailfish OS Qt Quick (только QML) |
| Приложение Sailfish OS Qt Quick как проект QMake |
| Приложение 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Поддержать проект
Лицензия
MIT
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