---
title: Troubleshooting
slug: mcp-server/mcp-troubleshooting
docTags: 
createdAt: 2026-05-14T11:24:47.433Z
---

***

## Setup Issues

### Tools icon not showing after restart

The 🔧 icon in Claude Desktop's chat input should appear once the MCP server connects. If it doesn't:

**1. Confirm mcp-remote is installed**

```bash
npm list -g mcp-remote
# Should show: mcp-remote@x.x.x
```

If missing: `npm install -g mcp-remote`

**2. Validate your JSON config**

Open your config file:

- Mac: `~/Library/Application Support/Claude/claude_desktop_config.json`
- Windows: `%APPDATA%\Claude\claude_desktop_config.json`

Common mistakes:

- Trailing comma after the last item in an object
- Missing closing brace `}`
- Unescaped double quotes inside the `AUTH_HEADER` string

Validate with:

```bash
cat ~/Library/Application\ Support/Claude/claude_desktop_config.json | python3 -m json.tool
```

If it errors, it'll show you the line number.

**3. Update Claude Desktop**

Go to Claude menu → Check for Updates. The MCP integration requires a recent version.

**4. Check the logs**

Mac: `~/Library/Logs/Claude/mcp-server-exotel.log`

***

### "Authentication failed" or 401 error

Your token is wrong or expired.

**Regenerate the token:**

```bash
echo -n "YOUR_API_KEY:YOUR_API_SECRET" | base64
```

Common causes:

- Space or newline in the token string
- Copied API Key but not API Secret (or vice versa)
- Account SID doesn't match the credentials

**Verify the Account SID** — log into [my.exotel.com](https://my.exotel.com) → API Settings. The SID in your config must match exactly.

**Check the AUTH\_HEADER format** — it must be a valid JSON string with all fields:

```json
{
  "token": "...",
  "from_number": "...",
  "caller_id": "...",
  "account_sid": "...",
  "api_domain": "https://api.in.exotel.com",
  "exotel_portal_url": "https://my.exotel.com"
}
```

***

## Call Issues

### Call placed but phone doesn't ring

**Check outbound calling is enabled** — log into the dashboard → Numbers. The number you're calling FROM needs outbound calling active.

**Check account balance** — prepaid accounts need credit. Dashboard → Billing.

**Check the destination format** — the number being called must be in international format:

- ✅ `+919XXXXXXXXX`
- ❌ `9XXXXXXXXX`
- ❌ `09XXXXXXXXX`

***

### Call rings but no bot voice / bot goes silent immediately

**Enable greeting interruption is off** — if the bot cuts out right after dialing, it's likely being interrupted by silence detection or IVR prompts. Ask Claude to update the bot config:

```javascript
Update my VoiceBot to disable greeting interruption
```

**IVR screener** — some mobile numbers play "record your name" before connecting. The bot needs explicit instructions to handle this. Ask Claude:

```javascript
Update my VoiceBot's instructions to handle IVR screeners — 
respond with name and purpose, then wait for connection
```

**Account balance** — insufficient balance can cause the call to connect but the VoiceBot session to fail silently.

***

### Call completed but Claude returns no transcript

The transcript takes a few seconds to appear after the call ends. Wait 10–15 seconds and ask:

```javascript
Get the transcript of my last VoiceBot call
```

If it's still missing:

- The call may have ended before the bot said anything (destination rejected, immediate busy)
- Check the recording URL from the call details — if there's a recording, there's a transcript

***

### Bot gives wrong answer / goes off-topic

The bot's instructions need updating. Tell Claude what the bot should do differently:

```javascript
Update my VoiceBot: only ask about the delivery status, 
nothing else. If asked anything else, say 
"I'll pass that to the team" and end the call.
```

***

## SMS Issues

### SMS not delivered

**Check the DLT registration** — in India, SMS requires DLT (Distributed Ledger Technology) registration. Templates must be pre-approved. Transactional SMS to unregistered templates will fail.

**Check the number format** — destination must be `+91XXXXXXXXXX`.

**Check sender ID** — your sender ID (the name that appears on the SMS) must be registered.

***

### SMS delivered but content is wrong / truncated

SMS has a 160-character limit per segment. Longer messages are sent as multi-part SMS and may appear truncated on some handsets. Keep messages under 160 characters or confirm multi-part delivery is enabled on your account.

***

## Region Issues

### "Invalid domain" or connection errors

Make sure your `api_domain` matches your account type:

| Account type    | `api_domain`                |
| --------------- | --------------------------- |
| India-hosted    | `https://api.in.exotel.com` |
| Globally-hosted | `https://api.exotel.com`    |

**How to tell:** Check your Exotel dashboard URL. If it's `my.in.exotel.com` you're India-hosted. If it's `my.exotel.com`, use the global domain. Using the wrong one will cause authentication or connection failures.

***

## Getting More Help

**Check your logs first** — `~/Library/Logs/Claude/mcp-server-exotel.log` often has the exact error from the API.

**Exotel Developer Docs** — [developer.exotel.com/api/exotel-mcp-server](https://developer.exotel.com/api/exotel-mcp-server)

**Exotel Support** — [support.exotel.com](https://support.exotel.com)

When contacting support, include:

- Your Account SID
- The exact error message from the logs
- The tool you were trying to use
