Back to Directory/Developer Tools

io.github.ictinnovations/ictfax-mcp

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

Developer ToolsTypeScriptv0.1.0

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.

Installation

Source-derived launch command. Check the maintainer’s required arguments and credentials before running:

bash
npx -y ictfax-mcp

Set up in your AI client

Merge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.

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

Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.

Claude Desktop setup reference

Package

ictfax-mcpnpm

Compatible MCP Clients

io.github.ictinnovations/ictfax-mcp works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.

  • Claude Desktop~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.
  • Cursor~/.cursor/mcp.jsonRestart Cursor for changes to take effect.
  • VS Code.vscode/mcp.jsonReload VS Code window for changes to take effect.
  • Windsurf~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect.
  • Claude Code.mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.

Learn More