Skip to main content
Glama
intern-analytics

Brand MCP Server

MCP для GBL

Безопасный многопользовательский сервер протокола контекста модели (MCP) для доступа к базам данных Postgres конкретных брендов. Этот сервер поддерживает как локальное выполнение, так и удаленный доступ с аутентификацией через HTTP/SSE.

🔐 Аутентификация и безопасность

Этот сервер использует аутентификацию через Bearer-токен. Доступ к конечным точкам /sse и /messages требует наличия действительного API-ключа с префиксом gbl-.

CLI для управления ключами

Управляйте своими ключами локально или на EC2 с помощью встроенного модуля аутентификации:

# Activate your environment first
source .venv/bin/activate  # Linux/EC2
.\.venv\Scripts\activate   # Windows

### 6. Manage Multi-Tenant API Keys (Admin API)
To provision unique database tenants to separate keys, we host an internal Admin REST API.
This API handles secrets, so it should **only** be accessed from localhost on your EC2 instance (binds to `:8001`).

### Option A: Use it securely locally via SSH Tunneling (Recommended)
You can build a secure tunnel from your Windows PC directly to your EC2 instance so you can interact with the Admin API from your own local browser (like Swagger UI) or local terminal smoothly:
```powershell
# Run this on your local Windows PC
ssh -i "path/to/your/key.pem" -L 8001:127.0.0.1:8001 ubuntu@YOUR_EC2_IP

Теперь вы можете взаимодействовать с API или просматривать Swagger UI прямо со своего локального компьютера: http://127.0.0.1:8001/docs

Вариант B: Использование непосредственно на EC2

Чтобы запустить Admin API на EC2:

python3 -m src.admin_api

После запуска Admin API вы можете создать новый ключ арендатора бренда из другого окна терминала EC2:

curl -X POST http://127.0.0.1:8001/keys/generate \
     -H "Content-Type: application/json" \
     -d '{"db_user": "brand_a_user", "db_pass": "supersecret"}'

(Ответ будет содержать api_key, назначенный brand_a_user.)

Другие служебные конечные точки:

  • Список арендаторов: curl http://127.0.0.1:8001/keys

  • Отзыв арендатора: curl -X DELETE http://127.0.0.1:8001/keys/brand_a_user


🖥️ Развертывание на EC2 (постоянная работа с systemd)

Для промышленной эксплуатации мы используем systemd, чтобы гарантировать автоматический запуск сервера при перезагрузке и его перезапуск в случае сбоя.

1. Настройка проекта

git clone https://github.com/intern-analytics/MCPforGBL.git
cd MCPforGBL
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt

2. Конфигурация

Создайте файл .env для учетных данных базы данных (добавлен в gitignore):

nano .env
# Add DB_USER, DB_PASS, DB_HOST, etc.

3. Создание системной службы

Создайте файл службы:

sudo nano /etc/systemd/system/mcp-server.service

Вставьте следующее (при необходимости скорректируйте пути):

[Unit]
Description=Brand MCP FastAPI Server
After=network.target

[Service]
User=ubuntu
WorkingDirectory=/home/ubuntu/projects/MCPforGBL
ExecStart=/home/ubuntu/projects/MCPforGBL/.venv/bin/python -m src.server2
Restart=always
RestartSec=3

[Install]
WantedBy=multi-user.target

4. Включение и запуск

sudo systemctl daemon-reload
sudo systemctl enable mcp-server
sudo systemctl start mcp-server
sudo systemctl status mcp-server

🤖 Подключение к Claude

Вариант A: Использование Claude.ai (веб-приложение)

Поскольку этот сервер открыт публично через Nginx и защищен HTTPS-сертификатом Let's Encrypt, вы можете подключиться к нему прямо в браузере.

  1. Перейдите в настройки Claude.ai -> Developer / Connectors.

  2. Нажмите Add custom connector.

  3. Вставьте свой безопасный URL: https://mcpforgbl.duckdns.org/sse?token=gbl-YOUR_KEY_HERE

  4. Подключитесь и делайте запросы!

Вариант B: Использование приложения Claude Desktop (HTTPS)

Обновите файл %APPDATA%\Claude\claude_desktop_config.json в Windows.

IMPORTANT

ИспользуйтеC:\\PROGRA~1\\nodejs\\npx.cmd, чтобы избежать проблем с пробелами в пути к файлу в Windows.

{
  "mcpServers": {
    "gbl-data-lake": {
      "command": "C:\\PROGRA~1\\nodejs\\npx.cmd",
      "args": [
        "-y",
        "mcp-remote",
        "https://mcpforgbl.duckdns.org/sse?token=gbl-YOUR_KEY_HERE"
      ]
    }
  }
}

Вариант C: Использование приложения Claude Desktop (HTTP IP-адрес и заголовок Bearer)

Если вы предпочитаете подключаться напрямую к IP-адресу экземпляра EC2 без использования URL DuckDNS или хотите передавать токен в заголовке, а не в качестве параметра URL, используйте эту конфигурацию:

{
  "mcpServers": {
    "gbl-data-lake": {
      "command": "C:\\PROGRA~1\\nodejs\\npx.cmd",
      "args": [
        "-y",
        "mcp-remote",
        "http://YOUR-EC2-PUBLIC-IP:8000/sse",
        "--allow-http",
        "--header",
        "Authorization: Bearer gbl-YOUR_KEY_HERE"
      ]
    }
  }
}

📈 План масштабирования

Наша платформа разработана для безопасного и эффективного масштабирования с помощью надежной системы управления доступом на основе ролей.

Мы планируем масштабировать управление пользователями путем создания отдельных выделенных API-ключей для каждого пользователя/арендатора. В нашей архитектуре API-ключ выступает не просто как токен аутентификации — он по своей сути определяет полный профиль разрешений пользователя. Сам ключ сообщает серверу, какой именно объем доступа есть у пользователя.

Такой подход позволяет нам жестко контролировать взаимодействие с базой данных и доступность инструментов на основе учетных записей с ограниченным доступом и настроенных файлов навыков, гарантируя, что каждый пользователь взаимодействует только с теми данными и возможностями, на использование которых он явно уполномочен.


🛠️ Разработка

  • Локальный сервер: python -m src.server (стандартный stdio)

  • SSE-сервер: python -m src.server2 (HTTP/SSE через FastAPI)

  • Утилиты аутентификации: src/auth.py

  • Логика базы данных: src/db.py

-
security - not tested
F
license - not found
-
quality - not tested

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/intern-analytics/MCPforGBL'

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