iletiMerkezi MCP Server
OfficialClick on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@iletiMerkezi MCP ServerSend SMS to 905551234567 saying 'Your OTP is 1234'"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
iletiMerkezi MCP Server
Model Context Protocol server for the iletiMerkezi SMS API. Lets MCP-aware LLM clients (Claude Code, Cursor, Codex CLI, Gemini CLI, VS Code+Cline, Claude Desktop, …) send SMS, query delivery reports, and manage senders / blacklists through tool calls.
iletiMerkezi is a Turkish, BTK-licensed bulk SMS / OTP / A2P platform. Tool shapes (input schemas, descriptions, doc links) are derived from a canonical API manifest that is built from the official endpoint documentation, so this server stays in lock-step with the live API by design.
Tools
Tool | API endpoint | Notes |
|
| Send SMS to one or many numbers (transactional 100/sec, bulk 50,000/request) |
|
| Cancel a future-scheduled order before dispatch |
|
| Single-order delivery report (summary + per-recipient) |
|
| Order summary list within a date range (max 10 days) |
|
| Account balance (TL + SMS credits) |
|
| Approved sender (header) list |
|
| Blocked numbers (paginated) |
|
| Block a number (idempotent) |
|
| Unblock a number |
|
| Register İYS consent records (batch, max 5000) |
|
| Look up İYS consent status for a recipient |
Related MCP server: ileti-merkezi-mcp
Installation
Five clients share the same JSON mcpServers schema; Claude Code and Codex CLI also expose a one-line CLI command. Pick your client below.
Client → config file
Client | Config file | Format |
Claude Code |
| JSON |
Cursor |
| JSON |
Gemini CLI |
| JSON |
VS Code + Cline |
| JSON |
Claude Desktop |
| JSON |
Codex CLI |
| TOML |
Shared JSON config (Claude Code, Cursor, Gemini CLI, VS Code+Cline, Claude Desktop)
Add this block to the relevant config file:
{
"mcpServers": {
"iletimerkezi": {
"command": "npx",
"args": ["-y", "@iletimerkezi/mcp-server"],
"env": {
"ILETIMERKEZI_API_KEY": "your-api-key",
"ILETIMERKEZI_API_HASH": "your-api-hash"
}
}
}
}Fully quit and relaunch the client. The 11 tools appear under the iletimerkezi server.
Claude Code — single command
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-serverClose the current Claude Code session and start a new one. Tools appear as mcp__iletimerkezi__*. Remove with claude mcp remove iletimerkezi -s user.
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-serverOr 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, try get_balance and get_sender — both are read-only, neither burns credits.
Hosted clients (ChatGPT Apps, Gemini App, Claude Web Connectors)
These clients require remote MCP (HTTPS endpoints) and don't spawn local npx commands. This server ships in stdio (local) mode only today. Hosted support is on the roadmap.
Credentials
Both values come from panel.iletimerkezi.com → Settings → Security → API Access. Copy them as-is — do not hash them yourself; the panel issues a precomputed hash.
You also need to enable Allow API access under Settings → Security → Access Permissions, otherwise every call returns 401. This is the most common onboarding pitfall; the server's 401 error message points back to this toggle.
For the full authentication contract see https://www.iletimerkezi.com/docs/api/authentication.
How tool shapes stay fresh
On boot the server tries, in order:
Local cache at
~/.cache/iletimerkezi-mcp/manifest.json, valid for 24 hours.Live fetch of
https://www.iletimerkezi.com/api/manifest.json(5s timeout). On success, refreshes the cache atomically.Build-time fallback (
dist/manifest.fallback.json) shipped with the npm package — the manifest snapshot at the moment ofnpm publish.
This means new endpoints or schema changes published to the manifest propagate to running clients within 24 hours, with no npm update required. There is no manually written tool schema anywhere in this repo — the API documentation is the single source of truth.
You can override the manifest URL with ILETIMERKEZI_MANIFEST_URL for staging / preview environments.
Local development
npm install
npm run build
npm testSmoke-test the server against the live API with credentials in your shell:
ILETIMERKEZI_API_KEY=... ILETIMERKEZI_API_HASH=... node dist/index.jsThis speaks MCP over stdio. Use an MCP client to interact, or pipe a JSON-RPC handshake manually for debugging.
Reference
MCP setup guide: https://www.iletimerkezi.com/docs/mcp (TR) · /en/docs/mcp (EN)
Authentication: https://www.iletimerkezi.com/docs/api/authentication
Error codes: https://www.iletimerkezi.com/docs/api/error-codes
Manifest (machine-readable): https://www.iletimerkezi.com/api/manifest.json
Release notes: CHANGELOG.md
License
MIT — see LICENSE.
Available Tools
11 toolsadd_blacklistA
The add-blacklist endpoint adds one phone number to your account's blacklist so it is skipped by send-sms. Idempotent: re-adding the same number returns 200 instead of an error. One number per request.
Reference: https://www.iletimerkezi.com/en/docs/api/add-blacklist
| Name | Required | Description | Default |
|---|---|---|---|
| blacklist | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses idempotency (re-adding returns 200) and the effect on send-sms. This goes beyond the schema but lacks details on auth, rate limits, or side effects. Still, it provides key behavioral traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences plus a reference link, with no unnecessary words. Every sentence adds value: purpose, idempotency, limit per request.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the core operation, idempotency, and the relationship to send-sms. It lacks output format details (no output schema), but for a simple add operation this is acceptable. The reference link provides additional context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides a description for the 'number' parameter with accepted formats, so the description adds only 'one number per request.' With 0% schema description coverage counted, the tool description compensates partially but does not add significant extra meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('adds one phone number'), the target resource ('to your account's blacklist'), and the effect ('so it is skipped by send-sms'). It distinguishes from sibling tools like delete_blacklist (removal) and get_blacklist (listing).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions idempotency and 'one number per request,' which are important usage constraints. However, it does not explicitly state when to use this tool versus alternatives (e.g., delete_blacklist, get_blacklist), though the context of blacklist management makes it implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cancel_orderA
The cancel-order endpoint cancels an order created via send-sms with a sendDateTime in the future, before it is dispatched to the carrier. Only orders that have not started sending can be cancelled; once the order enters the send pipeline, the cancel window has closed and the request returns 455.
Reference: https://www.iletimerkezi.com/en/docs/api/cancel-order
| Name | Required | Description | Default |
|---|---|---|---|
| order | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses the cancel window and the error condition (455). However, it does not mention idempotency or side effects like irreversible cancellation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences plus a reference link. The core action and condition are front-loaded. No redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so description should explain what the tool returns on success. It only mentions the error case (455). Missing description of the success response format.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so description must compensate. The description explains that the order.id comes from a previous send-sms call and must be for a future-scheduled order. This adds context beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that cancel_order cancels a future-scheduled SMS order created via send-sms before dispatch. It distinguishes this tool from siblings like send_sms by specifying the precondition of a future sendDateTime.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly tells when to use: only for orders that have not started sending. States that once in the send pipeline, cancellation fails with error 455. Provides a reference link for more details.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_blacklistA
The delete-blacklist endpoint removes a phone number from your account's blacklist. After removal, send-sms can deliver to that number again. One number per request; not idempotent, removing a number that is not on the list returns an error.
Reference: https://www.iletimerkezi.com/en/docs/api/delete-blacklist
| Name | Required | Description | Default |
|---|---|---|---|
| blacklist | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Given no annotations, the description discloses non-idempotency and error behavior, and references external docs. It could be more explicit about authentication or rate limits but covers the key behavioral traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, two sentences with a reference, front-loading the purpose and effect without unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter and no output schema, the description covers purpose, behavior, error case, and provides an external reference, making it complete enough for correct usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already describes the number parameter with accepted formats. The description adds no additional parameter semantics beyond what the schema provides, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool removes a phone number from the blacklist and explicitly distinguishes from sibling tools like add_blacklist and get_blacklist by specifying the effect on SMS delivery.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear context when to use (to allow delivery to a number) and mentions non-idempotency and error conditions. However, it does not explicitly contrast with add_blacklist for adding numbers or suggest alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_balanceA
The get-balance endpoint returns the TL balance remaining on your account and the number of standard SMS messages that balance can fund. It has no side effects and consumes no credits, making it the safest call for verifying authentication and checking remaining budget before a campaign.
Reference: https://www.iletimerkezi.com/en/docs/api/get-balance
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description explicitly states the tool has no side effects and consumes no credits, which is critical behavioral information. With no annotations provided, the description fully carries the burden of transparency, and it does so effectively.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences front-load the core function and then provide usage context. A reference link is included. Every sentence is informative without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no parameters and no output schema, the description fully covers what the tool returns (balance and SMS count) and its side-effect-free behavior. It is complete enough for an agent to understand when to use and what to expect.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has no parameters, so schema coverage is 100%. The description adds value by explaining what the response contains (balance and SMS count), which goes beyond simply naming the tool. Given the absence of parameters, this explanation is valuable for correct usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns TL balance and number of standard SMS messages it can fund. It uses a specific verb ('get') and resource ('balance'). No sibling tools serve a similar purpose, so it is well-differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states the tool is safe for verifying authentication and checking remaining budget before a campaign, giving clear context for when to use. It does not explicitly mention when not to use or alternatives, but no sibling performs a similar function.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_blacklistA
The get-blacklist endpoint returns the list of phone numbers that you have blocked on your account. Numbers on this list are skipped during send-sms delivery. The call has no side effects and consumes no credits.
Reference: https://www.iletimerkezi.com/en/docs/api/get-blacklist
| Name | Required | Description | Default |
|---|---|---|---|
| blacklist | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses no side effects and no credit consumption, which is good. However, omits details on pagination and filtering behavior beyond what is in the schema. With no annotations, description carries full burden but could be richer.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences plus a reference link. Efficient and front-loaded with purpose. Minimal wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Missing details on pagination behavior, filter usage, and return format. No output schema provided. For a tool with nested parameters, the description is incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has detailed descriptions for all parameters (page, rowCount, filter), so baseline is 3. Description adds no additional parameter meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it returns the list of blocked phone numbers and explains the effect (skipped during send-sms). Distinguishes from siblings like add_blacklist and delete_blacklist.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Mentions 'no side effects and consumes no credits', which implies safe usage, but does not explicitly state when to use versus alternatives or when not to use. No comparative guidance with siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_reportA
The get-report endpoint returns the delivery report for an order created via send-sms. One response carries the overall order status, summary counters (total / delivered / undelivered / waiting), timestamps, sender, order price, and per-recipient delivery status. Large orders paginate via page + rowCount.
Reference: https://www.iletimerkezi.com/en/docs/api/get-report
| Name | Required | Description | Default |
|---|---|---|---|
| order | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavior. It thoroughly describes the response structure (status, counters, timestamps, sender, price, per-recipient status) and pagination. However, it does not mention authentication requirements or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, with two short paragraphs covering response contents and pagination. A reference link is included. Could be slightly more streamlined but effectively communicates necessary info.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of output schema, the description adequately explains the return values and pagination. It references external docs for completeness. Sibling context is clear. Minor gap: no error scenario coverage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already has detailed descriptions for each parameter (id, page, rowCount), so the description adds little beyond confirming pagination. Schema description coverage is effectively high, keeping baseline at 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it returns delivery reports for orders created via send-sms, listing specific fields. This distinguishes it from sibling tools like get_reports and get_balance, which serve different purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use after a send-sms call but does not explicitly state when not to use it or compare with alternatives like get_reports. Pagination details are mentioned but not prerequisites or error handling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_reportsA
The get-reports endpoint returns the aggregate summary list of all SMS orders created within a given date range. For each order the response carries counters (total / delivered / undelivered / waiting), timestamps, and sender; per-recipient breakdown is not included. For recipient-level details, call get-report for the specific order. This endpoint backs the Reports > Bulk SMS History screen in the panel. Typical use cases: dashboards, periodic analytics, queries like "list orders from the last week".
Reference: https://www.iletimerkezi.com/en/docs/api/get-reports
| Name | Required | Description | Default |
|---|---|---|---|
| filter | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It clearly indicates this is a read-only retrieval (returns list, no destructive language) and describes the response contents (counters, timestamps, sender). It does not explicitly say 'read-only', but the context implies it. The lack of explicit destructive caveats is acceptable for a 'get' tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (3 sentences), front-loads the main purpose, and uses every sentence to add value (purpose, limitations, use cases, sibling reference). No extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a list endpoint without output schema, the description sufficiently explains the response (counters, timestamps, sender), pagination (page parameter), and typical usage. It also links to external documentation. The sibling tools are contextually relevant for disambiguation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for parameter meanings. However, the description only mentions 'given date range' and does not describe the structure of the filter parameter, the start/end format, the page parameter, or the constraints (e.g., 10-day limit). The schema does provide some parameter descriptions, but the tool description fails to add value beyond what the schema already offers.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns an aggregate summary list of SMS orders within a date range, differentiating it from the per-recipient detail tool (get_report). It identifies the resource (SMS orders), the verb (returns list), and the scope (summary, date-filtered).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly tells when to use this tool (for aggregated summaries) and when to use an alternative ('For recipient-level details, call get-report'). It provides typical use cases like dashboards and periodic analytics. However, it does not explicitly state when not to use the tool beyond the sibling reference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_senderA
The get-sender endpoint returns the list of sender IDs (headers) registered and approved on your account. The order.sender field of send-sms only accepts values from this list; using anything else is rejected. The call has no side effects and consumes no credits.
Reference: https://www.iletimerkezi.com/en/docs/api/get-sender
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
States 'no side effects and consumes no credits,' which are critical behavioral traits. With no annotations, this disclosure is sufficient. Could mention rate limits, but not necessary for a simple list endpoint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences plus a reference link. Each sentence adds value: purpose, usage context, and behavioral notes. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Completely covers what the tool does, its purpose in relation to send-sms, and its safety profile. No output schema needed since return value is clearly described as a list of sender IDs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist in the schema (0 params, 100% coverage), so description doesn't need to add param info. Baseline 4 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it returns the list of sender IDs (headers) registered and approved on the account. The verb 'returns' and resource 'sender IDs' are specific. Siblings include unrelated tools like blacklist and balance, so no confusion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly explains that the result is used in send-sms's order.sender field and that non-list values are rejected. Provides clear context for when to use, though no direct alternatives or when-not-to-use are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
iys_checkA
The iys-check endpoint returns the current İYS (İleti Yönetim Sistemi) consent status for a given recipient. Use it to verify a record submitted via iys-register has been processed, to check ONAY (consent) / RET (rejection) before a commercial send, or to produce audit reports. The call has no side effects and consumes no credits.
Reference: https://www.iletimerkezi.com/en/docs/api/iys-check
| Name | Required | Description | Default |
|---|---|---|---|
| consent | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description must disclose behavioral traits. It states no side effects and no credit consumption, but lacks details on rate limits, authentication, or error behavior. Reference to external docs partially compensates.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, front-loaded with purpose, and every sentence adds value. No wasted words, and the reference link is appropriately placed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the nested input schema and no output schema, the description covers basic usage but lacks details on return format, error handling, or comparison with sibling tools. Complete enough for a simple check tool but could be improved.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% per context, so description must compensate. The description does not explain individual fields (e.g., brandCode, recipientType), only mentions 'recipient' and 'consent status'. This is insufficient for proper parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('returns') and resource ('current İYS consent status'), and distinguishes from the sibling tool iys_register by mentioning verification of a submitted record.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit use cases are provided (verifying processed records, checking consent before sending, audit reports), and it states no side effects, but does not explicitly list when not to use or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
iys_registerA
The iys-register endpoint creates İYS (İleti Yönetim Sistemi) consent records, the legally required Turkish national registry for commercial electronic messaging. Consents (or rejections) collected via web forms, signed contracts, call-center confirmations, etc. are submitted to iletiMerkezi through this endpoint and forwarded to the national İYS registry. Up to 5000 recipients per request. İYS registration is mandatory for any commercial SMS sent in Turkey. Without a valid consent record, the corresponding send-sms call with iys: "1" is rejected with code 468 / 469 / 470.
Reference: https://www.iletimerkezi.com/en/docs/api/iys-register
| Name | Required | Description | Default |
|---|---|---|---|
| consent | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries the full burden. It discloses atomicity (one bad record fails the whole batch), the 5000 limit, and the legal requirement. It lacks response details and authentication requirements, but the disclosed traits are valuable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is moderately concise, front-loaded with the core purpose, and includes a reference link. It could be slightly more streamlined but is not overly verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (nested parameters, no output schema, no annotations), the description should discuss response behavior, authentication, and error handling for the endpoint itself. It only mentions downstream rejection errors. Atomicity and limits help, but overall completeness is moderate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds only minimal parameter insight: the 5000 per request limit and atomicity. It does not explain brandCode, list structure, or consentDate constraints beyond what the schema provides. Since schema description coverage is 0%, the description should compensate but falls short.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool creates İYS consent records for the Turkish national registry, with a specific verb ('creates') and resource ('İYS consent records'). It distinguishes from sibling tools like iys_check and send_sms by focusing on registration.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides strong context: it emphasizes mandatory registration for commercial SMS and warns of rejection codes 468/469/470 if consent is missing. It does not explicitly list when not to use this tool, but the context is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_smsA
The send-sms endpoint delivers an SMS to one or many mobile numbers in a single request. Each request is treated as an order; the response returns an orderId you can use to retrieve delivery reports or cancel scheduled orders. One order per request, one sender (header) per order.
Reference: https://www.iletimerkezi.com/en/docs/api/send-sms
| Name | Required | Description | Default |
|---|---|---|---|
| order | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description covers key behaviors: the intentional misspelling of 'receipents' for backward compatibility, APITEST sender restrictions, scheduling nuances, and the automatic appending of B186 operator code. However, it omits rate limits or error handling details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two sentences and a reference link. It front-loads the main action and provides a reference for details. However, it could be slightly more structured (e.g., bullet points) for better readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity with nested objects and no output schema, the description fairly covers the essential behavioral aspects like order handling, sender restrictions, and scheduling. It also includes a reference for additional details, making it reasonably complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds minimal parameter info beyond what the input schema already provides. The schema has detailed descriptions for parameters like iys and sender, so the baseline is 3 due to high schema description coverage. The description does mention the 'receipents' misspelling, which is helpful but not critical.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool delivers SMS to one or many numbers in a single request and returns an orderId. It distinguishes from sibling tools like get_report or cancel_order by focusing on sending SMS.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly state when to use this tool vs alternatives, but the purpose is clear. It could mention that for checking delivery reports, use get_report, but overall it's adequate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool has a distinct, clearly defined purpose. Blacklist, order, and İYS operations each have separate tools for different actions (add/delete/get, cancel/report, check/register), with no overlap.
All tool names follow a consistent verb_noun pattern in snake_case, such as add_blacklist, get_report, send_sms. No deviations or mixed conventions.
11 tools is appropriate for the scope of an SMS API server, covering sending, blacklisting, reporting, balance, sender IDs, and İYS compliance. Neither too few nor too many.
The tool set covers the main operations: send SMS (CRUD on orders indirectly via cancel and reporting), blacklist management (add, delete, get), balance, sender info, and İYS consent (register and check). No obvious gaps for the advertised domain.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Send and schedule SMS and WhatsApp messages, manage contacts and templates, and track delivery.
Send SMS, manage contacts and groups, and read delivery reports. OAuth 2.1 SureSMS login.
Send SMS/MMS, manage contacts, and read campaigns, messages and media on SimpleTexting.
SMS Verify: SMS Verify API is a secure and easy-to-integrate service that sends verification codes.
Related MCP Servers
- AlicenseBqualityDmaintenanceIntegrates with the Promotexter SMS API to enable sending single SMS messages and performing detailed account balance inquiries. It provides a secure way for models to manage SMS communications and track transaction costs and credits.2MIT
- AlicenseAqualityBmaintenanceMCP server for Ileti Merkezi SMS API (Turkey). Enables sending SMS, bulk SMS, checking delivery reports, and managing contacts and blacklists via API Key + Hash authentication.8301MIT
- FlicenseAqualityDmaintenanceEnables sending SMS messages and checking delivery status and credit balance via the web2sms.ro Romanian SMS gateway.3
- AlicenseBqualityDmaintenanceEnables sending SMS, making calls, retrieving call recordings, managing phone numbers, and sending Viber messages through the MTS Exolve API.851MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/iletimerkezi/iletimerkezi-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server