io.github.ictinnovations/ictfax-mcp
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).
ictfax-mcpclaude 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
{
"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_URLrequired ICTCore REST base URL of your ICTFax server, normally ending in /api, e.g. https://your-ictfax/api.ICTFAX_USERNAMErequired API account email (ICTCore logs in by email).ICTFAX_PASSWORDrequired secret Password for the account.ICTFAX_ACCOUNT_IDAccount id to send faxes from. Defaults to 1.ICTFAX_MCP_ALLOW_WRITEUnlocks 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_MSPer request timeout in milliseconds. Defaults to 30000.ICTFAX_TLS_INSECURESkip TLS certificate verification. Only for a self-signed test server.
Documentation
From the project's README on GitHub, refreshed weekly. Links open on GitHub.
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
| 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
{
"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 — 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.