Skip to content

axiscrm/MCP_Connector

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AXIS CRM MCP Server

An MCP (Model Context Protocol) server that exposes the AXIS CRM API as tools for Claude Desktop, Claude Code, and other AI tools.

Features

  • 75 tools covering all AXIS CRM API modules
  • Per-user authentication — bearer tokens via environment variables, not hardcoded
  • Dual transport — Stdio for local use, Streamable HTTP for enterprise/remote deployment
  • TypeScript with full type safety
  • Test suite — 46 tests via vitest

API Modules

Module Tools Description
Leads 6 List, search, get, create, update, copy leads
Notes 5 CRUD operations for lead notes
Files 3 List, get info, delete lead files
Tasks 6 Task templates, CRUD, status changes
Forms 7 Webform templates, load, save, submit, submissions
Emails 10 Email templates, send custom/template emails
SMS 8 SMS templates, send custom/template SMS
Documents 5 Document library management
Companies 4 Company and panel management
Applications 4 Application management
Policies 3 Policy and payment data
Min-IT 14 Min-IT integration (clients, contracts, payments)

Local Setup (From Scratch)

Prerequisites

  • Node.js 22+download here
  • Gitdownload here
  • An AXIS CRM API token — obtain from your CRM at Settings > API > Create New Token

Step 1: Clone the Repository

Windows (Command Prompt or PowerShell)

git clone https://github.com/axiscrm/MCP_Connector.git
cd MCP_Connector

macOS / Linux (Terminal)

git clone https://github.com/axiscrm/MCP_Connector.git
cd MCP_Connector

Step 2: Install Dependencies

npm install

Step 3: Build

npm run build

This compiles TypeScript from src/ to build/. The compiled entry point is build/index.js.

Step 4: Verify (Optional)

Run the test suite to confirm everything is working:

npm test

You should see all 46 tests pass.


Using with Claude Desktop

Claude Desktop connects to MCP servers via the claude_desktop_config.json file.

Locating the Config File

OS Path
Windows %APPDATA%\Claude\claude_desktop_config.json
macOS ~/Library/Application Support/Claude/claude_desktop_config.json

If the file doesn't exist, create it.

Windows Configuration

{
  "mcpServers": {
    "axis-crm": {
      "command": "node",
      "args": ["C:\\path\\to\\MCP_Connector\\build\\index.js"],
      "env": {
        "AXIS_API_TOKEN": "your-api-token-here",
        "AXIS_API_URL": "https://yourcompany.axiscrm.com.au"
      }
    }
  }
}

Note: On Windows, use double backslashes (\\) in the path.

macOS Configuration

{
  "mcpServers": {
    "axis-crm": {
      "command": "node",
      "args": ["/Users/yourname/MCP_Connector/build/index.js"],
      "env": {
        "AXIS_API_TOKEN": "your-api-token-here",
        "AXIS_API_URL": "https://yourcompany.axiscrm.com.au"
      }
    }
  }
}

After saving the config, restart Claude Desktop. The AXIS CRM tools will appear in the tools menu (hammer icon).


Using with Claude Code

Claude Code can register MCP servers via the CLI.

Windows

claude mcp add axis-crm -e AXIS_API_TOKEN=your-api-token-here -e AXIS_API_URL=https://yourcompany.axiscrm.com.au -- node C:\path\to\MCP_Connector\build\index.js

macOS / Linux

claude mcp add axis-crm \
  -e AXIS_API_TOKEN=your-api-token-here \
  -e AXIS_API_URL=https://yourcompany.axiscrm.com.au \
  -- node /path/to/MCP_Connector/build/index.js

Verifying the Connection

claude mcp list

You should see axis-crm listed. You can then use AXIS CRM tools directly in your Claude Code conversations.

Removing the Server

claude mcp remove axis-crm

Multiple Setups / Per-User Tokens

Each user can configure their own token with their own permissions. You can also set up multiple server instances with different tokens for different permission levels:

{
  "mcpServers": {
    "axis-crm-readonly": {
      "command": "node",
      "args": ["/path/to/MCP_Connector/build/index.js"],
      "env": {
        "AXIS_API_TOKEN": "read-only-token",
        "AXIS_API_URL": "https://yourcompany.axiscrm.com.au"
      }
    },
    "axis-crm-admin": {
      "command": "node",
      "args": ["/path/to/MCP_Connector/build/index.js"],
      "env": {
        "AXIS_API_TOKEN": "admin-token-with-full-access",
        "AXIS_API_URL": "https://yourcompany.axiscrm.com.au"
      }
    }
  }
}

Enterprise Deployment (Server / Team-Wide)

For team-wide access without requiring each user to clone, build, or manage tokens locally, deploy the MCP server in HTTP mode on a shared server (e.g., AWS EC2, ECS, or any Node.js host).

How It Works

In HTTP mode, the server runs as a long-lived process exposing a Streamable HTTP endpoint at /mcp. Team members point their Claude Desktop or Claude Code at the remote URL instead of running a local process.

Step 1: Deploy to Server

On your server (Linux example):

# Clone and build
git clone https://github.com/axiscrm/MCP_Connector.git
cd MCP_Connector
npm install
npm run build

Step 2: Run in HTTP Mode

AXIS_API_TOKEN=your-service-token \
AXIS_API_URL=https://yourcompany.axiscrm.com.au \
MCP_TRANSPORT=http \
MCP_PORT=3000 \
node build/index.js

The server will start and log:

AXIS CRM MCP Server running on http://localhost:3000
MCP endpoint: http://localhost:3000/mcp

Step 3: Keep It Running (systemd)

Create /etc/systemd/system/axis-crm-mcp.service:

[Unit]
Description=AXIS CRM MCP Server
After=network.target

[Service]
Type=simple
User=www-data
WorkingDirectory=/opt/MCP_Connector
Environment=AXIS_API_TOKEN=your-service-token
Environment=AXIS_API_URL=https://yourcompany.axiscrm.com.au
Environment=MCP_TRANSPORT=http
Environment=MCP_PORT=3000
ExecStart=/usr/bin/node build/index.js
Restart=on-failure
RestartSec=5

[Install]
WantedBy=multi-user.target

Enable and start:

sudo systemctl enable axis-crm-mcp
sudo systemctl start axis-crm-mcp

Step 4: Reverse Proxy (Recommended)

Place behind nginx or similar for TLS and access control:

server {
    listen 443 ssl;
    server_name mcp.yourcompany.com;

    ssl_certificate     /etc/ssl/certs/yourcompany.pem;
    ssl_certificate_key /etc/ssl/private/yourcompany.key;

    location /mcp {
        proxy_pass http://127.0.0.1:3000/mcp;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

Step 5: Team Members Connect

Each team member adds the remote server to their Claude Desktop config:

{
  "mcpServers": {
    "axis-crm": {
      "url": "https://mcp.yourcompany.com/mcp"
    }
  }
}

Or via Claude Code:

claude mcp add axis-crm --url https://mcp.yourcompany.com/mcp

Note: In remote HTTP mode, the API token is configured on the server side. Individual users do not need their own tokens — the server's token and permissions apply to all connections. For per-user tokens in a remote setup, a future version will support token passthrough via MCP authentication headers.

AWS Deployment Options

Option Best For Notes
EC2 Simple single-instance Run directly with systemd, put behind ALB
ECS (Fargate) Containerized, auto-scaling Dockerfile: FROM node:22-alpine, env vars via task definition
App Runner Simplest managed option Auto-builds from GitHub, set env vars in console

Example Dockerfile (for ECS / App Runner)

FROM node:22-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci --production
COPY build/ ./build/
ENV MCP_TRANSPORT=http
ENV MCP_PORT=3000
EXPOSE 3000
CMD ["node", "build/index.js"]

Build and push:

npm run build
docker build -t axis-crm-mcp .
docker tag axis-crm-mcp:latest <your-ecr-repo>:latest
docker push <your-ecr-repo>:latest

Set AXIS_API_TOKEN and AXIS_API_URL as environment variables in your ECS task definition or App Runner service configuration.


Environment Variables Reference

Variable Required Default Description
AXIS_API_TOKEN Yes Your AXIS CRM API bearer token
AXIS_API_URL Yes Your CRM base URL (e.g. https://yourcompany.axiscrm.com.au)
MCP_TRANSPORT No stdio Set to http for Streamable HTTP mode
MCP_PORT No 3000 Port for HTTP mode

Development

npm run dev        # Watch mode — recompiles on changes
npm run build      # One-time build
npm start          # Run the server (stdio mode)
npm test           # Run test suite
npm run test:watch # Run tests in watch mode

Project Structure

MCP_Connector/
├── src/
│   ├── index.ts              # Entry point (transport selection)
│   ├── server.ts             # MCP server setup, tool registration
│   ├── api-client.ts         # HTTP client wrapper for AXIS CRM API
│   ├── api-client.test.ts    # API client tests
│   ├── server.test.ts        # Server creation tests
│   └── tools/
│       ├── leads.ts          # Lead tools (6)
│       ├── notes.ts          # Note tools (5)
│       ├── files.ts          # File tools (3)
│       ├── tasks.ts          # Task tools (6)
│       ├── forms.ts          # Form tools (7)
│       ├── emails.ts         # Email tools (10)
│       ├── sms.ts            # SMS tools (8)
│       ├── documents.ts      # Document tools (5)
│       ├── companies.ts      # Company tools (4)
│       ├── applications.ts   # Application tools (4)
│       ├── policies.ts       # Policy tools (3)
│       ├── minit.ts          # Min-IT tools (14)
│       └── tools.test.ts     # Tool registration integration tests
├── docs/
│   └── API_Specification.md  # Full AXIS CRM API reference
├── build/                    # Compiled JS (git-ignored)
├── package.json
├── tsconfig.json
└── .gitignore

API Documentation

See docs/API_Specification.md for the full AXIS CRM API reference covering all endpoints, parameters, permissions, and response formats.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors