@brojs/mcp
v1.10.1
Published
MCP (Model Context Protocol) сервер для AI агентов с поддержкой email и генерации изображений
Maintainers
Readme
@brojs/mcp
MCP (Model Context Protocol) сервер для AI агентов с поддержкой email и генерации изображений через Stable Diffusion.
Установка
npm install -g @brojs/mcpИли использовать через npx:
npx @brojs/mcpПеременные окружения
Сервер поддерживает настройку через переменные окружения:
# Stable Diffusion настройки
SD_URL=http://127.0.0.1:7860
SD_OUTPUT_DIR=./output
SD_STEPS=30
SD_CFG_SCALE=8.0
# SMTP настройки для отправки email
SMTP_HOST=smtp.gmail.com
SMTP_PORT=587
SMTP_SECURE=false
[email protected]
SMTP_PASS=your-app-passwordПриоритет настроек
Настройки применяются в следующем порядке (каждый следующий перезаписывает предыдущий):
- Переменные окружения (самый низкий приоритет)
- Конфигурационный файл (
--config) - Параметры командной строки (самый высокий приоритет)
Использование
Запуск с переменными окружения
# Установите переменные окружения
export SD_URL=http://127.0.0.1:7860
export SMTP_HOST=smtp.gmail.com
export [email protected]
export SMTP_PASS=your-password
# Запустите сервер
npx @brojs/mcpЗапуск с параметрами командной строки
# Базовый запуск
npx @brojs/mcp
# С конфигурацией Stable Diffusion
npx @brojs/mcp --sd-url http://127.0.0.1:7860 --sd-output ./generated-images
# С конфигурацией email
npx @brojs/mcp --mailer-host smtp.gmail.com --mailer-port 587 --mailer-user [email protected] --mailer-pass password
# Полная конфигурация
npx @brojs/mcp \
--sd-url http://127.0.0.1:7860 \
--sd-output ./images \
--sd-steps 30 \
--mailer-host smtp.gmail.com \
--mailer-port 587 \
--mailer-user [email protected] \
--mailer-pass passwordЗапуск с файлом конфигурации
Создайте файл mcp-config.json:
{
"stableDiffusion": {
"url": "http://127.0.0.1:7860",
"outputDir": "./generated-images",
"defaultSteps": 30,
"defaultCfgScale": 8.0
},
"mailer": {
"host": "smtp.gmail.com",
"port": 587,
"secure": false,
"auth": {
"user": "[email protected]",
"pass": "your-app-password"
}
}
}Затем запустите:
npx @brojs/mcp --config ./mcp-config.jsonДоступные инструменты (Tools)
Email инструменты
send_email
Отправка email сообщения.
Параметры:
to(string, обязательный) - Email получателяsubject(string, обязательный) - Тема письмаtext(string) - Текст письма (plain text)html(string) - HTML содержимое письма
Пример:
{
"to": "[email protected]",
"subject": "Привет от AI агента",
"text": "Это автоматическое сообщение",
"html": "<h1>Привет!</h1><p>Это автоматическое сообщение</p>"
}Stable Diffusion инструменты
generate_image
Генерация изображения из текстового описания (text-to-image).
Параметры:
prompt(string, обязательный) - Текстовое описание изображенияnegative_prompt(string) - Что НЕ должно быть на изображенииsteps(number) - Количество шагов диффузии (20-50)width(number) - Ширина изображения (кратно 64)height(number) - Высота изображения (кратно 64)batch_size(number) - Количество изображений
Пример:
{
"prompt": "a beautiful sunset over the ocean, golden hour, cinematic",
"negative_prompt": "blurry, lowres, deformed",
"steps": 30,
"width": 768,
"height": 512,
"batch_size": 1
}upscale_image
Улучшение качества и увеличение разрешения изображения.
Параметры:
image_base64(string, обязательный) - Изображение в base64upscaling_resize(number) - Коэффициент увеличения (2, 4)upscaler_1(string) - Модель upscaler (R-ESRGAN 4x+, LDSR)
Пример:
{
"image_base64": "iVBORw0KGgoAAAANSUhEUgAA...",
"upscaling_resize": 2,
"upscaler_1": "R-ESRGAN 4x+"
}interrogate_image
Получение текстового описания (промпта) из изображения.
Параметры:
image_base64(string, обязательный) - Изображение в base64model(string) - Модель анализа:clipилиdeepdanbooru
Пример:
{
"image_base64": "iVBORw0KGgoAAAANSUhEUgAA...",
"model": "clip"
}img2img
Модификация существующего изображения на основе нового промпта.
Параметры:
image_base64(string, обязательный) - Исходное изображение в base64prompt(string, обязательный) - Описание желаемого результатаdenoising_strength(number) - Сила изменений (0.0-1.0, рекомендуется 0.75)
Пример:
{
"image_base64": "iVBORw0KGgoAAAANSUhEUgAA...",
"prompt": "same image but in anime style",
"denoising_strength": 0.75
}Интеграция с AI ассистентами
Claude Desktop
Добавьте в конфигурацию Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json на macOS):
{
"mcpServers": {
"brojs": {
"command": "npx",
"args": [
"@brojs/mcp",
"--config",
"/path/to/your/mcp-config.json"
]
}
}
}Cline (VS Code)
Добавьте в настройки MCP серверов:
{
"mcpServers": {
"brojs": {
"command": "npx",
"args": ["@brojs/mcp", "--sd-url", "http://127.0.0.1:7860"]
}
}
}Параметры командной строки
| Параметр | Описание | По умолчанию |
|----------|----------|--------------|
| -c, --config <path> | Путь к файлу конфигурации JSON | - |
| --sd-url <url> | URL Stable Diffusion API | http://127.0.0.1:7860 |
| --sd-output <dir> | Директория для изображений | текущая |
| --sd-steps <number> | Шаги диффузии по умолчанию | 30 |
| --mailer-host <host> | SMTP хост | - |
| --mailer-port <port> | SMTP порт | 587 |
| --mailer-user <user> | SMTP пользователь | - |
| --mailer-pass <password> | SMTP пароль | - |
Требования
Для Stable Diffusion:
- Запущенный Stable Diffusion WebUI с флагом
--api - По умолчанию подключается к
http://127.0.0.1:7860
Для Email:
- SMTP сервер (Gmail, Outlook и др.)
- Учетные данные для аутентификации
Примеры использования
Пример 1: Генерация изображения через AI агента
После подключения MCP сервера к вашему AI ассистенту, вы можете попросить:
"Сгенерируй изображение красивого заката над океаном"
AI агент вызовет инструмент generate_image и вернёт путь к сгенерированному файлу.
Пример 2: Отправка email
"Отправь email на [email protected] с темой 'Отчет' и текстом 'Отчет готов'"
AI агент вызовет инструмент send_email.
Пример 3: Улучшение изображения
"Улучши это изображение, увеличь в 4 раза" (прикладывая изображение)
AI агент конвертирует изображение в base64 и вызовет upscale_image.
Разработка
# Клонировать репозиторий
git clone <repo-url>
cd packages/mcp
# Установить зависимости
npm install
# Сборка
npm run build
# Разработка с автоматической пересборкой
npm run dev
# Запуск локально
node bin/server.jsТестирование с LangChain
В пакете предоставлен минималистичный тестовый скрипт для проверки работы MCP сервера с LangChain:
# 1. Скопируйте пример настроек
cp env.example .env
# Отредактируйте .env файл с вашими настройками
# 2. Установите dev зависимости
npm install
# 3. Соберите проект
npm run build
# 4. Запустите тест
npx ts-node test-langchain.tsЧто делает тест:
- ✅ Подключается к MCP серверу
- ✅ Загружает все доступные инструменты
- ✅ Создает LangChain агента с LLM
- ✅ Агент автоматически выбирает и вызывает нужные инструменты
- ✅ Демонстрирует генерацию изображений через естественный запрос
- ✅ Демонстрирует отправку email через естественный запрос
Пример кода:
import { MultiServerMCPClient } from '@langchain/mcp-adapters';
import { ChatOpenAI } from '@langchain/openai';
import { createReactAgent } from '@langchain/langgraph/prebuilt';
// 1. Загружаем конфигурацию из JSON файла
const config = JSON.parse(readFileSync('./mcp-servers.json', 'utf-8'));
// 2. Создаем клиент и получаем инструменты
const client = new MultiServerMCPClient({
mcpServers: config.mcpServers,
useStandardContentBlocks: true,
});
const tools = await client.getTools();
// 3. Создаем агента
const llm = new ChatOpenAI({ /* ... */ });
const agent = createReactAgent({ llm, tools });
// 4. Агент сам выбирает инструмент
const result = await agent.invoke({
messages: [{
role: 'user',
content: 'Сгенерируй изображение заката над морем'
}],
});Формат mcp-servers.json:
{
"mcpServers": {
"brojs": {
"command": "node",
"args": ["bin/server.js"],
"env": {
"SD_URL": "http://127.0.0.1:7860",
"SMTP_HOST": "smtp.gmail.com",
"SMTP_USER": "[email protected]",
"SMTP_PASS": "password"
}
}
}
}Использование как библиотека
import { BrojsMCPServer, MCPConfig } from '@brojs/mcp';
const config: MCPConfig = {
stableDiffusion: {
url: 'http://127.0.0.1:7860',
outputDir: './images',
},
mailer: {
host: 'smtp.gmail.com',
port: 587,
auth: {
user: '[email protected]',
pass: 'your-password',
},
},
};
const server = new BrojsMCPServer(config);
await server.run();Зависимости
@brojs/mailer- Отправка email@brojs/stable-diffusion- Генерация изображений@modelcontextprotocol/sdk- MCP SDKcommander- CLI парсинг
Лицензия
ISC
