Skip to main content

nlp2env

AI Cost Tracking

AI Cost AI Model

This project uses AI-generated code. Total cost: $0.9000 with 6 AI commits.

Generated on 2026-06-29 using openrouter/qwen/qwen3-coder-next


MCP server do odczytu i zapisu pliku .env — w tym profilu SMTP/email dla workflow send_email (nlp2dsl-worker).

Instalacja

cd ~/github/semcod/nlp2env
pip install -e ".[mcp]"

Uruchomienie MCP

export NLP2ENV_ENV_FILE=~/github/wronai/todomat/.env   # opcjonalnie
nlp2env-mcp

Narzędzia MCP

Tool Opis
nlp2env_interfaces Metadane, ścieżka .env, profile
nlp2env_list Lista kluczy (sekrety zamaskowane)
nlp2env_get Odczyt kluczy (comma-separated)
nlp2env_set Zapis z JSON {"SMTP_HOST":"..."}
nlp2env_set_email Zapis profilu SMTP (host, user, password, …)
nlp2env_apply_text Parsuj bloki KEY=value z tekstu
nlp2env_delete Usuń klucze (comma-separated) z .env
nlp2env_backup Kopia .env → .nlp2env/backups/
nlp2env_email_status Czy SMTP jest kompletny
nlp2env_set_api Zapis kluczy API (OpenAI, Anthropic, Groq, HF)
nlp2env_api_status Czy jakieś klucze API są skonfigurowane
nlp2env_set_db Zapis profilu bazy danych (Postgres, Redis, Mongo)
nlp2env_db_status Czy profil bazy danych jest kompletny
nlp2env_generate_key Generuj nowy klucz szyfrowania Fernet
nlp2env_encrypt Szyfruj plaintext → enc:<base64>
nlp2env_decrypt Odszyfruj enc:<base64> → plaintext
nlp2env_load_multi Połącz .env + .env.{suffix} (override wins)
nlp2env_list_files Lista plików .env* w katalogu projektu

Profil email (nlp2dsl)

Klucze zgodne z nlp2dsl worker:

SMTP_HOST, SMTP_PORT, SMTP_USER, SMTP_PASSWORD, SMTP_TLS, SMTP_FROM, SMTP_TIMEOUT

Po zapisie zrestartuj worker:

docker compose -f ~/github/wronai/nlp2dsl/docker-compose.yml restart worker

Profil API keys

Klucze LLM/API zapisywane przez nlp2env_set_api:

OPENAI_API_KEY, ANTHROPIC_API_KEY, GROQ_API_KEY, HUGGINGFACE_API_TOKEN

Profil database

Klucze PostgreSQL, Redis i MongoDB zapisywane przez nlp2env_set_db:

POSTGRES_HOST, POSTGRES_PORT, POSTGRES_DB, POSTGRES_USER, POSTGRES_PASSWORD
REDIS_URL, REDIS_HOST, REDIS_PORT
MONGO_URI

nlp2env_db_status sprawdza czy PostgreSQL jest kompletny (host, db, user, password) oraz czy Redis/Mongo są skonfigurowane.

Wiele .env (suffix)

resolve_env_path obsługuje suffix — automatycznie wybiera .env.local, .env.production:

# env_file.py
resolve_env_path(suffix="local")      # → ./.env.local
resolve_env_path(suffix="production") # → ./.env.production

MCP tool nlp2env_load_multi ładuje base .env a potem overlay .env.{suffix} (override nadpisuje base):

# .env
SMTP_HOST=prod.server.com
SMTP_PORT=587

# .env.local
SMTP_HOST=localhost
SMTP_PORT=2525

nlp2env_load_multi(suffix="local") → SMTP_HOST=localhost, SMTP_PORT=2525

Cursor (mcp.json)

{
  "mcpServers": {
    "nlp2env": {
      "command": "nlp2env-mcp",
      "env": {
        "NLP2ENV_ENV_FILE": "/home/tom/github/wronai/todomat/.env"
      }
    }
  }
}

uri2env

Pakiet uri2env (w src/uri2env/) mapuje URI env:// na plik .env — używany przez nlp2uri do adresowania konfiguracji:

pip install -e ".[mcp,nlp2uri]"
uri2env materialize --uri 'env://nlp2env/smtp?dest=./.env'

W nlp2uri: resolve_env() → env://… → materialize_env().

Walidacja formatów

nlp2env_set i nlp2env_set_email automatycznie walidują wartości:

Format Klucze (suffix/prefix) Przykład poprawny
Email _EMAIL, _USER jan@firma.pl
Host/IP _HOST, SERVER, ADDRESS smtp.gmail.com, 192.168.1.1
Port _PORT, _TIMEOUT 587, 30
URL _URL https://api.example.com
Bool _TLS, _ENABLED 1, true, yes, on
API key _API_KEY, _TOKEN sk-..., gsk-..., hf_...

Błędy walidacji zatrzymują zapis i zwracają validation_errors w odpowiedzi MCP.

Szyfrowanie wartości

Wartości w .env mogą być szyfrowane AES-128-CBC + HMAC (Fernet):

# Generuj klucz
nlp2env_generate_key()  # → zapisz do ~/.nlp2env/key lub NLP2ENV_MASTER_KEY

# Szyfruj
nlp2env_encrypt("sekret123")  # → "enc:gAAAAAB..."

# Zapisz zaszyfrowane do .env
nlp2env_set('{"API_KEY": "enc:gAAAAAB..."}')

# Odszyfruj (automatycznie przy odczycie przez MCP)
nlp2env_decrypt("enc:gAAAAAB...")  # → "sekret123"

Klucz — 32 bajty base64 (44 znaki), generowany przez generate_key() lub hasło przez _derive_key().

Maskowanie — zaszyfrowane wartości wyświetlane jako enc:****wxyz.

Testy

pip install -e ".[dev]"
pytest
make examples              # szybkie e2e
make examples-multilang    # 26 promptów LLM/Ollama (16 języków)
make examples-all          # oba

prompts-multilang.txt (examples/write/smtp-email/) — 26 wielojęzycznych promptów NL testujących ścieżkę LLM → MCP → .env; uruchamiane przez make examples-multilang. Opis: examples/write/smtp-email/README.md.

Przykłady NL → .env (Docker + README): examples/README.md.

License

Licensed under Apache-2.0.

Metadata

Release files for nlp2env 0.1.6

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for nlp2env 0.1.6
File Size Uploaded
nlp2env-0.1.6.tar.gz 29.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for nlp2env 0.1.6
File Interpreter ABI Platform
nlp2env-0.1.6-py3-none-any.whl Python 3 none any Details

Total release size: 57.1 kB

Release files / nlp2env-0.1.6.tar.gz

Download URL nlp2env-0.1.6.tar.gz
Size 29.9 kB
Tags Source
SHA-256 checksum
How to use checksums
ca2efd9d00c4131d3cee5ed24e454c1c013b7edc28c776e315d9c340d951db41
BLAKE2b-256 checksum
How to use checksums
0dfcf7fb7d6e4ec25a6e8bb67ddde6b95be834f9f77bde686a3343820ca5f022
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.7

Release files / nlp2env-0.1.6-py3-none-any.whl

Download URL nlp2env-0.1.6-py3-none-any.whl
Size 27.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c5dd317d86eb3fc0d01f38c05f296eb6227666670c207533bbf578e0ed90344f
BLAKE2b-256 checksum
How to use checksums
f7b46490ba5dd95795e8a3d09e80b37d5ef662bd9153e4d6c777f7b10c44128c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.7

Release history Release notifications | RSS feed

This release

0.1.6 This release

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page