ต้นแบบ · รุ่นทดลอง: มีทุก server ในทะเบียนทางการ อัปเดตทุก 30 นาที รีวิวและบัญชีผู้ใช้จะมาในขั้นถัดไป
PopNx MCPที่รวม MCP สำหรับคนใช้ AI · อธิบายเป็นภาษาคน

ANAF SPV

โดย foreverworksรุ่น 0.1.2i★ –iรันบนเครื่อง
ชื่อใน registrycom.foreverworks/anaf-spv

ติดตั้ง

ภาพรวม

คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)

Download what ANAF posts to your SPV inbox, request documents, and validate or file declarations.

สามเสาของ PopNx MCP

สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน

ใช้ทำอะไรได้

ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry

  • การเชื่อมต่อ: รันบนเครื่อง
  • ช่องทาง (transport): stdio
  • หมวด: อื่น ๆ

ติดตั้ง

เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง

ก่อนติดตั้ง

  • ผลตรวจเบื้องต้น: ผ่าน 1 จาก 1 ข้อ
  • รันในเครื่องคุณด้วยสิทธิ์ของผู้ใช้คุณ (ไฟล์ อินเทอร์เน็ต แอปต่าง ๆ)
  • ค่าที่คุณต้องใส่เอง: ANAF_SPV_USERNAME, ANAF_SPV_PASSWORD_FILE, ANAF_SPV_MAIL_MCP_URL, ANAF_SPV_MAIL_MCP_TOKEN_FILE, ANAF_SPV_MAIL_MCP_COMMAND

ต้องเตรียมก่อน

  • npmติดตั้ง Node.js (มีคำสั่ง npx) ในเครื่อง

คุณใช้แอปไหน

เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”

เปิด Claude Desktop → Settings → Developer → Edit Config แล้ววางค่านี้ในไฟล์ claude_desktop_config.json

{
  "mcpServers": {
    "anaf-spv": {
      "command": "npx",
      "args": [
        "-y",
        "@foreverworks/mcp-anaf-spv"
      ],
      "env": {
        "ANAF_SPV_USERNAME": "ใส่ค่าของคุณ",
        "ANAF_SPV_PASSWORD_FILE": "ใส่ค่าของคุณ",
        "ANAF_SPV_MAIL_MCP_URL": "ใส่ค่าของคุณ",
        "ANAF_SPV_MAIL_MCP_TOKEN_FILE": "ใส่ค่าของคุณ",
        "ANAF_SPV_MAIL_MCP_COMMAND": "ใส่ค่าของคุณ"
      }
    }
  }
}

พิมพ์คำสั่งนี้ใน Terminal

claude mcp add anaf-spv --env ANAF_SPV_USERNAME='ใส่ค่าของคุณ' --env ANAF_SPV_PASSWORD_FILE='ใส่ค่าของคุณ' --env ANAF_SPV_MAIL_MCP_URL='ใส่ค่าของคุณ' --env ANAF_SPV_MAIL_MCP_TOKEN_FILE='ใส่ค่าของคุณ' --env ANAF_SPV_MAIL_MCP_COMMAND='ใส่ค่าของคุณ' -- npx -y @foreverworks/mcp-anaf-spv

เติมค่าที่เว้นว่างไว้ก่อนรัน

เปิดใน Cursor

หรือคัดลอกค่าตั้งเอง

วางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json

{
  "mcpServers": {
    "anaf-spv": {
      "command": "npx",
      "args": [
        "-y",
        "@foreverworks/mcp-anaf-spv"
      ],
      "env": {
        "ANAF_SPV_USERNAME": "ใส่ค่าของคุณ",
        "ANAF_SPV_PASSWORD_FILE": "ใส่ค่าของคุณ",
        "ANAF_SPV_MAIL_MCP_URL": "ใส่ค่าของคุณ",
        "ANAF_SPV_MAIL_MCP_TOKEN_FILE": "ใส่ค่าของคุณ",
        "ANAF_SPV_MAIL_MCP_COMMAND": "ใส่ค่าของคุณ"
      }
    }
  }
}

เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง

เปิดใน VS Code

หรือคัดลอกค่าตั้งเอง

วางในไฟล์ .vscode/mcp.json ของโปรเจกต์

{
  "servers": {
    "anaf-spv": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@foreverworks/mcp-anaf-spv"
      ],
      "env": {
        "ANAF_SPV_USERNAME": "ใส่ค่าของคุณ",
        "ANAF_SPV_PASSWORD_FILE": "ใส่ค่าของคุณ",
        "ANAF_SPV_MAIL_MCP_URL": "ใส่ค่าของคุณ",
        "ANAF_SPV_MAIL_MCP_TOKEN_FILE": "ใส่ค่าของคุณ",
        "ANAF_SPV_MAIL_MCP_COMMAND": "ใส่ค่าของคุณ"
      }
    }
  }
}

เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง

ตัวนี้รันในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะ server บนอินเทอร์เน็ต ลองเลือกแอปอื่น

ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี

ค่าที่ต้องใส่เอง

  • ANAF_SPV_USERNAME env
    Your SPV user name, when the password comes from a file.
  • ANAF_SPV_PASSWORD_FILE env
    Path of a file holding your SPV password. The README also shows how to read it from a vault MCP server instead.
  • ANAF_SPV_MAIL_MCP_URL env
    A mail MCP server over Streamable HTTP that reads the mailbox SPV sends its codes to, so a sign-in reads the code by itself. Without one (or a command below), every sign-in asks you for the code.
  • ANAF_SPV_MAIL_MCP_TOKEN_FILE env
    Path of a file holding that mail server's bearer token, if it wants one.
  • ANAF_SPV_MAIL_MCP_COMMAND env
    Instead of a URL: a mail MCP server to start over stdio, as a JSON array such as ["npx","-y","some-mail-mcp"].

ค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README

ทำอะไรได้บ้าง

รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง

ผลตรวจเบื้องต้นi

เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 7 พ.ย. 2569

  • ✓ ผ่าน

    ตัวตนผู้ทำตรงกับ repo

    ชื่อใน registry ยืนยันโดเมน foreverworks.com แล้ว (registry ตรวจความเป็นเจ้าของโดเมน)

  • … ยังไม่ตรวจ

    ยังมีคนดูแล

    ยังไม่ได้อ่านข้อมูล repo จาก GitHub

  • … ยังไม่ตรวจ

    มีสัญญาอนุญาต (license)

    ยังไม่ได้อ่านข้อมูล repo จาก GitHub

  • – ไม่เกี่ยว

    endpoint ตอบ

    ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต

  • – ไม่เกี่ยว

    ล็อกอินแบบ OAuth

    ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน

  • … ยังไม่ตรวจ

    คำอธิบายเครื่องมือไม่มีคำสั่งแอบแฝง

    รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต

เทียบกับตัวอื่นในหมวด อื่น ๆi

  • ดาวมากกว่า 0% ของอีก 32742 ตัวในหมวดนี้
  • ส่งรุ่นใหม่เข้า registry ล่าสุดกว่า 89% ของอีก 32742 ตัวในหมวดนี้
  • ผลตรวจเบื้องต้นดีกว่าหรือเท่ากับ 100% ของอีก 32742 ตัวในหมวดนี้

เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo

คำถามที่พบบ่อย

ANAF SPV ปลอดภัยไหม?

จากการตรวจเบื้องต้นของเรา ผ่าน 1 จาก 1 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น

ต้องใช้กุญแจหรือรหัสอะไรบ้าง?

registry ไม่ได้ระบุว่าต้องใช้กุญแจ แต่บางตัวจะขอให้ล็อกอินตอนใช้ครั้งแรก

ตัวนี้รันบนเครื่องหรือบนคลาวด์?

รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)

ยังมีคนดูแลอยู่ไหม?

repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (0.1.2) เข้า registry 4 วันที่ผ่านมา

ใช้กับโปรแกรมไหนได้บ้าง?

โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี Node.js ในเครื่องด้วย

มีตัวไหนใช้แทนได้บ้าง?

ในหมวดเดียวกันมี Spec Driven Development, Remote Desktop Commander, Asset Notation

ตัวที่ใช้แทนได้

server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว

อ่านการ์ด:★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi

Spec Driven Development

โดย formulahendry

MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.

รันบนเครื่อง★ 440MITอัปเดต 14 เดือนที่ผ่านมา
ติดตั้ง

Remote Desktop Commander

โดย desktop-commander

Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.

รันบนคลาวด์★ 211อัปเดต เมื่อวานซืน
ติดตั้ง

Asset Notation

โดย assetnotation

Read and maintain an Asset Notation file on disk: net worth, holdings, valuations, CSV import.

รันบนเครื่องอัปเดต วันนี้
ติดตั้ง

README จากผู้ทำ

เปิดอ่าน README

ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ

ANAF SPV MCP server

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.

What you can ask

  • "Is there anything new from ANAF in my SPV?"
  • "Download the decision ANAF posted last week into my 2026-10 folder."
  • "Ask ANAF for my Obligatii de plata statement and save it when it arrives."
  • "Save every SPV document I have not saved yet."
  • "Check the D300 for September in d300-2026-09.xml with ANAF's validator. How much VAT does it make payable?"
  • "What is the status of the filing INTERNT-123456789-2026?"

Install

%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.

From a clone
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.

Configuration

Every variable is optional for the server to start: a tool that needs one says which, and health lists what is missing.

Where the password comes from

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.

VariableRequiredMeaning
ANAF_SPV_VAULT_MCP_URLone sourceA vault MCP server over Streamable HTTP that holds the SPV login.
ANAF_SPV_VAULT_MCP_TOKEN_FILEif the vault wants oneFile holding its bearer token (ANAF_SPV_VAULT_MCP_TOKEN for a local run).
ANAF_SPV_VAULT_MCP_COMMANDinstead of the URLA 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_ITEMwith a vaultThe vault item holding the SPV login (its id).
ANAF_SPV_VAULT_TOOLnoThe tool that hands out a password. Default get_password (this repository's bitwarden server).
ANAF_SPV_VAULT_ARGSnoIts arguments, a JSON template with {{item}}. Default {"id":"{{item}}"}.
ANAF_SPV_VAULT_PASSWORD_FIELDnoWhere the password is in its JSON answer, a dot path. Default password; . takes the whole answer.
ANAF_SPV_VAULT_USERNAME_FIELDnoWhere the user name is. Default username.
ANAF_SPV_PASSWORD_FILEthe other sourceFile holding the SPV password, mode 0600 (ANAF_SPV_PASSWORD for a local run).
ANAF_SPV_USERNAMEwith the fileThe SPV user name. With a vault, it overrides the item's.
Where the e-mailed code comes from

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.

VariableRequiredMeaning
ANAF_SPV_MAIL_MCP_URLfor automatic sign-inA mail MCP server over Streamable HTTP that reads the mailbox SPV sends codes to.
ANAF_SPV_MAIL_MCP_TOKEN_FILEif it wants oneFile holding its bearer token (ANAF_SPV_MAIL_MCP_TOKEN for a local run).
ANAF_SPV_MAIL_MCP_COMMANDinstead of the URLA mail MCP server to spawn over stdio, as for the vault.
ANAF_SPV_MAIL_DRIVERnoauto (the default with a mail server), google, text, or manual (the default without one).
ANAF_SPV_MAIL_ACCOUNTnoWhich mailbox, for a server that holds several (the google driver's account; {{account}} in a template).
ANAF_SPV_MAIL_QUERYnoThe search, in Gmail's syntax by default: from:Autentificare.SpatiuPrivat@anaf.ro subject:"Cod de siguranta" newer_than:1d.
ANAF_SPV_MAIL_SEARCH_TOOLnoThe text driver's search tool. Default: the server's tool that looks like a mail search.
ANAF_SPV_MAIL_SEARCH_ARGSnoIts arguments, a JSON template with {{query}} and {{account}}, for a tool that needs more than a query.
ANAF_SPV_CODE_WAIT_SECnoHow long a sign-in waits for the code to reach the mailbox. Default 90, at most 280 (SPV honours a code for 300).
Everything else
VariableRequiredMeaning
ANAF_SPV_KEEPALIVE_MINnoLoad 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_DIRnoWhere 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_DIRnoThe outbox downloads land in. Default /downloads.
ANAF_SPV_JAVAfor declarationsThe Java runtime ANAF's DUKIntegrator runs on (8 or newer). Default java.
ANAF_SPV_DUK_DIRnoWhere DUKIntegrator kits are built and kept, one per form and package. Default /duk.
ANAF_SPV_PORTALnoThe portal. Default https://pfinternet.anaf.ro.
ANAF_SPV_FORMS_PORTALnoWhere a person files declarations, a sign-in of its own. Default https://formularespv-pf.anaf.ro.
ANAF_SPV_STATUS_SERVICEnoANAF'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.

Getting the SPV account ready
  1. Check that the account signs in at pfinternet.anaf.ro with a user name and password. A person registers one on anaf.ro, online with an identity document or at an ANAF office.
  2. Find the mailbox SPV sends codes to (the address in SPV's "Editare profil"): it holds "Cod de siguranta" mails from Autentificare.SpatiuPrivat@anaf.ro.
  3. Have the account holder put the user name and password in a vault item, or the password in a file only the server's user can read, rather than

ตัดมาแค่ช่วงต้น อ่านต่อใน repo

ถาม PopNx