MCP server for managing getstack templates from Supabase database with RAG search
Project description
GetStack Templates MCP Server
MCP сервер для управления шаблонами GetStack из базы данных Supabase с поддержкой RAG поиска.
Особенности
- 📋 Получение списка всех доступных шаблонов
- 🔍 RAG поиск шаблонов с использованием векторных эмбеддингов
- 🔄 Fallback на поиск по ключевым словам
- 📦 Клонирование шаблонов в указанную папку
- 🔐 Безопасная архитектура без прямого доступа к OpenAI API
Архитектура
MCP сервер работает через API фронтенда для генерации эмбеддингов, что обеспечивает:
- Безопасность: OpenAI API ключ хранится только на сервере фронтенда
- Централизованную логику: Вся логика поиска и обработки в одном месте
- Fallback механизмы: Автоматический переход на поиск по ключевым словам
Установка
cd mcp
uv sync
Конфигурация
Установите переменные окружения:
# URL фронтенд API (по умолчанию http://localhost:3000)
export FRONTEND_API_URL="http://localhost:3000"
Запуск
cd mcp
uv run python server.py
Доступные функции
get_templates()
Получает список всех доступных шаблонов из базы данных Supabase.
Возвращает:
success: Статус операцииtemplates: Список шаблонов с базовой информациейcount: Количество найденных шаблонов
search_templates(query, limit=10, similarity_threshold=0.7, auth_token=None)
Выполняет RAG поиск шаблонов с использованием векторных эмбеддингов.
Параметры:
query: Поисковый запросlimit: Максимальное количество результатов (по умолчанию 10)similarity_threshold: Минимальный порог сходства от 0 до 1 (по умолчанию 0.7)auth_token: Токен авторизации для доступа к API (опционально)
Возвращает:
success: Статус операцииtemplates: Список шаблонов отсортированных по релевантностиsearch_type: Тип поиска ("rag" или "keyword")message: Дополнительная информация
search_templates_via_frontend_api(query, auth_token=None)
Выполняет поиск шаблонов используя готовую логику фронтенда.
Параметры:
query: Поисковый запросauth_token: Токен авторизации для доступа к API (опционально)
Возвращает:
success: Статус операцииtemplates: Список шаблонов отсортированных по релевантностиsearch_type: Тип поиска ("rag" или "keyword")message: Информация о результатах поиска
use_template(template_id, current_folder)
Клонирует указанный шаблон в заданную папку.
Параметры:
template_id: ID шаблона в базе данных Supabasecurrent_folder: Целевая папка для копирования шаблона (полный абсолютный путь)
Возвращает:
success: Статус операцииtemplate_name: Название шаблонаfiles_copied: Количество скопированных файловtarget_folder: Путь к целевой папке
Примеры использования
Поиск React шаблонов
# Поиск с использованием RAG
result = search_templates("React TypeScript components")
# Поиск через фронтенд API
result = search_templates_via_frontend_api("React TypeScript components")
Использование шаблона
# Клонирование шаблона в текущую папку
result = use_template("template-id-123", "/path/to/project")
Обработка ошибок
Все функции возвращают структурированные ответы с полем success:
success: true- операция выполнена успешноsuccess: false- произошла ошибка, детали в полеerror
Fallback механизмы
- RAG поиск недоступен: Автоматический переход на поиск по ключевым словам
- Фронтенд API недоступен: Прямой поиск в базе данных Supabase
- Сетевые ошибки: Подробные сообщения об ошибках с рекомендациями
Безопасность
- OpenAI API ключ никогда не передается в MCP сервер
- Все запросы к внешним API проходят через фронтенд
- Поддержка токенов авторизации для защищенных эндпоинтов
- Валидация всех входных параметров
Логирование
Сервер ведет подробные логи всех операций:
- Успешные операции: INFO уровень
- Ошибки: ERROR уровень с полными трассировками
- Предупреждения: WARNING уровень для fallback операций
Лицензия
MIT
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file getstack_mcp-2.3.0.tar.gz.
File metadata
- Download URL: getstack_mcp-2.3.0.tar.gz
- Upload date:
- Size: 77.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
32e75bd8e2c2bd4204467876d838c4bfffdfdd65569746c3f762c30b48966486
|
|
| MD5 |
5aeabba123822db4a3e213ff5b7da898
|
|
| BLAKE2b-256 |
4aaebf2664251fb148c62a7bfe646c99ab9c1fba6f50197f150a3613dc8b43ba
|
File details
Details for the file getstack_mcp-2.3.0-py3-none-any.whl.
File metadata
- Download URL: getstack_mcp-2.3.0-py3-none-any.whl
- Upload date:
- Size: 82.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
716b0bd11cd456ee6cd3fa52019a9ef9afb76fbea8a2f11f732e531620d840d8
|
|
| MD5 |
38730373667ca6eb88a8f922bcf528f3
|
|
| BLAKE2b-256 |
f03f5ef2609f836f137d6c23f8f99530a0d25a2632831ea6d4a3f8c7a643f563
|