semvec/pypi-packages huggingface dataset:
nexi-mcp 1.0.0
Server MCP per le API Back Office di Nexi XPay
Requires Python: >=3.10
Keywords: mcp, nexi, xpay, payments, back-office

# nexi-mcp

[![MCP](https://badge.mcpx.dev/default)](https://modelcontextprotocol.io)
[![PyPI](https://img.shields.io/pypi/v/nexi-mcp)](https://pypi.org/project/nexi-mcp/)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

Server MCP per le API **Back Office di Nexi XPay**. Permette agli assistenti AI (Claude, Cursor, ecc.) di consultare ordini, dettagli transazioni, warning e metodi di pagamento del tuo account merchant Nexi XPay.

## Strumenti

| Strumento | Descrizione |
|-----------|-------------|
| `elenco_ordini` | Elenco ordini con filtri (intervallo date, canale, stato, codice transazione) |
| `dettaglio_ordine` | Dettaglio completo di una transazione specifica |
| `warning` | Recupera warning/anomalie (default: ultimi 7 giorni) |
| `metodi_pagamento` | Elenco metodi di pagamento attivi per il merchant |

## Prerequisiti

- Python >= 3.10
- Un account merchant Nexi XPay con accesso alle API Back Office
- Le credenziali API: **Alias**, **API Key** e **Secret Key** (dal Back Office Nexi)

## Installazione

### Con Claude Code

Aggiungi al tuo `.mcp.json`:

```json
{
  "mcpServers": {
    "nexi": {
      "type": "stdio",
      "command": "uvx",
      "args": ["nexi-mcp"],
      "env": {
        "NEXI_ALIAS": "tuo_alias",
        "NEXI_SECRET_KEY": "tua_secret_key",
      }
    }
  }
}
```

### Con Claude Desktop

Aggiungi alla configurazione di Claude Desktop (`~/Library/Application Support/Claude/claude_desktop_config.json` su macOS):

```json
{
  "mcpServers": {
    "nexi": {
      "command": "uvx",
      "args": ["nexi-mcp"],
      "env": {
        "NEXI_ALIAS": "tuo_alias",
        "NEXI_SECRET_KEY": "tua_secret_key",
      }
    }
  }
}
```

### Più merchant

Usa chiavi diverse per eseguire un'istanza per merchant:

```json
{
  "mcpServers": {
    "nexi-acme": {
      "command": "uvx",
      "args": ["nexi-mcp"],
      "env": {
        "NEXI_ALIAS": "acme_merchant",
        "NEXI_SECRET_KEY": "acme_secret_key",
      }
    },
    "nexi-globex": {
      "command": "uvx",
      "args": ["nexi-mcp"],
      "env": {
        "NEXI_ALIAS": "globex_merchant",
        "NEXI_SECRET_KEY": "globex_secret_key",
      }
    }
  }
}
```

## Variabili d'ambiente

| Variabile | Obbligatoria | Default | Descrizione |
|-----------|:------------:|---------|-------------|
| `NEXI_ALIAS` | Sì | — | Alias del merchant (usato anche come API key) |
| `NEXI_SECRET_KEY` | Sì | — | Chiave segreta per il calcolo del MAC |
| `NEXI_TEST` | No | `false` | `true` per usare l'ambiente di test |

## Sviluppo

```bash
git clone https://github.com/stucchi/nexi-xpay-mcp-server.git
cd nexi-mcp-server
uv sync
```

Esecuzione locale:

```bash
NEXI_ALIAS=tuo_alias NEXI_SECRET_KEY=tua_secret uv run nexi-mcp
```

## Licenza

MIT
fcm-notifier 0.2.4
Сервис отправки push-уведомлений через FCM
Requires Python: >=3.9

# Сервис по отправке push-уведомлений через Firebase Cloud Messaging

## Общее описание

fcm-notifier представляет собой сервис, который отдельно запускается в окружении РИС и с заданной 
периодичностью забирает накопившиеся сообщения из очереди, которые пачкой (до 500 штук) отправляет 
на мобильные устройства через FCM backend используя Firebase Admin SDK.

![](img/fcm-notifier-scheme.png)

## Настройка сервиса

Для работы сервиса необходимо в переменных окружения задать две переменные:

Путь до JSON-файла содержащего приватный ключ для доступа к сервисам Google:

    export GOOGLE_APPLICATION_CREDENTIALS=/opt/bars/fcm-notifier/mydiary.json

Путь до директории содержащей файл конфигурации сервиса:

    export FCM_NOTIFIER_CONFIG_DIR=/opt/bars/fcm-notifier/

Файл конфигурации fcm_notifier.conf:

```ini
[redis]
REDIS_HOST = 127.0.0.1
REDIS_PORT = 6379
REDIS_DB = 12
REDIS_PASSWORD =

[logging]
LEVEL = INFO
```

## Запуск сервиса

    $ fcm-notifier worker

## Использование очереди сообщений в РИС

Добавление сообщения в очередь:
```python
from fcm_notifier.helpers import get_redis_connection
from fcm_notifier.notification import Notification, NotificationPayload
from fcm_notifier.queue import RedisQueue


queue = RedisQueue(connection=get_redis_connection())

notification = Notification(
    payload=NotificationPayload(
        title='Test message!',
        body='Message body',
    ),
    token='dsufZwUdSFaeIGFt77aMwm:APA91bHQje7R...',
)

queue.enqueue_notification(notification)
```