Skip to main content
Glama
Muhammad-Usman-Tariq

Multi-Tenant Invoice Autofill MCP Server

Multi-Tenant Invoice Autofill MCP Server

Бэкенд-сервис на Python, позволяющий LLM с поддержкой вызова функций или MCP (Claude, Gemini, GPT и др.) автоматически заполнять и сохранять счета в Digital Invoicing Software от имени тенантов.

Возможности

  • Поддержка двух транспортов: доступ через стандартный протокол MCP (stdio / Streamable HTTP) и REST API (FastAPI) со схемой OpenAPI.

  • Мультитенантность и аутентификация: шифрование учетных данных для каждого тенанта, индивидуальные MCP API-ключи и изолированное управление сессиями.

  • Отказоустойчивый адаптер: инкапсулированный HTTP-адаптер, воспроизводящий заголовки браузера, с реактивным обновлением сессии и динамическим разбором срока действия cookie.

  • Идемпотентность и конкурентность: дедупликация на основе хеша документа и распределенная блокировка Redis для каждого тенанта (lock:tenant:{id}).

  • Конфиденциальность прежде всего: обязательный слой маскирования структурированных логов, вычищающий пароли, cookie, ключи и токены.

  • Ноль жестко прописанных значений: никаких учетных данных или бизнес-идентификаторов, зашитых в код, комментарии или тесты; полная генерация синтетических тестовых данных.

Related MCP server: Invoice MCP Server

Локальные требования

  • Python 3.12+

  • Docker и Docker Compose (для локальных Postgres и Redis)

Начало работы

1. Настройка окружения

Скопируйте .env.example в .env и задайте локальные переменные:

cp .env.example .env

2. Запуск локальной базы данных и Redis

docker-compose up -d

3. Установка зависимостей

python -m venv .venv
# Windows:
.\.venv\Scripts\pip install -r requirements.txt
# Linux/macOS:
source .venv/bin/activate
pip install -r requirements.txt

4. Запуск миграций

.\.venv\Scripts\alembic upgrade head

5. Запуск сервера

# Start FastAPI REST server:
.\.venv\Scripts\uvicorn mcp_digitalinvoice.main:app --reload --port 8000

# Run MCP stdio server:
.\.venv\Scripts\python -m mcp_digitalinvoice.mcp_server.server

Безопасность

[!CAUTION] Управление ключом шифрования: переменная окружения ENCRYPTION_KEY должна быть задана как безопасный 32-байтовый ключ Fernet в кодировке base64. Запуск приложения немедленно завершится ошибкой, если ENCRYPTION_KEY не задана. Если ключ шифрования когда-либо использовался для шифрования реальных данных тенантов и есть подозрение на его утечку, эти данные должны быть повторно зашифрованы с помощью заново сгенерированного ключа, поскольку старый ключ следует считать скомпрометированным.

Рабочие процессы

Онбординг тенанта (connect_account)

  1. Вызовите connect_account, передав email тенанта для входа в Digital Invoicing Software, пароль и название бизнеса.

  2. Сервер шифрует учетные данные, проверяет их с помощью первичного входа и возвращает уникальный mcp_api_key.

  3. Передайте этот mcp_api_key LLM (как Bearer-токен или заголовок) для последующих вызовов инструментов.

Автозаполнение счетов (fill_invoice)

LLM вызывает fill_invoice с извлеченной JSON-полезной нагрузкой счета (buyer, items, meta). Сервис проверяет обязательные поля, обеспечивает последовательную обработку документов по одному, проверяет идемпотентность, восстанавливает сессию тенанта, преобразует полезную нагрузку в формат, требуемый нижестоящей системой, и создает черновик счета.

Запуск тестов

.\.venv\Scripts\pytest -v tests/
F
license - not found
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    A
    quality
    B
    maintenance
    Enables AI assistants to securely interact with rental management data (leases, rent status, tenant records, tax filings) through a per-user OAuth 2.0 authenticated MCP server, with human-in-the-loop for sensitive actions.
    5
    AGPL 3.0
  • A
    license
    A
    quality
    B
    maintenance
    MCP server for POP — enabling LLMs to generate, submit, and manage Italian e-invoices (FatturaPA/SdI), Peppol invoices, and PDF invoices directly from AI assistants.
    16
    57
    MIT

View all related MCP servers

Related MCP Connectors

  • Connect MCP clients to 2,000+ AI models without managing provider API keys.

  • Brazil NFS-e service invoices for AI agents via Focus NFe and NFe.io. Stateless, never stores data.

  • MCP Server for agents to onboard, pay, and provision services autonomously with InFlow

View all MCP Connectors

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/Muhammad-Usman-Tariq/Mcp-Digitalinvoice'

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