io.github.agente-dev/wfirma-mcp

السجل الرسمي المالية والمدفوعات

Unofficial read-only MCP server for the wFirma API v2: invoices, contractors, expenses, payments.

التثبيت

أضف هذا إلى إعدادات MCP في عميلك (Claude Desktop: claude_desktop_config.json، وCursor: ‏.cursor/mcp.json، ويستخدم VS Code وغيره الصيغة نفسها «mcpServers»).

NPM package wfirma-mcp
Claude Code
claude mcp add wfirma-mcp -e 'WFIRMA_ACCESS_KEY=<your wfirma_access_key>' -e 'WFIRMA_SECRET_KEY=<your wfirma_secret_key>' -e 'WFIRMA_APP_KEY=<your wfirma_app_key>' -- npx -y wfirma-mcp@1.0.0
إعداد JSON (Claude Desktop وCursor وVS Code)
{
    "mcpServers": {
        "wfirma-mcp": {
            "command": "npx",
            "args": [
                "-y",
                "wfirma-mcp@1.0.0"
            ],
            "env": {
                "WFIRMA_ACCESS_KEY": "<your wfirma_access_key>",
                "WFIRMA_SECRET_KEY": "<your wfirma_secret_key>",
                "WFIRMA_APP_KEY": "<your wfirma_app_key>"
            }
        }
    }
}

متغيرات البيئة

  • WFIRMA_ACCESS_KEY إلزامي سري wFirma access key from your panel (Integrations → API)
  • WFIRMA_SECRET_KEY إلزامي سري wFirma secret key paired with the access key
  • WFIRMA_APP_KEY إلزامي سري wFirma app key for the API application

التوثيق

مأخوذ من ملف README للمشروع على GitHub ويُحدَّث أسبوعيًا. تفتح الروابط على GitHub.

المحتويات
  1. wFirma MCP
  2. Tools (9, all read-only)
  3. Why read-only
  4. Setup
  5. Design notes
  6. License

wFirma MCP

Unofficial, read-only MCP server for the wFirma API v2 (api2.wfirma.pl). Gives MCP-compatible AI assistants typed, read-only access to company data, invoices, contractors, expenses, and payments — with credentials that never leave your machine and no commercial middleware between you and wFirma.

Not affiliated with wFirma. "wFirma" is a trademark of its respective owner.

Tools (9, all read-only)

ToolEndpoint
wfirma_list_companiesGET /user_companies/find
wfirma_list_invoicesGET /invoices/find
wfirma_get_invoiceGET /invoices/get/{id}
wfirma_list_contractorsGET /contractors/find
wfirma_get_contractorGET /contractors/get/{id}
wfirma_list_expensesGET /expenses/find
wfirma_get_expenseGET /expenses/get/{id}
wfirma_list_paymentsGET /payments/find
wfirma_get_paymentGET /payments/get/{id}

Every company-scoped tool requires the internal companyId returned by wfirma_list_companies. A Polish NIP is not accepted as a company id.

Why read-only

The server intentionally contains no add, edit, delete, send, fiscalization, KSeF, or payment-mutation operation. The full list of excluded categories, reviewed against the official documentation at doc.wfirma.pl, is recorded in coverage-manifest.json. If you need writes, use wFirma's own tooling — not this server.

Setup

Credentials

wFirma API keys are created in your wFirma panel (Integrations → API). Required environment variables:

  • WFIRMA_ACCESS_KEY
  • WFIRMA_SECRET_KEY
  • WFIRMA_APP_KEY

See .env.example. Never commit real values.

Build
pnpm install
pnpm build      # → dist/index.js (self-contained esbuild bundle)
pnpm test       # all HTTP traffic is mocked; no live account needed
Claude Desktop / any stdio MCP client
{
  "mcpServers": {
    "wfirma": {
      "command": "node",
      "args": ["/absolute/path/to/wfirma-mcp/dist/index.js"],
      "env": {
        "WFIRMA_ACCESS_KEY": "your-access-key",
        "WFIRMA_SECRET_KEY": "your-secret-key",
        "WFIRMA_APP_KEY": "your-app-key"
      }
    }
  }
}
Claude Code / Cursor (scope: project)
claude mcp add wfirma -- node /absolute/path/to/wfirma-mcp/dist/index.js

Design notes

  • No runtime dependencies beyond the MCP SDK and zod. The client uses Node's stdlib https with a hard 20s timeout and a bounded response-size guard.
  • Fail-closed error taxonomy. Missing credentials, non-numeric company ids, oversized responses, and auth failures each raise a distinct wfirma_* error code instead of a generic failure.
  • No PII in logs. Tool parameters are never logged.
  • Coverage manifest. coverage-manifest.json maps every tool to its endpoint, risk class, and the test that proves it; a CI test enforces the manifest stays in sync with the source.

License

MIT

الأسئلة الشائعة

ما هو io.github.agente-dev/wfirma-mcp؟

Unofficial read-only MCP server for the wFirma API v2: invoices, contractors, expenses, payments.

كيف أثبّت io.github.agente-dev/wfirma-mcp؟

يعمل على جهازك. في Claude Code: claude mcp add wfirma-mcp -e 'WFIRMA_ACCESS_KEY=<your wfirma_access_key>' -e 'WFIRMA_SECRET_KEY=<your wfirma_secret_key>' -e 'WFIRMA_APP_KEY=<your wfirma_app_key>' -- npx -y wfirma-mcp@1.0.0. وفي العملاء الآخرين، الصق إعداد JSON من هذه الصفحة في إعدادات MCP الخاصة بهم.

هل يحتاج io.github.agente-dev/wfirma-mcp إلى مفتاح API؟

نعم. يتطلب WFIRMA_ACCESS_KEY, WFIRMA_SECRET_KEY, WFIRMA_APP_KEY، وتضبطها في إعداداته.

هل io.github.agente-dev/wfirma-mcp مفتوح المصدر؟

نعم. شيفرته متاحة على GitHub بترخيص MIT.

من يصون io.github.agente-dev/wfirma-mcp؟

ينشره agente-dev. يدرجه AI.tn لكنه لا يصونه ولا يوصي به.

من سجل MCP الرسمي. الإدراج ليس توصية: راجع شيفرة الخادم وصلاحياته قبل منحه الوصول إلى بياناتك.