# ictfax-mcp [Health: Active]

**Category:** 💻 Developer Tools  
**Repository:** https://github.com/ictinnovations/ictfax-mcp  
**GitHub Stars:** 17  
**Views:** 0  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/ictfax-mcp

## Description
List and track faxes on ICTFax, and send faxes when writes are enabled, over ICTCore REST.

## Claude Desktop Quick Installation
Install path detected from listing signals. Uses `npx` (confidence: high):

```json
"mcpServers": {
  "ictfax-mcp": {
    "command": "npx",
    "args": ["-y","ictfax-mcp"]
  }
}
```

## Documentation & README

# ictfax-mcp

A [Model Context Protocol](https://modelcontextprotocol.io) server for
**[ICTFax](https://www.ictfax.org)**, the open-source fax server built on the
ICTCore framework by [ICT Innovations](https://ictinnovations.com).

It lets an AI assistant list fax transmissions and check their status, and — only
when you turn writes on — upload a document and send a fax.

## Install

```bash
npx -y ictfax-mcp      # no install
npm install -g ictfax-mcp
```

Requires Node.js 18 or newer.

## Configure

| Variable | Required | Default | |
|----------|----------|---------|--|
| `ICTFAX_BASE_URL` | yes | | ICTCore REST base, normally ending in `/api`, e.g. `https://your-ictfax/api` |
| `ICTFAX_USERNAME` | yes | | API account email (ICTCore logs in by email) |
| `ICTFAX_PASSWORD` | yes | | Password for that account |
| `ICTFAX_ACCOUNT_ID` | no | `1` | Account id to send faxes from |
| `ICTFAX_MCP_ALLOW_WRITE` | no | `false` | Unlock upload/send (see Safety) |
| `ICTFAX_TIMEOUT_MS` | no | `30000` | Per-request timeout |
| `ICTFAX_TLS_INSECURE` | no | `false` | Skip TLS verification — self-signed test servers only |

### Claude Desktop example

```json
{
  "mcpServers": {
    "ictfax": {
      "command": "npx",
      "args": ["-y", "ictfax-mcp"],
      "env": {
        "ICTFAX_BASE_URL": "https://your-ictfax/api",
        "ICTFAX_USERNAME": "admin@example.com",
        "ICTFAX_PASSWORD": "your-password"
      }
    }
  }
}
```

## Tools

Read tools are always available:

| Tool | What it does |
|------|--------------|
| `ictfax_list_faxes` | List fax transmissions (id, contact, status, direction) |
| `ictfax_get_fax_status` | Status of one transmission by id |

Write tools appear only when `ICTFAX_MCP_ALLOW_WRITE=true`:

| Tool | What it does |
|------|--------------|
| `ictfax_upload_document` | Upload a local PDF as a fax document; returns a document_id |
| `ictfax_send_fax` | Send a local document as a fax to a number — dials a real number |

## Safety

The server is **read-only by default**. Sending a fax dials a real number and can
cost money, so `ictfax_upload_document` and `ictfax_send_fax` are not registered at
all unless you set `ICTFAX_MCP_ALLOW_WRITE=true`.

## How it connects

ICTFax runs on ICTCore, which authenticates with a JWT from `POST /authenticate`
(login by email) and reads it back from the `Authorization: Bearer` header. Sending
a fax is a short chain the server handles for you: upload the document (metadata
then raw bytes, which ICTFax converts to fax format), create the recipient and a
sendfax program, create the transmission and send it.

## About

Built by Tahir Almas at [ICT Innovations](https://ictinnovations.com) — the team
behind ICTFax, ICTPBX, ICTContact, ICTDialer and the ICTCore framework these share.
ICTFax is free and open source; learn more at [ictfax.org](https://www.ictfax.org).

MIT licensed. Issues and PRs welcome at
[github.com/ictinnovations/ictfax-mcp](https://github.com/ictinnovations/ictfax-mcp).

