Vexa
Meeting bot and transcripts for Google Meet, Teams and Zoom. Live or after, speakers labelled.
Description from the maker (original English)
Download what ANAF posts to your SPV inbox, request documents, and validate or file declarations.
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
ANAF_SPV_USERNAME, ANAF_SPV_PASSWORD_FILE, ANAF_SPV_MAIL_MCP_URL, ANAF_SPV_MAIL_MCP_TOKEN_FILE, ANAF_SPV_MAIL_MCP_COMMANDYou need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json
{
"mcpServers": {
"anaf-spv": {
"command": "npx",
"args": [
"-y",
"@foreverworks/mcp-anaf-spv"
],
"env": {
"ANAF_SPV_USERNAME": "your-value",
"ANAF_SPV_PASSWORD_FILE": "your-value",
"ANAF_SPV_MAIL_MCP_URL": "your-value",
"ANAF_SPV_MAIL_MCP_TOKEN_FILE": "your-value",
"ANAF_SPV_MAIL_MCP_COMMAND": "your-value"
}
}
}
}Run this in your terminal
claude mcp add anaf-spv --env ANAF_SPV_USERNAME=your-value --env ANAF_SPV_PASSWORD_FILE=your-value --env ANAF_SPV_MAIL_MCP_URL=your-value --env ANAF_SPV_MAIL_MCP_TOKEN_FILE=your-value --env ANAF_SPV_MAIL_MCP_COMMAND=your-value -- npx -y @foreverworks/mcp-anaf-spvFill in the empty values before running it.
Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"anaf-spv": {
"command": "npx",
"args": [
"-y",
"@foreverworks/mcp-anaf-spv"
],
"env": {
"ANAF_SPV_USERNAME": "your-value",
"ANAF_SPV_PASSWORD_FILE": "your-value",
"ANAF_SPV_MAIL_MCP_URL": "your-value",
"ANAF_SPV_MAIL_MCP_TOKEN_FILE": "your-value",
"ANAF_SPV_MAIL_MCP_COMMAND": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Paste into .vscode/mcp.json in your project
{
"servers": {
"anaf-spv": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@foreverworks/mcp-anaf-spv"
],
"env": {
"ANAF_SPV_USERNAME": "your-value",
"ANAF_SPV_PASSWORD_FILE": "your-value",
"ANAF_SPV_MAIL_MCP_URL": "your-value",
"ANAF_SPV_MAIL_MCP_TOKEN_FILE": "your-value",
"ANAF_SPV_MAIL_MCP_COMMAND": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.
Your choice stays on this device in a cookie; no account needed.
ANAF_SPV_USERNAME envANAF_SPV_PASSWORD_FILE envANAF_SPV_MAIL_MCP_URL envANAF_SPV_MAIL_MCP_TOKEN_FILE envANAF_SPV_MAIL_MCP_COMMAND envThese settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
Runs on your computer; the tool list appears in your AI app after you install it.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 8, 2026
The registry name was verified against the domain foreverworks.com (the registry checks domain ownership)
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
This one runs on your computer; there is no internet endpoint
Runs on your computer and uses local settings instead
Runs on your computer; we can only read tool lists from internet endpoints
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
The registry does not list a required key, though some servers ask you to sign in on first use.
It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).
The GitHub repo last changed –, and the latest version (0.1.2) reached the registry 5 days ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Node.js on your computer.
In the same category: Vexa, emailmd, MCP WhatsApp Cloud
Servers in the same category from other makers, sorted by stars.
Reading a card:↓ Downloads per weeki★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
Meeting bot and transcripts for Google Meet, Teams and Zoom. Live or after, speakers labelled.
Render markdown into email-safe HTML, lint drafts for deliverability problems, and preview emails.
MCP server for WhatsApp Cloud API (Meta) — messages, media, and templates via Graph API
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
Read and keep what ANAF posts to your Spațiul Privat Virtual (pfinternet.anaf.ro) from your AI assistant: decisions, summonses, notifications, payment confirmations and answers. It also requests documents, writes to ANAF through SPV's contact form (a dry run unless you say otherwise), validates declarations and files a D212. Nothing here moves money; the one money tool, submit_declaration, files a declaration, and your client asks you before each call.
You need an SPV account for a person ("persoană fizică") that signs in with a user name and password, not a qualified certificate; its password in a file or a vault MCP server; and a mail MCP server that reads the mailbox SPV sends sign-in codes to (without one, someone types each code). Validating a declaration also needs Java 8 or newer. ANAF has no API for such an account, so the server reads SPV's web pages.
%2C%20every%20sign-in%20asks%20you%20for%20the%20code.%22%7D%2C%7B%22type%22%3A%22promptString%22%2C%22id%22%3A%22anaf_spv_mail_mcp_token_file%22%2C%22description%22%3A%22Optional.%20Path%20of%20a%20file%20holding%20that%20mail%20server's%20bearer%20token%2C%20if%20it%20wants%20one.%22%7D%2C%7B%22type%22%3A%22promptString%22%2C%22id%22%3A%22anaf_spv_mail_mcp_command%22%2C%22description%22%3A%22Optional.%20Instead%20of%20a%20URL%3A%20a%20mail%20MCP%20server%20to%20start%20over%20stdio%2C%20as%20a%20JSON%20array%20such%20as%20%5B%5C%22npx%5C%22%2C%5C%22-y%5C%22%2C%5C%22some-mail-mcp%5C%22%5D.%22%7D%5D&config=%7B%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22%40foreverworks%2Fmcp-anaf-spv%22%5D%2C%22env%22%3A%7B%22ANAF_SPV_USERNAME%22%3A%22%24%7Binput%3Aanaf_spv_username%7D%22%2C%22ANAF_SPV_PASSWORD_FILE%22%3A%22%24%7Binput%3Aanaf_spv_password_file%7D%22%2C%22ANAF_SPV_MAIL_MCP_URL%22%3A%22%24%7Binput%3Aanaf_spv_mail_mcp_url%7D%22%2C%22ANAF_SPV_MAIL_MCP_TOKEN_FILE%22%3A%22%24%7Binput%3Aanaf_spv_mail_mcp_token_file%7D%22%2C%22ANAF_SPV_MAIL_MCP_COMMAND%22%3A%22%24%7Binput%3Aanaf_spv_mail_mcp_command%7D%22%7D%7D)
With Claude Code:
claude mcp add anaf-spv -- npx -y @foreverworks/mcp-anaf-spv
Claude Desktop (Settings, Developer, Edit Config) and most other clients read the same command as JSON:
{
"mcpServers": { "anaf-spv": { "command": "npx", "args": ["-y", "@foreverworks/mcp-anaf-spv"] } } }
Each runs the published package on Node 22.19 or newer. VS Code and the Claude Desktop bundle ask for each setting as they add the server; leave an optional one empty. Cursor reads each from your environment instead (${env:ANAF_SPV_USERNAME} and so on), so set them before you start Cursor. Every setting is optional; Configuration says which ones you need for which tools.
git clone https://github.com/foreverworks/mcps.git && cd mcps
npm ci && npm run build claude mcp add anaf-spv -- node "$PWD/servers/anaf-spv/dist/index.js"
In a JSON configuration, the command is node and its one argument the full path of servers/anaf-spv/dist/index.js. To share one running copy between several clients over HTTP, see docs/deploying.md.
A complete configuration, with this repository's bitwarden and google servers over HTTP as the vault and the mailbox:
claude mcp add anaf-spv \
-e ANAF_SPV_VAULT_MCP_URL=http://127.0.0.1: /mcp \ -e ANAF_SPV_VAULT_MCP_TOKEN_FILE= \ -e ANAF_SPV_VAULT_ITEM= \ -e ANAF_SPV_MAIL_MCP_URL=http://127.0.0.1: /mcp \ -e ANAF_SPV_MAIL_MCP_TOKEN_FILE= \ -e ANAF_SPV_MAIL_ACCOUNT= \ -- npx -y @foreverworks/mcp-anaf-spv
docs/onboarding.md walks through the setup, with other vault and mail servers or with codes typed by hand. Over HTTP, one running copy holds one session for every client, so fewer code e-mails go out.
Every variable is optional for the server to start: a tool that needs one says which, and health lists what is missing.
A vault or a file. Prefer a vault: the password then lives in one place, and a rotation is a change there and nothing else.
| Variable | Required | Meaning |
|---|---|---|
ANAF_SPV_VAULT_MCP_URL | one source | A vault MCP server over Streamable HTTP that holds the SPV login. |
ANAF_SPV_VAULT_MCP_TOKEN_FILE | if the vault wants one | File holding its bearer token (ANAF_SPV_VAULT_MCP_TOKEN for a local run). |
ANAF_SPV_VAULT_MCP_COMMAND | instead of the URL | A vault MCP server to spawn over stdio: a JSON array (["npx","-y","some-vault-mcp"]) or words. It gets this process's environment without the ANAF_SPV_* and MCP_* variables and CREDENTIALS_DIRECTORY. |
ANAF_SPV_VAULT_ITEM | with a vault | The vault item holding the SPV login (its id). |
ANAF_SPV_VAULT_TOOL | no | The tool that hands out a password. Default get_password (this repository's bitwarden server). |
ANAF_SPV_VAULT_ARGS | no | Its arguments, a JSON template with {{item}}. Default {"id":"{{item}}"}. |
ANAF_SPV_VAULT_PASSWORD_FIELD | no | Where the password is in its JSON answer, a dot path. Default password; . takes the whole answer. |
ANAF_SPV_VAULT_USERNAME_FIELD | no | Where the user name is. Default username. |
ANAF_SPV_PASSWORD_FILE | the other source | File holding the SPV password, mode 0600 (ANAF_SPV_PASSWORD for a local run). |
ANAF_SPV_USERNAME | with the file | The SPV user name. With a vault, it overrides the item's. |
A mail MCP server, read by a driver chosen at each sign-in (The mail drivers). Without one, every sign-in waits for complete_login.
| Variable | Required | Meaning |
|---|---|---|
ANAF_SPV_MAIL_MCP_URL | for automatic sign-in | A mail MCP server over Streamable HTTP that reads the mailbox SPV sends codes to. |
ANAF_SPV_MAIL_MCP_TOKEN_FILE | if it wants one | File holding its bearer token (ANAF_SPV_MAIL_MCP_TOKEN for a local run). |
ANAF_SPV_MAIL_MCP_COMMAND | instead of the URL | A mail MCP server to spawn over stdio, as for the vault. |
ANAF_SPV_MAIL_DRIVER | no | auto (the default with a mail server), google, text, or manual (the default without one). |
ANAF_SPV_MAIL_ACCOUNT | no | Which mailbox, for a server that holds several (the google driver's account; {{account}} in a template). |
ANAF_SPV_MAIL_QUERY | no | The search, in Gmail's syntax by default: from:Autentificare.SpatiuPrivat@anaf.ro subject:"Cod de siguranta" newer_than:1d. |
ANAF_SPV_MAIL_SEARCH_TOOL | no | The text driver's search tool. Default: the server's tool that looks like a mail search. |
ANAF_SPV_MAIL_SEARCH_ARGS | no | Its arguments, a JSON template with {{query}} and {{account}}, for a tool that needs more than a query. |
ANAF_SPV_CODE_WAIT_SEC | no | How long a sign-in waits for the code to reach the mailbox. Default 90, at most 280 (SPV honours a code for 300). |
| Variable | Required | Meaning |
|---|---|---|
ANAF_SPV_KEEPALIVE_MIN | no | Load a page every N minutes while a session is stored, so SPV's idle timeout does not end it (each new sign-in e-mails a code). 0, the default, is off. |
ANAF_SPV_STATE_DIR | no | Where session.json, pending.json, synced.json, contact.json, cui-only.json, declarations.json and formularespv-pf's forms-session.json live, all 0600; the default is in docs/configuration.md. It holds a live session: keep it readable by the server's user only. |
ANAF_SPV_DOWNLOADS_DIR | no | The outbox downloads land in. Default /downloads. |
ANAF_SPV_JAVA | for declarations | The Java runtime ANAF's DUKIntegrator runs on (8 or newer). Default java. |
ANAF_SPV_DUK_DIR | no | Where DUKIntegrator kits are built and kept, one per form and package. Default /duk. |
ANAF_SPV_PORTAL | no | The portal. Default https://pfinternet.anaf.ro. |
ANAF_SPV_FORMS_PORTAL | no | Where a person files declarations, a sign-in of its own. Default https://formularespv-pf.anaf.ro. |
ANAF_SPV_STATUS_SERVICE | no | ANAF's public status service for filings. Default https://stare.anaf.ro/StareD112. |
A file a tool takes (a declaration's XML, an attachment) goes in byte for byte, by path only, from the server's file roots (MCP_FILE_ROOTS). Files come out into the outbox at mode 0640, whole or not at all, and never over a file holding other bytes (that one gets the next numbered name); a save_dir must be a folder inside it. Under MCP_EGRESS_ALLOW, allow pfinternet.anaf.ro, formularespv-pf.anaf.ro, static.anaf.ro, stare.anaf.ro and the vault and mail servers' hosts. The variables every server shares are in docs/configuration.md.
Autentificare.SpatiuPrivat@anaf.ro.Only the beginning is shown; read the rest in the repo