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.

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-05-05 · Türkçe