io.github.ictinnovations/ictfax-mcp

Official registry Other

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

Install

Add this to your client's MCP configuration (Claude Desktop: claude_desktop_config.json; Cursor: .cursor/mcp.json; VS Code and others use the same "mcpServers" shape).

NPM package ictfax-mcp
Claude Code
claude mcp add ictfax-mcp -e 'ICTFAX_BASE_URL=<ICTFAX_BASE_URL>' -e 'ICTFAX_USERNAME=<ICTFAX_USERNAME>' -e 'ICTFAX_PASSWORD=<your ictfax_password>' -e 'ICTFAX_ACCOUNT_ID=1' -e 'ICTFAX_MCP_ALLOW_WRITE=false' -e 'ICTFAX_TIMEOUT_MS=30000' -e 'ICTFAX_TLS_INSECURE=false' -- npx -y ictfax-mcp@0.1.1
JSON configuration (Claude Desktop, Cursor, VS Code)
{
    "mcpServers": {
        "ictfax-mcp": {
            "command": "npx",
            "args": [
                "-y",
                "ictfax-mcp@0.1.1"
            ],
            "env": {
                "ICTFAX_BASE_URL": "<ICTFAX_BASE_URL>",
                "ICTFAX_USERNAME": "<ICTFAX_USERNAME>",
                "ICTFAX_PASSWORD": "<your ictfax_password>",
                "ICTFAX_ACCOUNT_ID": "1",
                "ICTFAX_MCP_ALLOW_WRITE": "false",
                "ICTFAX_TIMEOUT_MS": "30000",
                "ICTFAX_TLS_INSECURE": "false"
            }
        }
    }
}

Environment variables

  • ICTFAX_BASE_URL required ICTCore REST base URL of your ICTFax server, normally ending in /api, e.g. https://your-ictfax/api.
  • ICTFAX_USERNAME required API account email (ICTCore logs in by email).
  • ICTFAX_PASSWORD required secret Password for the account.
  • ICTFAX_ACCOUNT_ID Account id to send faxes from. Defaults to 1.
  • ICTFAX_MCP_ALLOW_WRITE Unlocks uploading documents and sending faxes, which dials a real number and can cost money. When false those tools are not registered at all. Leave off unless you mean it.
  • ICTFAX_TIMEOUT_MS Per request timeout in milliseconds. Defaults to 30000.
  • ICTFAX_TLS_INSECURE Skip TLS certificate verification. Only for a self-signed test server.

Documentation

From the project's README on GitHub, refreshed weekly. Links open on GitHub.

Contents
  1. ictfax-mcp
  2. Install
  3. Configure
  4. Tools
  5. Safety
  6. How it connects
  7. About

ictfax-mcp

A Model Context Protocol server for ICTFax, the open-source fax server built on the ICTCore framework by ICT Innovations.

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

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

Requires Node.js 18 or newer.

Configure

VariableRequiredDefault
ICTFAX_BASE_URLyesICTCore REST base, normally ending in /api, e.g. https://your-ictfax/api
ICTFAX_USERNAMEyesAPI account email (ICTCore logs in by email)
ICTFAX_PASSWORDyesPassword for that account
ICTFAX_ACCOUNT_IDno1Account id to send faxes from
ICTFAX_MCP_ALLOW_WRITEnofalseUnlock upload/send (see Safety)
ICTFAX_TIMEOUT_MSno30000Per-request timeout
ICTFAX_TLS_INSECUREnofalseSkip TLS verification — self-signed test servers only
Claude Desktop example
{
  "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:

ToolWhat it does
ictfax_list_faxesList fax transmissions (id, contact, status, direction)
ictfax_get_fax_statusStatus of one transmission by id

Write tools appear only when ICTFAX_MCP_ALLOW_WRITE=true:

ToolWhat it does
ictfax_upload_documentUpload a local PDF as a fax document; returns a document_id
ictfax_send_faxSend 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 — the team behind ICTFax, ICTPBX, ICTContact, ICTDialer and the ICTCore framework these share. ICTFax is free and open source; learn more at ictfax.org.

MIT licensed. Issues and PRs welcome at github.com/ictinnovations/ictfax-mcp.

Frequently asked questions

What is io.github.ictinnovations/ictfax-mcp?

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

How do I install io.github.ictinnovations/ictfax-mcp?

It runs on your machine. In Claude Code: claude mcp add ictfax-mcp -e 'ICTFAX_BASE_URL=<ICTFAX_BASE_URL>' -e 'ICTFAX_USERNAME=<ICTFAX_USERNAME>' -e 'ICTFAX_PASSWORD=<your ictfax_password>' -e 'ICTFAX_ACCOUNT_ID=1' -e 'ICTFAX_MCP_ALLOW_WRITE=false' -e 'ICTFAX_TIMEOUT_MS=30000' -e 'ICTFAX_TLS_INSECURE=false' -- npx -y ictfax-mcp@0.1.1. For other clients, paste the JSON configuration from this page into their MCP settings.

Does io.github.ictinnovations/ictfax-mcp need an API key?

Yes. It expects ICTFAX_BASE_URL, ICTFAX_USERNAME, ICTFAX_PASSWORD, which you set in its configuration.

Is io.github.ictinnovations/ictfax-mcp open source?

Yes. Its code is on GitHub under the MIT license.

Who maintains io.github.ictinnovations/ictfax-mcp?

It is published by ictinnovations. AI.tn lists it but does not maintain or endorse it.

From the official MCP Registry. Listing is not an endorsement: review a server's code and permissions before giving it access to your data.