---
title: "iletiMerkezi MCP Server"
description: "Official Model Context Protocol server that connects the iletiMerkezi SMS API to Claude, Cursor, Cline, and other MCP-aware LLM clients."
slug: /en/docs/mcp
locale: en
audience: developer
last_updated: 2026-04-29
related: [overview, authentication, send-sms, get-report]
alternates:
  tr: https://www.iletimerkezi.com/docs/mcp
  en: https://www.iletimerkezi.com/en/docs/mcp
---

# iletiMerkezi MCP Server

`@iletimerkezi/mcp-server` is the official Model Context Protocol server that connects the iletiMerkezi SMS API to MCP-aware LLM clients (Claude Desktop, Cursor, Cline, …). The LLM takes your natural-language request, picks the right tool call, and interprets the response — sending SMS, pulling delivery reports, checking balance, and managing blacklists all happen inside a single conversation.

The server is fully open-source under MIT, written in TypeScript: [`iletimerkezi/iletimerkezi-mcp-server`](https://github.com/iletimerkezi/iletimerkezi-mcp-server).

## The 7 tools

| Tool | API endpoint | Purpose |
|---|---|---|
| `send_sms` | `POST /v1/send-sms/json` | Send SMS to one or many numbers |
| `get_report` | `POST /v1/get-report/json` | Order delivery report (summary + per-recipient) |
| `get_balance` | `POST /v1/get-balance/json` | Account balance (TL + SMS credits) |
| `get_sender` | `POST /v1/get-sender/json` | Approved sender (header) list |
| `get_blacklist` | `POST /v1/get-blacklist/json` | Blocked numbers (paginated) |
| `add_blacklist` | `POST /v1/add-blacklist/json` | Block a number (idempotent) |
| `delete_blacklist` | `POST /v1/delete-blacklist/json` | Unblock a number |

## Setup (Claude Desktop)

Add an `mcpServers` entry to `claude_desktop_config.json`:

```json
{
  "mcpServers": {
    "iletimerkezi": {
      "command": "npx",
      "args": ["-y", "@iletimerkezi/mcp-server"],
      "env": {
        "ILETIMERKEZI_API_KEY": "your-api-key",
        "ILETIMERKEZI_API_HASH": "your-api-hash"
      }
    }
  }
}
```

Both values come from `panel.iletimerkezi.com` → **Settings → Security → API Access**. Don't compute the hash yourself — the panel issues a precomputed value. See [authentication](./api/authentication.md).

After a full quit-and-relaunch of Claude Desktop, open a new conversation and click the tool icon below the message box; you should see the "iletimerkezi" server with 7 tools.

> **Important prerequisite:** The panel's **Settings → Security → Access Permissions → Allow API access** toggle must be ON. If it is off, every call returns `401`. The server's error message walks you through this exact toggle.

## Cursor, Cline, and other clients

The same `mcpServers` config works in Cursor (`~/.cursor/mcp.json`), Cline, and other MCP-aware clients. Only the file path changes; the command and env vars are identical.

## Single source of truth

`@iletimerkezi/mcp-server` does not author its own tool schemas. Tool definitions are pulled at runtime from [`/api/manifest.json`](/api/manifest.json), which is generated from the canonical iletiMerkezi endpoint documentation. A documentation update propagates to every running MCP client within 24 hours — no `npm update` required.

This setup means:

- **Drift = 0** between the live API and what the LLM sees.
- If iletimerkezi.com is unreachable, the server keeps working using a **build-time fallback** baked into the npm package at publish time.
- New endpoints become tools as soon as the docs are published.

## Example prompts

A single English sentence becomes one tool call behind the scenes:

- "Show me my balance." → `get_balance`
- "Send 'Your appointment is tomorrow at 2pm' to 905XXXXXXXXX." → `send_sms` (sender, iys, full envelope handled automatically)
- "Pull the delivery report for order 312988299." → `get_report`
- "Block this number." → `add_blacklist`
- "List my approved sender IDs." → `get_sender`

## Security

- The API Key + Hash carry full account permissions; if leaked, a single API call can drain the balance.
- Never commit credentials to source code or output files; the MCP client config stays on your local machine.
- The server does not retain credentials in memory; it reads them from env on every call.
- For production integrations, enable IP restriction and rotate keys monthly.

## Help and contributing

- Bug reports: [GitHub Issues](https://github.com/iletimerkezi/iletimerkezi-mcp-server/issues)
- API documentation: [API overview](./api/overview.md)
- Error codes: [Error codes table](./api/error-codes.md)
- Support: `destek@emarka.com.tr`
