Ana içeriğe geç

iletiMerkezi MCP Server

@iletimerkezi/mcp-server is the official Model Context Protocol server that connects the iletiMerkezi SMS API to MCP-aware LLM clients such as Claude Code, Cursor, Codex CLI, Gemini CLI, VS Code (Cline), Claude Desktop, and other compatible clients. 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.

The 11 tools

ToolAPI endpointPurpose
send_smsPOST /v1/send-sms/jsonSend SMS to one or many numbers (transactional 100/sec, bulk 50,000/request)
cancel_orderPOST /v1/cancel-order/jsonCancel a future-scheduled order before dispatch
get_reportPOST /v1/get-report/jsonSingle-order delivery report (summary + per-recipient)
get_reportsPOST /v1/get-reports/jsonOrder summary list within a date range (max 10 days)
get_balancePOST /v1/get-balance/jsonAccount balance (TL + SMS credits)
get_senderPOST /v1/get-sender/jsonApproved sender (header) list
get_blacklistPOST /v1/get-blacklist/jsonBlocked numbers (paginated)
add_blacklistPOST /v1/add-blacklist/jsonBlock a number (idempotent)
delete_blacklistPOST /v1/delete-blacklist/jsonUnblock a number
iys_registerPOST /v1/consent/create/jsonRegister İYS consent records (batch, max 5000)
iys_checkPOST /v1/consent/show/jsonLook up İYS consent status for a recipient

Built for Turkey. iys_register lets you batch-create İYS consent records from the LLM conversation, iys_check returns the current consent status (ONAY / RET / source / date) for a single recipient, and send_sms iys=1 triggers a real-time İYS lookup before dispatch. One of the first MCP servers to expose İYS as a first-class surface.

Setup

System requirements

RequirementValue
Package@iletimerkezi/mcp-server (npm)
Minimum Node.js18.x (LTS recommended: 20.x or 22.x)
Run modenpx -y @iletimerkezi/mcp-server, no permanent install needed; npx attempts to use the latest version (an older one may be used if the local npx/pnpm cache is warm or you are offline)
Pinning a version (recommended)npx -y @iletimerkezi/[email protected], use it in production for deterministic behaviour

Check the latest published version with npm view @iletimerkezi/mcp-server version.

Every MCP-aware client follows the same pattern: add an iletimerkezi server entry to a config file, pass credentials as environment variables, restart the client. Five clients share an identical JSON schema; Codex CLI uses a different format (TOML).

Credentials (shared across clients)

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.

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.

Step required for a brand sender ID: A free account is enough to set up MCP and test with APITEST. Registering a brand sender ID requires an active subscription, which becomes active once you submit the application form in the panel and complete the identity-verified approval in the BTK e-Kayit service on e-Devlet. Step by step: Subscription application and e-Devlet approval (Turkish).

Which client, which file

ClientConfig fileFormat
Claude Codecommand: claude mcp add ... or .mcp.json (project) / ~/.claude.json (user)JSON mcpServers
Cursor~/.cursor/mcp.json (global) or .cursor/mcp.json (project)JSON mcpServers
Gemini CLI~/.gemini/settings.json (global) or .gemini/settings.json (project)JSON mcpServers
VS Code + Clinecline_mcp_settings.json (Cline UI > MCP Servers > Configure)JSON mcpServers
Claude Desktop~/Library/Application Support/Claude/claude_desktop_config.json (macOS)JSON mcpServers
Codex CLIcommand: codex mcp add ... or ~/.codex/config.tomlTOML [mcp_servers.X]

Shared JSON config

Cursor, Gemini CLI, VS Code+Cline, Claude Desktop, and Claude Code (project-scope .mcp.json) all accept the same JSON shape. Add this block to the relevant file:

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

Quit the client fully and reopen it. The 11 tools become available.

Claude Code, single command

Install at user scope (available across all projects):

claude mcp add iletimerkezi -s user \
  -e ILETIMERKEZI_API_KEY=your-api-key \
  -e ILETIMERKEZI_API_HASH=your-api-hash \
  -- npx -y @iletimerkezi/mcp-server

Close the current Claude Code session and start a new one. Tools appear under the mcp__iletimerkezi__* prefix. To remove: claude mcp remove iletimerkezi -s user.

For teams, drop a project-scope .mcp.json (the shared JSON shape above) at the repo root; each developer sets the env vars in their shell profile so credentials never land in the repo.

Codex CLI, TOML format

Via the CLI:

codex mcp add iletimerkezi \
  --env ILETIMERKEZI_API_KEY=your-api-key \
  --env ILETIMERKEZI_API_HASH=your-api-hash \
  -- npx -y @iletimerkezi/mcp-server

Or edit ~/.codex/config.toml directly:

[mcp_servers.iletimerkezi]
command = "npx"
args = ["-y", "@iletimerkezi/mcp-server"]

[mcp_servers.iletimerkezi.env]
ILETIMERKEZI_API_KEY = "your-api-key"
ILETIMERKEZI_API_HASH = "your-api-hash"

Verifying

On first use, prefer two account-safe tools because they don't burn credits:

  • get_balance, reads account balance
  • get_sender, lists approved sender IDs

If both succeed, the install is correct.

Single source of truth

@iletimerkezi/mcp-server does not author its own tool schemas. Tool definitions are pulled at runtime from /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:

  • The manifest is the canonical source for both the docs and the MCP tools, minimizing drift between the live API and what the LLM sees; a docs update propagates automatically to MCP.
  • 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
  • "List the SMS I sent last week." > get_reports (date range inferred automatically)
  • "Cancel the order I scheduled for tomorrow at 9am." > cancel_order
  • "Register these form responses in İYS as ONAY: ..." > iys_register (up to 5000 in one call)
  • "What's the İYS consent status for this 0533 number?" > iys_check
  • "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

Last updated: 2026-08-05 · Türkçe