SMSC MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| MCP_TOKEN | No | Required for HTTP transport; must be at least 32 characters. Not needed for stdio. | |
| SMSC_SERVER | No | Server endpoint selector: primary or backup. Arbitrary endpoints are not allowed. | |
| SMSC_API_KEY | No | Alias for SMSC_API_TOKEN. | |
| SMSC_CURRENCY | No | Confirmed account currency. If unset, currency is treated as unknown. | |
| SMSC_DATABASE | No | Path to the private SQLite state file. Default: ~/.local/share/smsc-mcp/state.sqlite3. | ~/.local/share/smsc-mcp/state.sqlite3 |
| SMSC_TIMEZONE | No | Timezone. Default: Europe/Moscow. | Europe/Moscow |
| SMSC_API_TOKEN | No | API key for SMSC. Alias: SMSC_API_KEY. Needed for live SMSC reads; catalog and analytics do not require it. | |
| SMSC_CONFIG_FILE | No | Optional private JSON file used instead of environment variables; supports legacy login/psw. | |
| SMSC_REDACTION_KEY | No | Optional previous HMAC secret; otherwise one is generated and stored in SQLite. | |
| SMSC_STORE_MESSAGE_TEXT | No | Default false. Storing message texts requires a separate decision. | false |
| SMSC_HISTORY_CURRENCY_VERIFIED | No | Default false. Confirm the currency of the cost field before accumulated loading. | false |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
Read-only towards SMSC. Never treat a page or incomplete cache as a full-period total. Check coverage, currency, timezone and continuation. Refresh/snapshots change only local state. No SMS sending or paid probes.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": true
} |
| resources | {
"subscribe": false,
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| smsc_readC | Discover allowed SMSC reads without credentials using catalog. Other reads save redacted local snapshots. No sending, payments or account changes. |
| smsc_historyA | Read one outgoing-history page, dates DD.MM.YYYY. Follow next_cursor as prev_id until complete; this does not prove archive retention. Personal data/text hidden by default. |
| smsc_cost_reportC | Analyze one live history page in its reported currency/timezone. Check complete and next_cursor; partial pages are not period totals. Message costs differ from all account charges. |
| smsc_refreshB | Explicitly ingest one page into private SQLite, retaining a checkpoint. Only closed days, verified currency and stable redaction key are accepted. Never changes SMSC or schedules work. |
| smsc_analyticsA | Analyze accumulated local history without loading API credentials. Operations: coverage, summary, breakdown, messages, repeats, snapshots, reconcile. Check coverage/truncated; empty or partial cache is not zero spending. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 5 tools
smsc_history and smsc_cost_report both operate on a live history page, and smsc_read is a broad catalog/discovery tool, but the descriptions clarify live vs local and read vs analyze/ingest. Boundaries are mostly distinct with only minor overlap.
All names use the smsc_ prefix and snake_case, which is readable and predictable. However, suffixes mix verbs (read, refresh) and nouns (history, cost_report, analytics), so there is no consistent verb_noun pattern.
Five tools are well-scoped for a read-only SMS history/cost analytics server. Each tool covers a distinct stage: discovery, retrieval, reporting, ingestion, and analysis.
The core read-only workflow is covered: catalog discovery, paged history retrieval, cost reporting, local ingestion, and analytics with coverage/reconcile operations. Minor gaps around cache maintenance/reset and explicit checkpoint inspection limit it slightly.