dSIPRouter MCP Server
Officialby dOpensource
README.md
# dSIPRouter MCP Server
This repository contains the dSIPRouter MCP Server, which provides an interface to interact with dSIPRouter from conversational AI chatbots such as Claude and ChatGPT.
## Overview
The MCP (Model Context Protocol) server allows AI assistants to perform various operations on dSIPRouter, including managing endpoint groups, carrier groups, inbound mappings, and retrieving call data.
## Example Questions
Here are some example questions you can ask the AI assistant when using this MCP server:
- List the endpoint groups of dSIPRouter
- List the carrier groups of dSIPRouter
- Create a CSV file with all of the calls that happened yesterday
- List all inbound numbers
Here's a screenshoot from Claude when asking to "list all inbound numbers"

## Requirements
- [dSIPRouter](https://dsiprouter.org/) 0.70 or later
- [dSIPRouter Core License](https://dopensource.com/product/dsiprouter-core-subscription-with-stirshaken/) - Contains a 7 Day Trial License
## Setup for Claude Desktop
### Using Python on Host Machine
#### Validate that the MCP Server is Working
1. Install dependencies:
```bash
pip install -r requirements.txt
```
2. Set environment variables:
- `DSIP_BASE_URL`: The base URL of your dSIPRouter instance
- `DSIP_TOKEN`: Your dSIPRouter API token
- `DSIP_VERIFY_SSL`: Whether to verify SSL certificates (default: true)
- `DSIPMCP_CERT`: File location of the certificate
- `DSIPMCP_KEY`: File location of the key
- `DSIPMCP_CA`: File location of the CA
- `DSIPMCP_PORT`: Define the port being used. The default is 443
3. Run the server:
```bash
python main.py --http
```
Note: You will not see any output if it's running successfully
4. Stop the Server:
Hit Ctrl-C twice to kill the server
5. Configure the MCP Server for one or more conversation AI chatbots per the sections below.
#### Configure Claude
Running the MCP Server on your local system
##### On MacOS
1. Open Claude Configuration File:
```bash
nano ~/Library/Application\ Support/Claude/claude_desktop_config.json
```
2. Add the following:
```
{
"mcpServers": {
"dsiprouter": {
"command": "python",
"args": ["/full/path/to/main.py"],
"env": {
"DSIP_BASE_URL": "https://your-dsiprouter-server:5000",
"DSIP_TOKEN": "your-dsiprouter-api-token",
"DSIP_VERIFY_SSL": "true"
}
}
}
}
```
3. Save the file
4. Start Claude
### Using Python using Virtual Environment (venv)
#### Validate that the MCP Server is Working
1. Install dependencies:
```bash
python -m venv .venv
source ./.venv/bin/activate
pip install -r requirements.txt
```
2. Set environment variables:
- `DSIP_BASE_URL`: The base URL of your dSIPRouter instance
- `DSIP_TOKEN`: Your dSIPRouter API token
- `DSIP_VERIFY_SSL`: Whether to verify SSL certificates (default: true)
For example,
```bash
export DSIP_BASE_URL=https://your url:5000
export DSIP_TOKEN=your token
export DSIP_VERIFY_SSL=true
```
3. Run the server:
```bash
python main.py
```
Note: You will not see any output if it's running successfully
4. Stop the Server:
Hit Ctrl-C twice to kill the server
5. Configure the MCP Server for one or more conversation AI chatbots per the sections below.
#### Configure Claude
##### On MacOS
1. Open Claude Configuration File:
```bash
nano ~/Library/Application\ Support/Claude/claude_desktop_config.json
```
2. Add the following:
```
{
"mcpServers": {
"dsiprouter": {
"command": "<your path>/dsiprouter-mcp-server/.venv/bin/python3",
"args": ["<your path>/code/dsiprouter-mcp-server/main.py"],
"env": {
"DSIP_BASE_URL": "https://your-dsiprouter-server:5000",
"DSIP_TOKEN": "your-dsiprouter-api-token",
"DSIP_VERIFY_SSL": "true"
}
}
}
}
```
3. Save the file
4. Start Claude
## Setup for ChatGPT
### Using Python on Host Machine
#### Start the MCP Server in HTTP Mode
1. Install dependencies:
```bash
pip install -r requirements.txt
```
2. Set environment variables:
- `DSIPMCP_CERT`: File location of the certificate
- `DSIPMCP_KEY`: File location of the key
- `DSIPMCP_CA`: File location of the CA. Not required
- `DSIPMCP_PORT`: Define the port being used. The default is 443
- `DSIP_BASE_URL`: The base URL of your dSIPRouter instance
- `DSIP_TOKEN`: Your dSIPRouter API token
- `DSIP_VERIFY_SSL`: Whether to verify SSL certificates (default: true)
For example:
```
DSIPMCP_CERT=/etc/letsencrypt/live/demo-mcp.dsiprouter.net/fullchain.pem
DSIPMCP_KEY=/etc/letsencrypt/live/demo-mcp.dsiprouter.net/privkey.pem
DSIP_BASE_URL=https://demo.dsiprouter.net:5000
DSIP_TOKEN=<dsiprouter token>
```
3. Run the server:
```bash
python main.py --http
```
If you are running this on a machine without external ip address then set the DSIPMCP_PORT=8000 and restart the MCP Server.
4. Expose the local server using ngrok
Open up another terminal, download ngrok, register with ngrok and start ngrok
```bash
ngrok http 8000
```
### Setting up ChatGPT to use the dSIPRouter MCP Server
1. Login to ChatGPT
2. Click Settings, then Apps
3. Enable Developer Mode
4. Click Create App
5. Enter in the basic info and for the MCP Server URL enter the ngrok external ip address and add /mcp to the end of it. Note, select No-Authentication. The screen should look like this

6. Click Create
7. Start a new chat and ask it a question like "list all carrier groups in dsiprouter". You will get a response like this

## Other Info
### dSIPRouter API Token
The dSIPRouter API Token is displayed after the initial install of dSIPRouter. Their is no way to obtain your token if you didn't store it. You can reset your dSIPRouter API Token by running this command on your dSIPRouter Server.
```bash
dsiprouter setcredentials -ac YOUR_TOKEN
```
### No valid dSIPRouter SSL Cert
If you don't have a valid SSL certificate then set DSIP_VERIFY_SSL as falseThis server cannot be deployed
Maintenance
ActivityInactive
ResponsivenessNo issues