Оглавление
- Сервер MCP privateGPT
- Что такое МКП?
- Взаимодействие между агентами, LLM и серверами MCP
- Преимущества использования агентов в этом контексте
- Обзор
- Обзор функций безопасности
- 1. Безопасность транспортного уровня (TLS)
- 2. Шифрование пароля
- 3. Управление ключами
- 4. Расшифровка на сервере
- 5. Токены авторизации
- 6. Ограничение генерации ключей (Keygen)
- 7. Контроль доступа на основе сертификатов (CBAC)
- 8. Безопасная конфигурация
- 9. Ведение журнала и мониторинг
- Краткое содержание
- Инструмент для генерации зашифрованных паролей
- Инструмент для расшифровки зашифрованного пароля
- Обзор функций сервера privateGPT
- Установка
- Описание конфигурации
- Конфигурация прокси-сервера
- Конфигурация сервера
- Ограничения
- Ведение журнала
- Активация/деактивация функции
- ВКЛЮЧИТЬ_ЛОГИН
- ВКЛЮЧИТЬ_ВЫХОД
- ВКЛЮЧИТЬ_ЧАТ
- ВКЛЮЧИТЬ_ПРОДОЛЖЕНИЕ_ЧАТ
- ВКЛЮЧИТЬ_ПОЛУЧЕНИЕ_ИНФОРМАЦИИ_О_ЧАТЕ
- ВКЛЮЧИТЬ_УДАЛИТЬ_ВСЕ_ЧАТЫ
- ВКЛЮЧИТЬ_УДАЛИ��Ь_ЧАТ
- ВКЛЮЧИТЬ_СПИСОК_ГРУПП
- ВКЛЮЧИТЬ_ГРУППУ_МАГАЗИНА
- ВКЛЮЧИТЬ_УДАЛИТЬ_ГРУППУ
- ВКЛЮЧИТЬ_СОЗДАНИЕ_ИСТОЧНИКА
- ВКЛЮЧИТЬ_РЕДАКТИРОВАНИЕ_ИСТОЧНИКА
- ВКЛЮЧИТЬ_УДАЛИТЬ_ИСТОЧНИК
- ВКЛЮЧИТЬ_GET_SOURCE
- ВКЛЮЧИТЬ_СПИСОК_ИСТОЧНИКОВ
- ENABLE_STORE_USER
- ВКЛЮЧИТЬ_РЕДАКТИРОВАНИЕ_ПОЛЬЗОВАТЕЛЯ
- ВКЛЮЧИТЬ_УДАЛИТЬ_ПОЛЬЗОВАТЕЛЯ
- ВКЛЮЧИТЬ_РЕАКТИВАЦИЮ_ПОЛЬЗОВАТЕЛЯ
- Использование
- Структура проекта
- Лицензия
Сервер MCP privateGPT
Реализация сервера Model Context Protocol (MCP), которая позволяет использовать privateGPT в качестве агента для вашего предпочтительного клиента MCP. Это обеспечивает бесшовную интеграцию между мощными возможностями privateGPT и любым совместимым с MCP приложением.
Что такое МКП?
MCP — это открытый протокол, который стандартизирует, как приложения предоставляют контекст LLM. Думайте о MCP как о порте USB-C для приложений ИИ. Так же, как USB-C предоставляет стандартизированный способ подключения ваших устройств к различным периферийным устройствам и аксессуарам, MCP предоставляет стандартизированный способ подключения моделей ИИ к различным источникам данных и инструментам.
Почему МКП?
MCP помогает вам создавать агентов и сложные рабочие процессы поверх LLM. LLM часто нуждаются в интеграции с данными и инструментами, и MCP обеспечивает:
- Растущий список готовых интеграций, к которым ваш LLM может напрямую подключиться
- Гибкость переключения между поставщиками и вендорами LLM
- Лучшие практики по защите данных в вашей инфраструктуре
Как это работает
По своей сути MCP следует архитектуре клиент-сервер, где хост-приложение может подключаться к нескольким серверам:
- Хосты MCP : программы, такие как приложения, Claude Desktop, IDE или инструменты ИИ, которым требуется доступ к данным через MCP.
- Клиенты MCP : клиенты протокола, поддерживающие соединения 1:1 с серверами.
- Серверы MCP : легкие программы, каждая из которых предоставляет определенные возможности через стандартизированный протокол контекста модели.
- Локальные источники данных : файлы, базы данных и службы вашего компьютера, к которым серверы MCP могут получить безопасный доступ.
- Удаленные службы : внешние системы, доступные через Интернет (например, через API), к которым могут подключаться серверы MCP.
Обзор
Этот сервер обеспечивает мост между клиентами MCP и API privateGPT, позволяя вам:
- Общайтесь с privateGPT, используя как публичные, так и частные базы знаний
- Создавайте и управляйте источниками знаний
- Организуйте источники в группы
- Управление доступом с помощью групповых разрешений
Почему агенты
Агент по отношению к LLM (большим языковым моделям) и серверам MCP — это специализированный программный компонент, который действует как посредник между языковыми моделями и приложениями. Он решает такие задачи, как обработка запросов, взаимодействие с LLM через MCP, управление рабочими процессами, обеспечение безопасности и эффективности в рамках всей системы и многое другое. Используя агентов, можно разрабатывать сложные приложения на основе ИИ так, чтобы они были эффективными, безопасными и масштабируемыми. Код для агентов в этом репозитории можно использовать для внедрения в собственные решения/приложения.
Взаимодействие между агентами, LLM и серверами MCP
Взаимодействие этих компонентов позволяет разрабатывать мощные, масштабируемые и безопасные приложения ИИ. Ниже приведен упрощенный сценарий, иллюстрирующий это взаимодействие:
- Пользовательский ввод: пользователь отправляет запрос через пользовательский интерфейс, размещенный на сервере MCP.
- Обработка агентом: агент на сервере MCP получает запрос, проверяет его и подготавливает для LLM.
- Взаимодействие с LLM: агент пересылает запрос в LLM, который генерирует ответ.
- Обработка ответа: агент получает ответ от LLM, при необходимости обрабатывает его дополнительно (например, форматирует, интегрирует с другими источниками данных) и отправляет его обратно пользователю.
- Безопасность и ведение журнала: в ходе этого процесса агент отслеживает взаимодействия, обеспечивает соблюдение политик безопасности и регистрирует соответствующую информацию для последующего анализа.
Преимущества использования агентов в этом контексте
- Модульность: агенты позволяют четко разделить обязанности, что упрощает обслуживание и масштабирование системы.
- Безопасность: Централизованное управление доступом и мониторинг действий помогают минимизировать риски безопасности.
- Эффективность: автоматизированные агенты могут выполнять задачи быстрее и более последовательно, чем ручные процессы.
- Гибкость: Агенты можно легко адаптировать или расширить для поддержки новых функций или изменений в бизнес-требованиях.
Важность шифрования паролей
В любом приложении, обрабатывающем конфиденциальные данные, безопасность имеет первостепенное значение. Этот сервер управляет двумя критическими наборами учетных данных:
- Заголовки прокси: используются, например, HAProxy для аутентификации и управления трафиком.
- Пароли доступа LLM: используются для защиты доступа к большим языковым моделям.
Хранение этих паролей в открытом виде создает значительные риски безопасности, включая несанкционированный доступ и потенциальные утечки данных. Чтобы снизить эти риски, важно шифровать эти пароли и обрабатывать только их зашифрованный текст в системе.
Преимущества использования только шифротекста
- Повышенная безопасность: даже если злоумышленник получит доступ к файлам конфигурации или переменным среды, зашифрованные пароли останутся непонятными без соответствующих ключей дешифрования.
- Соответствие требованиям: шифрование помогает соблюдать стандарты и правила безопасности, которые требуют защиты конфиденциальной информации.
- Целостность: гарантирует невозможность подделки паролей, поддерживая целостность механизмов аутентификации.
Безопасность
Для обеспечения защиты данных и безопасной связи между клиентским приложением и сервером реализованы следующие функции безопасности. Эти функции охватывают шифрование, дешифрование, управление ключами и безопасность транспорта.
1. Безопасность транспортного уровня (TLS)
- Для обеспечения безопасности связи между клиентом и сервером можно активировать TLS. Все данные, передаваемые между клиентом и сервером, шифруются с использованием TLS (минимальная версия 1.2).
Почему следует включить TLS между клиентом и сервером?
а) Шифрование связи
- TLS (Transport Layer Security) гарантирует, что все данные, передаваемые между клиентом и сервером, зашифрованы. Это защищает конфиденциальную информацию, такую как пароли, данные кредитных карт и персональные данные, от атак с перехватом (атаки Man-in-the-Middle).
б) Целостность данных
- TLS гарантирует, что передаваемые данные остаются неизменными и неизмененными. Проверка целостности гарантирует, что полученные данные точно такие же, как и отправленные.
в) Аутентификация
- TLS обеспечивает безопасную аутентификацию сервера (и опционально клиента) с помощью цифровых сертификатов. Это не позволяет пользователям стать жертвами фишинговых атак на поддельных веб-сайтах.
г. Защита от атак типа «человек посередине»
- TLS шифрует соединение, делая практически невозможным для злоумышленников перехват или манипуляцию трафиком. Без TLS злоумышленники могли бы захватывать и изменять пакеты данных.
е. Соблюдение стандартов и правил безопасности
- Многие нормативные требования (например, GDPR, PCI-DSS) требуют безопасной передачи данных. TLS является основополагающим компонентом этих требований безопасности.
е. Предотвращение атак понижения и повторного воспроизведения
- TLS защищает от атак, которые пытаются понизить версию соединения до небезопасной (атаки понижения) или повторить ранее действительные запросы (атаки повторного воспроизведения).
Заключение
Включение TLS между клиентом и сервером необходимо для обеспечения конфиденциальности данных, безопасности и целостности связи. Это не только защищает конфиденциальную информацию, но и помогает соответствовать требованиям соответствия и повышает доверие пользователей.
2. Шифрование пароля
Пароли могут быть зашифрованы с помощью криптографии с открытым ключом RSA (Rivest–Shamir–Adleman). Это гарантирует, что конфиденциальные данные, такие как пароли пользователей, никогда не будут передаваться в открытом виде.
Метод
- Шифрование с открытым ключом длиной 2048 бит .
- Заполнение :
RSA_PKCS1_PADDING
для повышения безопасности и предотвращения известных атак с заполнением.
Процесс
- Администратор сервера шифрует пароль клиента с помощью открытого ключа сервера (
id_rsa_public.pem
), выполнивnode security/generate_encrypted_password.js ~/.ssh/id_rsa_public.pem
и передав зашифрованный пароль клиенту. - Альтернатива: Клиент шифрует пароль с помощью открытого ключа сервера (
id_rsa_public.pem
) с помощьюkeygen
- Function. Поэтому функция должна быть включена в конфигурации сервера (privateGPT.env.json
). Важно: Использование этой функции также означает передачу данных по сети. Поэтому убедитесь, что трафик данных защищен и не может быть перехвачен. - Наконец, зашифрованный пароль отправляется на сервер, где он расшифровывается с помощью закрытого ключа сервера.
Преимущества
- Асимметричное шифрование гарантирует, что расшифровать пароль сможет только сервер.
- Даже если канал связи скомпрометирован, зашифрованные данные остаются в безопасности.
3. Управление ключами
Для обеспечения безопасности процессов передачи данных и шифрования соблюдаются следующие принципы управления ключами:
Открытый ключ
- Надежно хранится на сервере (
id_rsa.pub
). - Используется только для шифрования и не представляет угрозы безопасности в случае раскрытия.
PEM-ключ
- Надежно хранится на сервере (
id_rsa_public.pem
). - Необходимо создать с использованием публичного сертификата (см.: Конфигурация сервера )
Закрытый ключ
- Надежно хранится на сервере (
id_rsa
). - Ограниченный доступ с соответствующими разрешениями на файл (
chmod 600
). - Используется исключительно для операций дешифрования.
Поворот ключа
- Ключи можно менять периодически или при обнаружении инцидента безопасности. Важно: если они перевыпускаются, клиенты или агенты AI немедленно теряют доступ к серверу MCP и требуют новый ключ RSA (зашифрованный пароль)!
- Старые ключи надежно аннулируются.
4. Расшифровка на сервере
Расшифровка выполняется исключительно на сервере с использованием закрытого ключа:
Процесс
- Сервер получает зашифрованный пароль от клиента.
- Закрытый ключ расшифровывает пароль, чтобы получить исходный открытый текст.
- Расшифрованный пароль используется внутри системы (например, для аутентификации) и никогда не сохраняется в открытом виде.
Безопасное обращение
- Расшифрованные пароли существуют в памяти только на время обработки.
- Безопасные методы управления памятью гарантируют немедленное удаление конфиденциальных данных после использования.
Проверка сертификата
- Сертификаты проверяются с обеих сторон, чтобы гарантировать подлинность сервера и клиента.
- При желании можно включить взаимный TLS для повышения безопасности.
5. Токены авторизации
Токены используются для аутентификации запросов и гарантируют, что доступ к системе могут получить только авторизованные пользователи:
Управление токенами
- Токены генерируются при успешном входе в систему.
- Они недолговечны и автоматически сгорают по истечении заданного времени.
- Токены подписываются с использованием HMAC или RSA, что делает их защищенными от несанкционированного доступа.
6. Ограничение генерации ключей (Keygen)
Для предотвращения несанкционированного использования системы генерация ключей ( keygen
) ограничена:
Конфигурация
- Сервер имеет опцию конфигурации (
ALLOW_KEYGEN
) для включения или отключения генерации ключей. - Попытки вызвать функцию генератора ключей при отключенной функции приводят к сообщению об ошибке.
Аудит ведения журнала
- Все операции по генерации ключей регистрируются в целях аудита и мониторинга.
7. Контроль доступа на основе сертификатов (CBAC)
- Так как агент не требует пароля при активации аутентификации сертификата и входит на сервер с помощью ключа, он автоматически блокируется на этом сервере. Если он захочет войти на другой сервер MCP privateGPT, эта попытка входа будет отклонена, так как ключ проверяется по личному сертификату сервера.
Функции
- Такие функции, как
keygen
,store_user
иedit_source
доступны только для авторизованных ролей. - Попытки несанкционированного доступа отклоняются с предоставлением подробных сообщений об ошибках.
Конфигурация
- Включенные или отключенные функции можно указать в конфигурации сервера (объект
Functions
).
8. Безопасная конфигурация
Конфигурация сервера содержит несколько опций, связанных с безопасностью:
SSL_VALIDATE
- Проверяет сертификаты SSL/TLS для обеспечения безопасной связи.
- Может быть включен или отключен в зависимости от требований среды (например, тестирование или производство).
PW_ENCRYPTION
- Включает или отключает шифрование пароля.
- Обеспечивает совместимость в средах, где шифрование невозможно.
9. Ведение журнала и мониторинг
Все события, связанные с безопасностью, регистрируются для мониторинга и устранения неполадок:
Зарегистрированные события
- Неудачные попытки входа в систему.
- Запросы на генерацию ключей.
- Попытки несанкционированного доступа.
- Ошибки шифрования и дешифрования.
Краткое содержание
Реализованные функции безопасности обеспечивают:
- Конфиденциальность конфиденциальных данных благодаря шифрованию и безопасной передаче.
- Целостность операций благодаря надежному управлению ключами и проверке токенов.
- Настраиваемый контроль доступа к функциям системы на основе ролей .
- Комплексный мониторинг для упреждающего обнаружения и реагирования на угрозы безопасности.
В совокупности эти меры обеспечивают безопасную среду для клиент-серверного взаимодействия и обработки данных.
Обзор функций сервера privateGPT
Сервер privateGPT предлагает надежный набор функций, разработанных для обеспечения эффективной, гибкой и безопасной связи с протоколом Model Context Protocol (MCP). Ниже приведен обзор основных функций и возможностей, доступных на сервере.
Основные характеристики
1. Аутентификация и авторизация
- Функциональность входа : аутентификация пользователей с помощью адреса электронной почты и пароля для генерации токенов доступа.
- Функция выхода из системы : безопасная отмена действия токенов пользователя для завершения сеансов.
2. Управление чатом
- Начать чат : начать беседу с сервером, при желании используя общедоступные базы знаний или контексты определенных групп.
- Продолжить чат : возобновите текущий разговор, указав идентификатор чата и последующее сообщение.
- Извлечение информации о чате : извлечение метаданных и сообщений для определенного чата по его идентификатору.
- Удалить все чаты : удаляет предыдущие истории чатов выполняющего пользователя (историю чатов).
- Удалить чат : удаляет текущий чат выполняющего пользователя.
3. Управление группой
- Список групп : просмотр персональных и назначаемых групп, доступных пользователю.
- Создание групп : добавление новых групп с названиями и описаниями для организационных целей.
- Удалить группы : удалить существующие группы (если включено в конфигурации).
4. Управление источниками
- Создание источников : добавление новых источников с контентом и назначение их определенным группам.
- Редактировать источники : обновить существующие источники новым контентом или метаданными.
- Удалить источники : Удалите источники, которые больше не нужны.
- Извлечение источников : получение информации о конкретном источнике по его идентификатору.
- Список источников : просмотр всех источников, назначенных определенной группе.
5. Управление пользователями
- Создание пользователей : регистрация новых пользователей с настраиваемыми ролями, группами и настройками.
- Редактировать пользователей : обновить информацию о пользователе, включая имя, адрес электронной почты, пароль и роли.
- Удалить пользователей : удалить пользователей из системы (если включено в конфигурации).
- Повторная активация пользователя : повторная активация пользователя, который был ранее деактивирован.
6. Гибкость конфигурации
- Активация/деактивация функций : включение или отключение отдельных функций сервера с помощью файла конфигурации
.env
. - Поддержка языков : настройте системные сообщения сервера на предпочитаемый вами язык (например, английский или немецкий).
- Проверка SSL : включение и выключение проверки SSL для защищенных подключений к серверу.
7. Обработка и регистрация ошибок
- Подробные сообщения об ошибках и ведение журнала для:
- Недействительные запросы
- Ошибки аутентификации
- Проблемы с коммуникацией API
- Настраиваемые ответы при доступе к отключенной функции.
8. Функции безопасности
- Аутентификация на основе токенов : обеспечивает безопасный и контролируемый доступ к функциям сервера.
- Ограниченный групповой доступ : возможность ограничить доступ к
assignableGroups
для повышения конфиденциальности.
Примеры использования
- Поддержка клиентов : используйте функции чата для создания интеллектуальных диалоговых агентов.
- Управление знаниями : управление и извлечение структурированных данных из источников и групп.
- Многопользовательская совместная работа : создавайте, редактируйте и распределяйте пользователей по группам для совместной работы.
- Настраиваемая функциональность : активируйте только те функции, которые необходимы для вашего приложения.
Как использовать
- Скопируйте файл
privateGPT.env.json.example
вprivateGPT.env.json
, например, с помощьюcp .\privateGPT.env.json.example .\privateGPT.env.json
- Настройте сервер, отредактировав файл
privateGPT.env.json
. - Запустите сервер, используя предоставленный скрипт.
- Взаимодействуйте с сервером посредством вызовов API для использования его функций.
Подробные инструкции по использованию и примеры для каждой конечной точки см. в документации API.
PrivateGPT Server — это мощный инструмент для управления структурированными коммуникациями и данными в настраиваемой среде. Настройте его функции в соответствии с вашими потребностями для максимальной эффективности и контроля.
Установка
- Клонируйте репозиторий:
Теперь вам предстоит выбрать: вручную или автоматически.
Manually step-by-step Installation
- Установите
npm
, например:
- Установить зависимости
- Создайте проект:
or Automatic Installation
- Сделайте
InstallMPCServer.sh
исполняемым (Linux):
- Запустите скрипт и все готово. Следите за сообщениями об ошибках и убедитесь, что все в порядке.
Описание конфигурации
Конфигурация прокси-сервера
В этом разделе приведены подробные пояснения настроек Proxy_Config
, используемых в системе.
Use Proxy
Если используется прокси-сервер, необходимо определить заголовок для аутентификации на прокси-сервере.
Ключ | Описание | Пример значения |
---|---|---|
ИСПОЛЬЗОВАТЬ_ПРОКСИ | Определяет, должно ли приложение маршрутизировать | true |
запросы через прокси-сервер. |
Пример конфигурации бэкэнда HAProxy. Принимаются только запросы, содержащие 1234567890ABCDEFHIJ
в заголовке:
Header Encryption
Ключ | Описание | Пример значения |
---|---|---|
ЗАГОЛОВОК_ЗАШИФРОВАННЫЙ | Указывает, зашифрован ли заголовок доступа к пользовательскому прокси-серверу. | true |
"true"
: Заголовок доступа зашифрован. Используйте инструмент шифрования в папке безопасности на сервере, чтобы зашифровать заголовок."false"
: заголовок доступа представляет собой обычный текст.
Access Header
Значение пользовательского заголовка, используемое для аутентификации прокси или контроля доступа. Если HEADER_ENCRYPTED
имеет значение "true"
, это значение должно быть расшифровано перед использованием.
Ключ | Описание | Пример значения |
---|---|---|
ACCESS_HEADER | Используется для прокси-аутентификации или контроля доступа. | 123abc.. |
Примечания
- Убедитесь, что
ACCESS_HEADER
надежно защищен, если дляHEADER_ENCRYPTED
установлено значение"true"
. - Дважды проверьте настройки прокси-сервера, чтобы избежать проблем с подключением.
Конфигурация сервера
Для безопасной аутентификации сертификата создайте файл .env
с вашими учетными данными privateGPT, например privateGPT.env.json. Параметры можно изменить в файле .env
, чтобы настроить сервер и его функции.
Сгенерируйте сертификаты (если у вас нет сертификатов ssh, используйте ssh-keygen -t rsa
), необходимы файлы .pem:
После этого процесса вы можете создать Ciphertext из паролей, используя Encrypted Password Encryption Tool и протестировать шифр с помощью Encrypted Password Decryption Tool. Описание того, как это работает, вы найдете в разделе Security
этого документа.
Далее вам следует предоставить сертификаты SSL/TLS server.crt
и server.key
, чтобы гарантировать шифрование связи с клиентами и агентами. Если вы хотите использовать самоподписанные сертификаты, вы можете сгенерировать их, выполнив следующую команду:
Примечание: Клиенты и агенты могут обнаружить, что сервер использует самоподписанные сертификаты, поскольку они потенциально небезопасны по сравнению с официальными сертификатами, где проверяется организация и т. д. Однако клиенты и агенты могут принимать связь с этими сертификатами с соответствующим параметром (см. описание соответствующих параметров клиента и агента).
Ниже приведен пример файла конфигурации .env
для сервера privateGPT, включая описания для каждой настройки. Настройте эти значения в соответствии с вашей средой и требованиями.
Server Port
Ключ | Описание | Пример значения |
---|---|---|
ПОРТ | Порт, на котором работает сервер MCP. | 5000 |
Language
Система поддерживает из коробки: de
, en
, pt
, es
, nl
, fr
. Каждый язык можно легко добавить, изменив privateGPT-messages.js
. Этот файл должен быть сохранен после изменения в /src
, а также в /dist
.
Ключ | Описание | Пример значения |
---|---|---|
ЯЗЫК | Язык системных сообщений сервера ( en или de ). | "de" |
SSL Validation
Ключ | Описание | Пример значения |
---|---|---|
SSL_VALIDATE | Используйте "false" только в том случае, если сертификат сервера не может быть проверен клиентом. | "false" |
Encryption
Ключ | Описание | Пример значения |
---|---|---|
PW_ENCRYPTION | Если установлено значение "true" сервер принимает только пароли в формате Ciphertext. | "false" |
ПУБЛИЧНЫЙ_КЛЮЧ | Указывает путь в файловой системе к общедоступному PEM-файлу сервера, используемому для RSA. | "~/.ssh/id_rsa_public.pem" |
ЧАСТНЫЙ_КЛЮЧ | Указывает путь в файловой системе к файлу закрытого ключа сервера, используемого для RSA. | "~/.ssh/id_rsa_public.pem" |
SSL/TLS
Ключ | Описание | Пример значения |
---|---|---|
ВКЛЮЧИТЬ_TLS | Если установлено значение "true" сервер обеспечивает только зашифрованную связь TLS с клиентами и агентами. | "true" |
SSL_KEY_PATH | Указывает путь в файловой системе к файлу ключа SSL/TLS сервера, используемому для SSL/TLS. | "~/.ssh/certs/server.key" |
SSL_CERT_PATH | Указывает путь в файловой системе к сертификату сервера, используемому для SSL/TLS. | "~/.ssh/certs/server.crt" |
Restrictions
Ключ | Описание | Пример значения |
---|---|---|
ОГРАНИЧЕННЫЕ_ГРУППЫ | Установка true запрещает клиенту доступ к assignableGroups . | true |
ВКЛЮЧИТЬ_OPEN_AI_COMP_API | Установка true включает режим совместимости с API OpenAI. | false |
Logging
Ключ | Описание | Пример значения |
---|---|---|
WRITTEN_LOGFILE | Включить файл журнала. Если установлено значение false , logs/server.log не будет записан. Если эта опция установлена в значение true , журнал можно получить через `http://:3000' сервера. | true |
LOG_IP-адреса | Записывать IP-адреса клиентов/агентов. Если установлено значение false , эта информация заменяется на \*\*\*\*\* и не может быть восстановлена. | false |
АНОНИМНЫЙ_РЕЖИМ | Отключить все, что связано с ведением журнала. Никакие сообщения, ошибки и т. п. не записываются/не сохраняются и не отображаются. | false\ |
Feature Activation/Deactivation
Управление доступностью отдельных функций сервера. Установите соответствующее значение true
, чтобы включить функцию, или false
, чтобы отключить ее. Отключенные функции вернут сообщение о том, что они недоступны.
Ключ | Описание | Пример значения |
---|---|---|
ВКЛЮЧИТЬ_ЛОГИН | Включает или отключает функцию входа в систему. | true |
ВКЛЮЧИТЬ_ВЫХОД | Включает или отключает функцию выхода из системы. | true |
ВКЛЮЧИТЬ_ЧАТ | Включает или отключает функцию чата. | true |
ВКЛЮЧИТЬ_ПРОДОЛЖЕНИЕ_ЧАТ | Включает или отключает возможность продолжения чата. | true |
ВКЛЮЧИТЬ_ПОЛУЧЕНИЕ_ИНФОРМАЦИИ_О_ЧАТЕ | Включает или отключает получение информации о чате. | true |
ВКЛЮЧИТЬ_УДАЛИТЬ_ВСЕ_ЧАТЫ | Включает или отключает получение информации о чате. | true |
ВКЛЮЧИТЬ_УДАЛИТЬ_ЧАТ | Включает или отключает получение информации о чате. | true |
ВКЛЮЧИТЬ_СПИСОК_ГРУПП | Включает или отключает группы листинга. | true |
ВКЛЮЧИТЬ_ГРУППУ_МАГАЗИНА | Включает или отключает создание группы. | true |
ВКЛЮЧИТЬ_УДАЛИТЬ_ГРУППУ | Включает или отключает удаление группы. | false |
ВКЛЮЧИТЬ_СОЗДАНИЕ_ИСТОЧНИКА | Включает или отключает создание источника. | true |
ВКЛЮЧИТЬ_РЕДАКТИРОВАНИЕ_ИСТОЧНИКА | Включает или отключает редактирование источника. | true |
ВКЛЮЧИТЬ_УДАЛИТЬ_ИСТОЧНИК | Включает или отключает удаление источника. | true |
ВКЛЮЧИТЬ_GET_SOURCE | Включает или отключает получение источника. | true |
ВКЛЮЧИТЬ_СПИСОК_ИСТОЧНИКОВ | Включает или отключает источники листинга. | true |
ENABLE_STORE_USER | Включает или отключает создание пользователя. | true |
ВКЛЮЧИТЬ_РЕДАКТИРОВАНИЕ_ПОЛЬЗОВАТЕЛЯ | Включает или отключает редактирование пользователя. | false |
ВКЛЮЧИТЬ_УДАЛИТЬ_ПОЛЬЗОВАТЕЛЯ | Включает или отключает удаление пользователя. | false |
ВКЛЮЧИТЬ_РЕАКТИВАЦИЮ_ПОЛЬЗОВАТЕЛЯ | Включает или отключает повторную активацию пользователя. | false |
Использование
- Включить функцию : установите соответствующее значение в файле
.env
наtrue
. - Отключить функцию : установите соответствующее значение в файле
.env
наfalse
.- Сервер ответит сообщением о том, что функция отключена.
Пример записи .env
:
Использование
Запустите сервер:
Сервер запустится и будет прослушивать stdio на предмет команд MCP.
Обработка ошибок
Сервер обрабатывает различные сценарии ошибок:
- Ошибки аутентификации
- Ошибки сети
- Недействительные запросы
- Ошибки API
- Ограничение скорости
- Ошибки тайм-аута
Ошибки сопоставляются с соответствующими кодами ошибок MCP и включают подробные сообщения для отладки.
Доступные инструменты
Сгенерировать зашифрованный пароль
Создайте пароль для записи Proxy_Config->Password клиента и/или сервера:
Проверьте сгенерированный зашифрованный пароль
Для проверки шифрования используйте:
Дополнительную информацию см. в разделах Encrypted Password Generation Tool
и Encrypted Password Decryption Tool
ниже.
Инструмент для генерации зашифрованных паролей
Обзор
Инструмент генерации зашифрованных паролей — это скрипт Node.js, разработанный для безопасного шифрования паролей пользователей с использованием криптографии с открытым ключом RSA. Этот инструмент обеспечивает защиту конфиденциальных данных паролей во время передачи и хранения, используя надежные механизмы шифрования. Это важный компонент для систем, требующих безопасной обработки и передачи паролей между клиентами и серверами.
Функции
- Безопасное шифрование: использует криптографию с открытым ключом RSA (Rivest–Shamir–Adleman) для шифрования конфиденциальных паролей.
- Удобный интерфейс: предлагает пользователям безопасно вводить пароли через командную строку.
- Обработка ошибок: предоставляет подробные сообщения об ошибках при отсутствии ключей или проблемах с шифрованием.
- Гибкая интеграция: может быть интегрирована в более крупные системы, требующие безопасной обработки паролей и шифрования.
Как это работает
- Загрузка открытого ключа: скрипт загружает открытый ключ RSA из указанного пути к файлу, указанного в качестве аргумента командной строки.
- Ввод пароля: предлагает пользователю безопасно ввести свой пароль через командную строку.
- Процесс шифрования: используя загруженный открытый ключ и
RSA_PKCS1_PADDING
, скрипт шифрует введенный пароль. - Вывод: зашифрованный пароль отображается в формате Base64, готовый к безопасной передаче или хранению.
Предпосылки
- Node.js: Убедитесь, что Node.js установлен в вашей системе. Вы можете загрузить его с официального сайта Node.js.
- Открытый ключ RSA: у вас должен быть доступ к открытому ключу RSA (
id_rsa_public.pem
), используемому для шифрования пароля.
Установка
- Установить зависимости: Скрипт использует встроенные модули Node.js, поэтому никаких дополнительных зависимостей не требуется. Однако убедитесь, что ваша версия Node.js поддерживает модули ES6.
Использование
- Подготовьте свой открытый ключ RSA: убедитесь, что ваш открытый ключ RSA (
id_rsa_public.pem
) надежно сохранен на вашем сервере MCP. - Запустите скрипт, вы найдете его в каталоге
security
сервера MCP: Выполните скрипт с помощью Node.js, указав путь к вашему открытому ключу в качестве аргумента командной строки.Пример: - Введите свой пароль: при появлении соответствующего запроса введите свой пароль безопасным образом.
- Просмотр зашифрованного пароля: скрипт выведет зашифрованный пароль в формате Base64.
Инструмент для расшифровки зашифрованного пароля
Обзор
Инструмент расшифровки зашифрованных паролей — это скрипт Node.js, разработанный для безопасной расшифровки зашифрованных паролей с использованием криптографии с закрытым ключом RSA. Этот инструмент обеспечивает защиту конфиденциальных данных пароля во время передачи и хранения, используя надежные механизмы шифрования и расшифровки. Для проверки или расшифровки зашифрованного пароля используйте закрытый ключ. Это полезно для обеспечения корректного выполнения шифрования.
Функции
- Безопасное дешифрование: использует криптографию с закрытым ключом RSA (Rivest–Shamir–Adleman) для расшифровки конфиденциальных данных паролей.
- Обработка ошибок: предоставляет подробные сообщения об ошибках при отсутствии ключей или проблемах дешифрования.
- Удобный интерфейс: предлагает пользователям безопасно вводить зашифрованные пароли через командную строку.
- Гибкая интеграция: может быть интегрирована в более крупные системы, требующие безопасной обработки паролей.
Как это работает
- Загрузка закрытого ключа: скрипт загружает закрытый ключ RSA из указанного пути к файлу, указанного в качестве аргумента командной строки.
- Ввод зашифрованного пароля: пользователю предлагается ввести зашифрованный пароль в формате Base64.
- Процесс расшифровки: используя загруженный закрытый ключ и RSA_PKCS1_PADDING, скрипт расшифровывает зашифрованный пароль.
- Вывод: Расшифрованный текстовый пароль отображается в консоли.
Предпосылки
- Node.js: Убедитесь, что Node.js установлен в вашей системе. Вы можете загрузить его с официального сайта Node.js.
- Закрытый ключ RSA: у вас должен быть доступ к закрытому ключу RSA (
id_rsa
) на вашем сервере MCP, который используется для расшифровки пароля.
Установка
- Установить зависимости: Скрипт использует встроенные модули Node.js, поэтому никаких дополнительных зависимостей не требуется. Однако убедитесь, что ваша версия Node.js поддерживает модули ES6.
Использование
- Подготовьте свой закрытый ключ RSA: убедитесь, что ваш закрытый ключ RSA (
id_rsa
) надежно сохранен на вашем компьютере. - Запустите скрипт, вы найдете его в каталоге
security
сервера MCP: :** Выполните скрипт с помощью Node.js, указав путь к вашему закрытому ключу в качестве аргумента командной строки.Пример: - Введите зашифрованный пароль: при появлении запроса введите зашифрованный пароль в формате Base64.
- Просмотр расшифрованного пароля: скрипт выведет расшифрованный пароль в виде открытого текста.
Это расшифрует зашифрованный пароль и отобразит исходное значение.
Примечания
- Убедитесь, что файлы
~/.ssh/id_rsa_public.pem
(открытый ключ) и~/.ssh/id_rsa
(закрытый ключ) существуют и имеют правильные разрешения. - Инструмент шифрования использует открытый ключ, тогда как инструмент дешифрования требует закрытый ключ.
Структура проекта
MCP-сервер для разработок MAS – полный обзор проекта
Этот репозиторий содержит сервер MCP и все связанные с ним клиентские реализации .
Ниже вы найдете полную структуру каталогов , начиная с корня проекта, включая:
clients
(C# .Net, C++, Go, Java, JavaScript, PHP, Python),dist
,docs
,logs
,security
,src
,tests
,ver
и все подпапки/файлы.
Примечание:
Это прямой список каталогов с минимальными комментариями.
Структура проекта (полный список)
Лицензия
Данный проект лицензирован по лицензии MIT — подробности см. в файле LICENSE.
This server cannot be installed
remote-capable server
The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.
Реализация сервера, которая обеспечивает безопасную связь между клиентами MCP и privateGPT, позволяя пользователям общаться с privateGPT с помощью баз знаний и управлять источниками, группами и пользователями через стандартизированный протокол контекста модели.
- Сервер MCP privateGPT
- Почему агенты
- Безопасность
- Безопасность транспортного уровня (TLS)
- Почему следует включить TLS между клиентом и сервером?
- Заключение
- Шифрование пароля
- Управление ключами
- Расшифровка на сервере
- Токены авторизации
- Ограничение генерации ключей (Keygen)
- Контроль доступа на основе сертификатов (CBAC)
- Безопасная конфигурация
- Ведение журнала и мониторинг
- Краткое содержание
- Обзор функций сервера privateGPT
- Инструмент для генерации зашифрованных паролей
- Инструмент для расшифровки зашифрованного пароля
Related Resources
Related MCP Servers
- -securityAlicense-qualityMCP Server simplifies the implementation of the Model Context Protocol by providing a user-friendly API to create custom tools and manage server workflows efficiently.Last updated -43TypeScriptMIT License
- -securityFlicense-qualityFacilitates integration of PrivateGPT with MCP-compatible applications, enabling chat functionalities and secure management of knowledge sources and user access.Last updated -
- AsecurityFlicenseAqualityThis MCP server provides persistent memory integration for chat applications by utilizing a local knowledge graph to remember user information across interactions.Last updated -926,1871JavaScript
- -securityAlicense-qualityProvides MCP (Model Control Protocol) tools for accessing and interacting with Google Chat spaces and messages through OAuth2 authentication.Last updated -6PythonMIT License