Odel
Samotpravil MCP

Samotpravil MCP

Local
@dkansterJavaScriptMITUpdated 1mo ago

MCP server for Samotpravil API — docs, typed tools, Python SDK parity, safety flags.

Samotpravil MCP

CI npm License: MIT

MCP-сервер вокруг документации API СамОтправил и HTTP API api.samotpravil.ru.

Версия: 1.7.0 · npm: samotpravil-mcp · MCP Registry: io.github.dkanster/samotpravil-api-mcp · Smithery: smithery.yaml

Хостинг: репозиторий временно в dkanster/samotpravil-api-mcp.
Планируется: переезд в org Samotpravil@samotpravil/mcpdocs/ORG_MIGRATION.md.

Сервер подтягивает Postman-коллекцию с documenter (live + offline snapshot) и даёт агенту tools для поиска методов, вызова API и безопасных пресетов (READ_ONLY, dry_run). Имена typed tools совпадают с Python SDK samotpravil.

Экосистема: Postman → snapshot → MCP / OpenAPI / Docusaurus — docs/ECOSYSTEM.md · live preview: https://dkanster.github.io/samotpravil-api-mcp/


Быстрый старт

npx -y samotpravil-mcp@latest

Cursor.cursor/mcp.json:

{
  "mcpServers": {
    "samotpravil": {
      "command": "npx",
      "args": ["-y", "samotpravil-mcp@latest"],
      "env": {
        "SAMOTPRAVIL_API_KEY": "your_api_key_here",
        "SAMOTPRAVIL_READ_ONLY": "1",
        "SAMOTPRAVIL_ALLOW_SEND": "0"
      }
    }
  }
}

SAMOTPRAVIL_API_KEY опционален для docs-only tools. После правок: Settings → MCP → Reload.

Сценарии и конфиги для Claude / VS Code: docs/EXAMPLES.md


Что внутри

КомпонентКол-воНужен ключ
Docs tools4нет
Core typed API9 + api_requestSAMOTPRAVIL_API_KEY
Python SDK parity28SAMOTPRAVIL_API_KEY
Auto tools (api_*)~16SAMOTPRAVIL_API_KEY
Postman maintainer4POSTMAN_API_KEY
MCP Resources9нет
MCP Prompts5нет

Итого: ~59 tools ( +4 postman при POSTMAN_API_KEY).


Инструменты

Документация (без API-ключа)

ToolОписание
get_overviewАвторизация, SMTP, лимиты, категории
list_endpointsСписок всех методов API
search_docsПоиск по документации
get_endpointПодробности по методу

Typed API (нужен SAMOTPRAVIL_API_KEY)

ToolОписание
send_emailPOST /api/v1/smtp_send
send_mail_v2POST /api/v2/mail/send
get_delivery_statusGET /api/v2/issue/status (message_id или x_track_id)
get_package_statusGET /api/v2/package/status
search_stop_listПоиск email в стоп-листах
add_stop_list_email / remove_stop_list_emailСтоп-лист (mail_from или domain)
validate_emailPOST /api/v2/emails/validate/
list_allowed_domainsGET /api/v2/blist/domains
api_requestGeneric escape hatch

Python SDK parity (v1.3+)

Typed tools с именами как в PyPI-пакете samotpravil: send_package, get_statistics, get_ext_status, stop_list_export_create, domain_add, get_blist, create_authkey и др.

Полный список и маппинг: docs/EXAMPLES.md#python-sdk-parity · prompt python_sdk_parity

Postman maintainer (нужен POSTMAN_API_KEY)

ToolОписание
postman_get_collectionКоллекция из Postman API
postman_sync_snapshotPostman API → data/collection.snapshot.json
postman_diff_snapshotDiff Postman vs локальный snapshot
postman_search_requestsПоиск запросов в коллекции

Подробнее: docs/EXAMPLES.md#postman-tools

Auto tools

api_{method}_{path} — для HTTP-методов, не покрытых typed tools (legacy v1, tickets, email check/clean и т.д.).

MCP Prompts

PromptОписание
integration_overviewОбзор SMTP + HTTP + лимиты
send_transactionalЧеклист отправки письма
stop_list_workflowРабота со стоп-листами
check_deliveryСтатус по X-Track-ID / выпуску
python_sdk_parityPython SDK → MCP tools

MCP Resources

URIСодержимое
samotpravil://overviewОбзор API
samotpravil://endpointsИндекс методов
samotpravil://endpoint/{slug}Один метод
samotpravil://errorsПопулярные ошибки
samotpravil://integrationSMTP, X-Track-ID, трекинг
samotpravil://sdk-mappingPython SDK → MCP tools
samotpravil://changelogФрагмент CHANGELOG пакета
samotpravil://rate-limitsЛимиты API и отправки
samotpravil://api-wishlistПредложения по HTTP API (фрагмент)

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

EnvЭффект
SAMOTPRAVIL_READ_ONLY=1Только GET/HEAD
SAMOTPRAVIL_ALLOW_SEND=0Блок send/package
SAMOTPRAVIL_ALLOW_MUTATIONS=0Блок stop-list, доменов, authkey
SAMOTPRAVIL_ALLOW_GENERIC_API=0Отключить api_request
SAMOTPRAVIL_DOCS_MODEauto | live | snapshot
dry_run: truePreview запроса без отправки

Секреты (api_key, key= в query) маскируются в ответах MCP.


Транспорты и интеграции

HTTP transport

npx samotpravil-mcp --http --port 3000
# POST http://127.0.0.1:3000/mcp

Env: SAMOTPRAVIL_HTTP_HOST, SAMOTPRAVIL_HTTP_PORT, SAMOTPRAVIL_HTTP_AUTH_TOKEN, SAMOTPRAVIL_HTTP_JSON_LOG=1 (structured logs).

docker build -t samotpravil-mcp .
docker run --rm -p 3000:3000 -e SAMOTPRAVIL_API_KEY=... -e SAMOTPRAVIL_HTTP_AUTH_TOKEN=... samotpravil-mcp

OpenAPI + Swagger-MCP

npm run export-openapi        # → data/openapi.yaml
npm run upload-swaggerhub     # SwaggerHub (нужен .env.swaggerhub)
npm run prepare-swagger-mcp   # Vizioz/Swagger-MCP

Спека: mailganer/samotpravil-smtp-api@1.0.0 · docs/SWAGGERHUB.md

Docusaurus preview

npm run docusaurus:install && npm run docusaurus:start

Live: https://dkanster.github.io/samotpravil-api-mcp/ · docs/DOCS_SITE.md

Discovery

ПлощадкаСсылка
npmhttps://www.npmjs.com/package/samotpravil-mcp
MCP Registryhttps://registry.modelcontextprotocol.io
Smitherysmithery.yaml в корне — docs/PUBLISH.md
Официальный promodocs/official/

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

Шаблон: .env.samotpravil.example

SAMOTPRAVIL_API_KEY=your_key_here
# POSTMAN_API_KEY=...          # maintainer tools
# SAMOTPRAVIL_READ_ONLY=1

Ключ API: https://samotpravil.ru/get-access

Полный список env: docs/EXAMPLES.md


Разработка

git clone https://github.com/dkanster/samotpravil-api-mcp.git
cd samotpravil-api-mcp
npm install && npm test && npm run dev
npm run setup-hooks   # optional: pre-commit (lint + test)
npm run lint          # ESLint
npm run pre-publish-check   # перед npm tag
npm run release-prepare      # pre-flight перед npm tag
npm run generate-tool-catalog
npm run scaffold-typed-tool send_package

Источник документации

Из git clone в свой проект

/path/to/samotpravil-api-mcp/setup.sh .

Лицензия

MIT