{
  "markdown": "# ictfax-mcp\n\nA [Model Context Protocol](https://modelcontextprotocol.io) server for\n**[ICTFax](https://www.ictfax.org)**, the open-source fax server built on the\nICTCore framework by [ICT Innovations](https://ictinnovations.com).\n\nIt lets an AI assistant list fax transmissions and check their status, and — only\nwhen you turn writes on — upload a document and send a fax.\n\n## Install\n\n```bash\nnpx -y ictfax-mcp      # no install\nnpm install -g ictfax-mcp\n```\n\nRequires Node.js 18 or newer.\n\n## Configure\n\n| Variable | Required | Default | |\n|----------|----------|---------|--|\n| `ICTFAX_BASE_URL` | yes | | ICTCore REST base, normally ending in `/api`, e.g. `https://your-ictfax/api` |\n| `ICTFAX_USERNAME` | yes | | API account email (ICTCore logs in by email) |\n| `ICTFAX_PASSWORD` | yes | | Password for that account |\n| `ICTFAX_ACCOUNT_ID` | no | `1` | Account id to send faxes from |\n| `ICTFAX_MCP_ALLOW_WRITE` | no | `false` | Unlock upload/send (see Safety) |\n| `ICTFAX_TIMEOUT_MS` | no | `30000` | Per-request timeout |\n| `ICTFAX_TLS_INSECURE` | no | `false` | Skip TLS verification — self-signed test servers only |\n\n### Claude Desktop example\n\n```json\n{\n  \"mcpServers\": {\n    \"ictfax\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"ictfax-mcp\"],\n      \"env\": {\n        \"ICTFAX_BASE_URL\": \"https://your-ictfax/api\",\n        \"ICTFAX_USERNAME\": \"admin@example.com\",\n        \"ICTFAX_PASSWORD\": \"your-password\"\n      }\n    }\n  }\n}\n```\n\n## Tools\n\nRead tools are always available:\n\n| Tool | What it does |\n|------|--------------|\n| `ictfax_list_faxes` | List fax transmissions (id, contact, status, direction) |\n| `ictfax_get_fax_status` | Status of one transmission by id |\n\nWrite tools appear only when `ICTFAX_MCP_ALLOW_WRITE=true`:\n\n| Tool | What it does |\n|------|--------------|\n| `ictfax_upload_document` | Upload a local PDF as a fax document; returns a document_id |\n| `ictfax_send_fax` | Send a local document as a fax to a number — dials a real number |\n\n## Safety\n\nThe server is **read-only by default**. Sending a fax dials a real number and can\ncost money, so `ictfax_upload_document` and `ictfax_send_fax` are not registered at\nall unless you set `ICTFAX_MCP_ALLOW_WRITE=true`.\n\n## How it connects\n\nICTFax runs on ICTCore, which authenticates with a JWT from `POST /authenticate`\n(login by email) and reads it back from the `Authorization: Bearer` header. Sending\na fax is a short chain the server handles for you: upload the document (metadata\nthen raw bytes, which ICTFax converts to fax format), create the recipient and a\nsendfax program, create the transmission and send it.\n\n## About\n\nBuilt by Tahir Almas at [ICT Innovations](https://ictinnovations.com) — the team\nbehind ICTFax, ICTPBX, ICTContact, ICTDialer and the ICTCore framework these share.\nICTFax is free and open source; learn more at [ictfax.org](https://www.ictfax.org).\n\nMIT licensed. Issues and PRs welcome at\n[github.com/ictinnovations/ictfax-mcp](https://github.com/ictinnovations/ictfax-mcp).\n",
  "bytes": 2989,
  "sha": "8f56c9f5153277c7619422edeab88575f27b89a25b50cf4057d8c83a79762884",
  "repo_slug": "ictinnovations/ictfax-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_ictinnovations_ictfax_mcp_c8841b11/readme"
}