Skip to main content
Glama
skiddgoddamn

tgtrack-mcp

by skiddgoddamn

tgtrack-mcp

Manage a tgtrack / «Откуда Подписки» account from an AI agent — channels, ad-system integrations, tracking-script settings, goals and links — with no official API.

license MCP TypeScript tests PRs welcome

English · Русский

Why

tgtrack ("Откуда Подписки") tracks where your Telegram subscribers come from and feeds offline "subscription" conversions back to Yandex Metrika / Direct. All of it — channels, "advertising systems" (integrations), the landing tracking-script, goals, links, daily reports — lives only in the settings.tgtrack.ru panel. There is no public API.

tgtrack-mcp exposes that control plane as MCP tools. It talks to the same internal endpoints the panel uses and signs every request exactly like the panel does (a short-lived JWT plus an md5-based request signature), so an AI agent (Claude, etc.) can list channels, read and create integrations, tweak the script settings, goals and links — in one turn.

  • 🔑 Uses your panel token — a JWT read from the settings.tgtrack.ru URL; nothing is scraped or hardcoded

  • 🧩 18 focused tools — read + safe writes; destructive actions gated behind confirm: true

  • 🧮 Panel-accurate signingH = md5(md5(JSON + T) + T), verified against a live sample

  • 🪶 TypeScript, ESM, strict — thin, MIT, no account secrets in the repo

Related MCP server: telegram-ads-mcp

How it works

Every call is a POST to https://api.tgtrack.ru/API/settings/<endpoint>.php with a multipart/form-data body of two fields:

JSON = JSON.stringify({ ...params, T, tn })   // T = unix seconds, tn = your JWT
H    = md5( md5(JSON + T) + T )               // request signature (T is the salt)

The response is a { S, D, M } envelope: S === 0 means success and the payload is D.data; otherwise the tool returns a typed error (217/218 = bad/expired token → a clear "refresh your token" message).

Requirements

  1. Node ≥ 18.

  2. A tgtrack token (TGTRACK_TOKEN): open settings.tgtrack.ru, and copy the t= value from the address bar (or the tgtrack_token cookie). It is short-lived (~72 h); tgtrack has no working refresh endpoint, so re-paste it when it expires.

Setup

npm install
npm run build

Register it with your MCP client (see .mcp.json.example):

{
  "mcpServers": {
    "tgtrack": {
      "command": "node",
      "args": ["dist/index.js"],
      "env": { "TGTRACK_TOKEN": "<the ?t=... JWT from settings.tgtrack.ru>" }
    }
  }
}

Tools

Read

Tool

Purpose

tgtrack_list_channels

List all channels / groups / bots on the account.

tgtrack_get_channel

Full channel: integrations (ad systems), links, script & report settings.

tgtrack_get_integration_script

Build the ready <script> + click.tgtrack.ru link from linkID + counterID (no API call).

Integrations ("advertising systems")

Tool

Purpose

tgtrack_create_integration

Create an integration. For yandex returns grantAccessUrl + webCreationCode (finish the OAuth grant in a browser).

tgtrack_set_script_settings

Script settings of an integration (strict mode, conversion delay, auto-approve, goal flags…).

tgtrack_update_goal

Update a goal (name/value in Metrika), optionally create it.

tgtrack_yandex_web_create_status

Poll Yandex auto-goal creation by webCreationCode.

tgtrack_get_restore_yandex_link

Link to re-grant Yandex access for an integration.

Tool

Purpose

tgtrack_get_landings

Landings attached to a channel / integration.

tgtrack_set_link_url

Change a link's target URL.

tgtrack_set_link_name

Rename a link / integration.

tgtrack_set_outbound_link_params

Params of an under-post button link (target, button text, subscription check).

tgtrack_set_channel_auto_approve

Toggle auto-approval of join requests.

tgtrack_set_report_settings

Daily-report toggles (morning report, send-if-no-subs, traffic report).

Dangerous — require confirm: true

Tool

Purpose

tgtrack_delete_invite_link

⚠️ Delete an invite link / integration (irreversible).

tgtrack_delete_outbound_link

⚠️ Delete an outbound link (irreversible).

tgtrack_new_api_token

⚠️ Mint a new API key — invalidates the previous one.

tgtrack_new_report_key

⚠️ Mint a new report key — invalidates the previous one.

Without confirm: true the dangerous tools return a description of what they would do and never touch the API.

Usage

Run the MCP server over stdio, or call a tool directly for scripting:

node dist/index.js                                   # MCP (stdio)

TGTRACK_TOKEN=... npx tsx src/run.ts tgtrack_list_channels
TGTRACK_TOKEN=... npx tsx src/run.ts tgtrack_get_channel '{"chatID":"600334c8b9b9e"}'
TGTRACK_TOKEN=... npx tsx src/run.ts tgtrack_get_integration_script \
  '{"linkID":"5cd4255d831d9e","counterID":"110494105"}'

Streamable HTTP transport:

TGTRACK_TOKEN=... node dist/index.js --http --port 3001   # /mcp, /health

Scope

Included (v1): the full settings/management control plane — channels, integrations, script settings, goals, links, reports.

Not included yet:

  • Analytics data (subscribers over time, source breakdown, conversions) — this lives behind a separate reporting API keyed by a report key (tgtrack_new_report_key). Planned for v2.

  • Admin tools (deleteChannel, changeUserAccess, …) — planned behind a flag (v1.1).

  • MAX (max.tgtrack.ru) parity — behind a service option.

Security

The token lives only in your environment (TGTRACK_TOKEN) — never in the repo, never logged, never echoed in error messages. .mcp.json and .env are git-ignored; only .mcp.json.example (with a placeholder) is committed.

Contributing

Contributions welcome — open an issue or a PR.

  1. Fork and branch: git checkout -b feature/my-change

  2. npm install; npm run build and npm test must pass

  3. Never commit secrets (the JWT / .env / a real .mcp.json) or real account data

  4. Open a PR describing what and why

License

MIT

Available Tools

18 tools
tgtrack_create_integrationA

Создать интеграцию («рекламную систему»). Для yandex вернёт grantAccessUrl + webCreationCode (нужно завершить OAuth в браузере).

ParametersJSON Schema
NameRequiredDescriptionDefault
chatIDYesID канала tgtrack
linkNameYesНазвание интеграции (напр. «Яндекс Директ», «Лендинг Tilda»)
accessTokenNoOAuth access token (когда нужен ручной токен)
counterNumberNoНомер счётчика Я.Метрики (для yandex/website)
goalSubscribeNouserDidSubscribe
goalToChannelNotoTelegram
integrationTypeNoТип рекламной системы. Для лендинга с Метрикой — yandex.yandex
goalOpenTelegramNouserDidOpenTelegram
withMetrikaCounterNoНа странице есть счётчик Я.Метрики
linkAutoApproveDelayNo
closedInviteTargetUrlNoЦелевой URL для закрытого инвайта
enableLinkAutoApproveNo
enableGoalOpenTelegramNo

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, so the description must carry the full burden. It partially discloses behavior by noting that for yandex it returns grantAccessUrl and webCreationCode requiring OAuth completion, but it omits details for other integration types, side effects, or success/failure states.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the main action, no unnecessary words. Efficiently conveys core purpose and a key behavioral note.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 13 parameters, no output schema, and no annotations, the description is too brief. It does not explain prerequisites, return format (for non-yandex types), or the overall context of integration creation. Significant gaps remain for an AI agent to use this tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 54%, meaning some parameters lack schema descriptions. The description does not add any parameter-level meaning beyond what is in the schema, failing to compensate for the missing descriptions. It only mentions yandex-related output, not parameter usage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ('Create an integration') and adds a key detail about yandex behavior. It clearly distinguishes from sibling tools which focus on deletion, retrieval, or updates of links and channels.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for creating integrations but does not provide explicit guidance on when to use this tool vs alternatives, nor does it mention conditions where it should not be used.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

tgtrack_get_channelA

Полная инфа по каналу: интеграции (рекламные системы), ссылки, настройки скрипта и отчётов.

ParametersJSON Schema
NameRequiredDescriptionDefault
chatIDYesID канала tgtrack (виден в URL панели ?chat=..., напр. 600334c8b9b9e)

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description fully discloses behavior. It describes the returned content (integrations, links, settings, reports). For a read-only operation, this is sufficient; no side effects are mentioned but not expected.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, front-loaded with purpose, efficiently lists return categories. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description adequately explains the returned information. It compensates for lack of output schema by listing key data categories. Could mention response format but not required.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with a clear description for chatID. The tool description adds no new meaning beyond the schema parameter description, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it retrieves full channel info including integrations, links, script settings, and reports. It uses specific verbs and resources, and distinguishes from siblings like list_channels which likely returns a channel list.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies use for getting comprehensive channel data but does not explicitly state when to use versus alternatives. No exclusions or guidelines comparing to sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

tgtrack_get_integration_scriptA

Собрать готовый landing-скрипт + click-ссылку по linkID и counterID (без запроса к API).

ParametersJSON Schema
NameRequiredDescriptionDefault
linkIDYeslinkID интеграции (из get_channel → integrations[].linkID)
counterIDYesНомер счётчика Яндекс.Метрики, привязанного к интеграции

TDQS

A3.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so the description takes full burden. While it notes 'без запроса к API' (no API request), which is a key behavioral insight, it does not disclose permissions, side effects, or state changes. However, for a read-like tool, the no-API-request detail is significant transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence conveying core functionality without verbosity. Could improve by front-loading the result type, but remains efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema and no description of return value format. The agent cannot determine whether the result is a string, object, or file. For a tool assembling something, output details are critical.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has 100% description coverage for both parameters (linkID and counterID). The description adds no additional meaning beyond the schema's parameter descriptions, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb 'собрать' (assemble) and identifies the resource as a landing script and click link. It clearly distinguishes from sibling tools like 'tgtrack_get_landings' (likely returns list) by specifying assembly of ready-made script.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use or when to avoid this tool. No mention of alternatives among siblings. The description only states what it does, not the context of use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

tgtrack_get_landingsC

Лендинги, привязанные к каналу/интеграции.

ParametersJSON Schema
NameRequiredDescriptionDefault
chatIDYes
linkIDNoОграничить одной интеграцией

TDQS

C2.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, and the description does not disclose any behavioral traits such as read-only nature, permissions, or side effects. Only states what resource is retrieved.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise but under-specified. It lacks front-loaded essential details, making it insufficient for understanding tool usage.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations, no output schema, and many sibling tools, the description is completely inadequate. It does not specify return format, error conditions, or relationships to other tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds no parameter information. The schema has 50% coverage (linkID documented, chatID not). The description fails to explain the required chatID or how parameters interact.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the tool gets 'landings attached to channel/integration', but 'landings' is not defined. The purpose is somewhat clear but vague, and it does not distinguish from siblings like tgtrack_get_channel.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives. No context about prerequisites or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

tgtrack_list_channelsB

Список всех каналов/групп/ботов пользователя в tgtrack.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It only states the tool lists entities but does not disclose read-only nature, whether it returns full details or summaries, or any pagination/performance characteristics. For a read tool, this is insufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that conveys the core purpose without extraneous information. It is appropriately sized for a simple list operation, though it could be slightly improved with a more active verb structure.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no parameters and a straightforward action, the description covers the basics. However, with no output schema, it should at least hint at what fields or format the list returns (e.g., IDs, names). The lack of such detail leaves some gaps for an agent expecting to parse the result.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0 parameters with 100% coverage. The description adds meaning by clarifying what is listed (channels, groups, bots). Baseline for 0 params is 4, and the description meets it by providing context beyond the empty schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly indicates it lists all channels/groups/bots of the user in tgtrack. It specifies the resource type and scope (user's own entities), distinguishing it from sibling tools like tgtrack_get_channel which targets a single item. However, using a noun ('List') instead of an active verb slightly reduces clarity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives (e.g., when to use list vs get_channel). There are no prerequisites, exclusions, or context about its role among siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

tgtrack_new_api_tokenA

⚠️ Создать новый API-ключ канала — ИНВАЛИДИРУЕТ предыдущий. Требует confirm:true.

ParametersJSON Schema
NameRequiredDescriptionDefault
chatIDYes
confirmNo

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses critical behavioral trait: invalidates the previous API key. Also notes required confirm parameter being true. With no annotations, description carries full burden and provides strong transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Extremely concise: single sentence with warning emoji, action statement, and required condition. No extraneous text. Front-loaded with critical warning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers purpose, critical behavioral warning, and parameter requirement. Missing return value or success indicator, but no output schema exists. Mostly complete for a simple mutation tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so description must add meaning. It specifies confirm:true as required, giving semantics for that parameter. chatID is implied to identify the channel, but no format or additional detail. Adds value but incomplete.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description states 'Create a new API key for channel' with a specific verb and resource. It distinguishes from sibling tools like tgtrack_create_integration or tgtrack_new_report_key by specifying channel API key. The warning about invalidation adds clarity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Description implies use requires confirmation (confirm:true) but does not explicitly state when to use vs alternatives or when not to use. No exclusion or alternative guidance provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

tgtrack_new_report_keyA

⚠️ Создать новый ключ отчётов — инвалидирует предыдущий. Требует confirm:true.

ParametersJSON Schema
NameRequiredDescriptionDefault
chatIDYes
confirmNo

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses the destructive behavior of invalidating the previous key and requires confirm:true, adding important safety context. No annotations are provided, so the description carries the full burden. While it could detail the invalidation process more, it effectively warns about the impact.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with a warning emoji, conveying the essential information efficiently and front-loading the caution. Every phrase earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the core purpose, destructive effect, and the confirm requirement. However, it omits explanation of the required 'chatID' parameter and does not describe the return value or output. Given the tool's simplicity (2 parameters, no output schema), this is a notable gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds meaning for the 'confirm' parameter by stating it must be true, but the schema has a default of false, creating a contradiction. The 'chatID' parameter is required but completely unexplained. With 0% schema coverage, the description should compensate more thoroughly.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states that the tool creates a new report key and invalidates the previous one. The verb 'create' and resource 'report key' are specific, and the invalidation detail distinguishes it from other tgtrack tools, none of which appear to involve report keys.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions that the tool requires confirm:true, providing a usage condition. However, it does not explicitly state when to use this tool versus alternatives (e.g., other key management tools like tgtrack_new_api_token) or when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

tgtrack_set_channel_auto_approveB

Вкл/выкл авто-одобрение заявок на вступление в канал.

ParametersJSON Schema
NameRequiredDescriptionDefault
chatIDYes
autoApproveYesАвто-одобрение заявок на вступление

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry the full burden. It correctly indicates the tool toggles a boolean state (auto-approve). However, it does not disclose side effects, required permissions, or whether the operation is reversible. For a simple toggle, this is adequate but minimal.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded phrase with no extraneous words. Every word contributes meaning, making it efficient for an AI agent to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (2 required params, no output schema, no annotations), the description covers the core purpose. However, it lacks details on prerequisites (e.g., channel existence), return value, or error conditions. It is minimally complete but not comprehensive.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 50% description coverage (autoApprove has a description, chatID does not). The tool description adds no parameter-specific information beyond the action; it does not explain what chatID represents or the format required. The description fails to compensate for the schema gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Вкл/выкл' – enable/disable) and the resource ('авто-одобрение заявок на вступление в канал' – auto-approval of channel join requests). This verb-resource pair is distinct from sibling tools, which focus on creating integrations, deleting links, fetching channel data, etc.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives, nor does it mention any prerequisites or exclusions. It simply states what the tool does without context for selection among siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

tgtrack_set_report_settingsC

Настройки ежедневных отчётов канала (утренний отчёт, если нет подписок, отчёты по трафику).

ParametersJSON Schema
NameRequiredDescriptionDefault
chatIDYes
sendIfNoSubsNoПрисылать, даже если нет подписок/отписок
sendMorningReportNo
sendTrafficReportNo

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must convey behavior. It only lists settings without disclosing side effects, permissions, or safety. The tool likely performs a write operation, but this is not stated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single short sentence, front-loaded with key information. It earns its place by summarizing the tool's purpose efficiently, though it could be structured with bullet points for clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given four parameters, no output schema, and low schema documentation, the description fails to explain return values, error conditions, prerequisites (e.g., chatID must exist), or the exact effect of each setting. A tool that modifies settings should provide more comprehensive context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds context for three boolean parameters (morning report → sendMorningReport, if no subs → sendIfNoSubs, traffic reports → sendTrafficReport), but chatID is not explained. With only 25% schema description coverage, the description partially compensates but leaves gaps.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states 'Channel daily report settings (morning report, if no subscriptions, traffic reports)', clearly indicating the tool configures report settings for a channel. It distinguishes from sibling tools that set other channel properties like auto-approve or link names.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives. No conditions, prerequisites, or exclusions are mentioned. Siblings include other set tools but no differentiation is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

tgtrack_set_script_settingsC

Изменить настройки скрипта интеграции (strictMode, conversionDelay, авто-одобрение, флаги целей и т.п.).

ParametersJSON Schema
NameRequiredDescriptionDefault
chatIDYes
linkIDYeslinkID интеграции
strictModeNo
autoApproveNo
conversionDelayNo
trackThroughWebAppNo
leadMagnetSubscriberNo
sendGoalDidOpenTelegramNo
sendGoalStayedInChannelNo
stayedInChannelCheckDelayNo

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry the full burden. It states the tool changes settings, implying a write operation, but gives no details on destructiveness, authorization needs, side effects, or what happens after changes.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence that front-loads the purpose and then lists examples. It is appropriately sized and structured, though it could include more details without becoming verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 10 parameters, no output schema, and no annotations, the description is insufficient. It does not explain return values, side effects, required permissions, or constraints, leaving many gaps for an AI agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 10%, but the description lists examples like strictMode, conversionDelay, auto-approval, and goal flags, adding some context beyond the minimal schema. However, most parameters remain undefined, and the description does not explain values or constraints.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Изменить' (change) and the resource 'настройки скрипта интеграции' (integration script settings), with examples of settings. It distinguishes itself from sibling tools by specifying 'script settings' which is unique among the set tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. With many sibling tools, the description does not indicate prerequisites, when not to use, or mention other related tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

tgtrack_update_goalB

Обновить цель интеграции (имя/значение цели в Метрике), опционально создать её.

ParametersJSON Schema
NameRequiredDescriptionDefault
chatIDYes
linkIDYes
goalNameYesИмя цели (напр. userDidSubscribe / toTelegram / userDidOpenTelegram)
goalValueYesНовое значение идентификатора цели в Метрике
needToCreateGoalNoСоздать цель в Метрике, если её ещё нет

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden. It only states 'update' and 'optionally create', but does not disclose behavior when the goal doesn't exist, required permissions, or side effects. Minimal transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence in Russian, front-loading the action. It is efficient and avoids verbosity, though a bit brief.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 5 parameters, no output schema, and no annotations, the description is incomplete. It does not explain return values, success/failure behavior, or provide sufficient context for a tool that modifies an integration.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 60%, providing descriptions for goalName, goalValue, and needToCreateGoal. The description adds context by linking 'name/goal value in Metrica' to the parameters, but does not cover chatID or linkID. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'update' and the resource 'integration goal in Metrica', and mentions optional creation. This distinguishes it from sibling tools like tgtrack_create_integration, which handle creation only.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for updating or optionally creating a goal, but lacks explicit guidance on when to use this tool versus alternatives like tgtrack_create_integration. No prerequisites or exclusions are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

tgtrack_yandex_web_create_statusB

Статус авто-создания целей в Яндексе по webCreationCode из create_integration.

ParametersJSON Schema
NameRequiredDescriptionDefault
chatIDYes
webCreationCodeYesКод из ответа create_integration (yandex)

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description should carry the full burden of behavioral disclosure. It does not state whether the tool is read-only, what side effects exist, or any authentication or rate limiting requirements. The description only states what it does, not its 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence with no wasted words. It is front-loaded with the key purpose. However, it could benefit from a slightly more detailed structure, such as mentioning the response type, for higher scores.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, no annotations, and two parameters, the description is too brief. It does not explain the possible status values, error scenarios, or the relationship with create_integration beyond the parameter link. A complete description would list example statuses and provide usage context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 50% (chatID has no description). The description adds meaning to webCreationCode by stating it comes from create_integration, but chatID remains unexplained. The description partly compensates for the missing schema documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves the auto-creation status of Yandex goals using a webCreationCode from create_integration. It uses a specific verb (status) and resource (auto-creation goals), and distinguishes itself from sibling tools like tgtrack_create_integration and tgtrack_update_goal.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies this tool should be used after tgtrack_create_integration to check progress, but it does not explicitly state when to use it, when not to use it, or mention alternatives. The context is clear but lacks formal guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 18 tool updatesv0.1.0
    • First observedtgtrack_create_integration
    • First observedtgtrack_delete_invite_link
    • First observedtgtrack_delete_outbound_link
    • First observedtgtrack_get_channel
    • First observedtgtrack_get_integration_script
    • First observedtgtrack_get_landings
    • First observedtgtrack_get_restore_yandex_link
    • First observedtgtrack_list_channels
    • First observedtgtrack_new_api_token
    • First observedtgtrack_new_report_key
    • First observedtgtrack_set_channel_auto_approve
    • First observedtgtrack_set_link_name
    • First observedtgtrack_set_link_url
    • First observedtgtrack_set_outbound_link_params
    • First observedtgtrack_set_report_settings
    • First observedtgtrack_set_script_settings
    • First observedtgtrack_update_goal
    • First observedtgtrack_yandex_web_create_status

TDQS

A3.5/5.0

Scored across 18 tools

Disambiguation5/5

Each tool targets a distinct resource or action (e.g., create integration, delete link, get channel info), with no overlapping purposes. Descriptions further clarify unique roles.

Naming Consistency5/5

All tools follow a consistent 'tgtrack_verb_noun' pattern using snake_case, with verbs like create, delete, get, list, set, new, update. Only minor variation like 'new' vs 'create' but pattern is uniform.

Tool Count5/5

18 tools is well-scoped for managing integrations, channels, links, reports, and settings. Not excessive, and each tool serves a clear purpose within the domain.

Completeness5/5

The set covers CRUD-like operations for integrations, links, channels, and settings, plus specialized actions for Yandex OAuth, script generation, and goal updates. No obvious gaps for the server's scope.

Maintenance

ActivityStale
ResponsivenessNo issues

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

Related MCP Servers

  • F
    license
    Not graded
    quality
    C
    maintenance
    Russian-market marketing & ops MCP toolkit. 7 unified servers for Yandex.Direct, Yandex.Webmaster, Google Search Console (RU), YouTube Data API, VK Wall, Telegram publishing, and Click.ru (Telegram Ads + VK Ads + Yandex.Direct unified). The only complete RU-platform bundle for AI agents.
    2
    -
  • A
    license
    A
    quality
    B
    maintenance
    An MCP server that lets AI agents read and manage Telegram Ads campaigns, including listing accounts and ads, reading stats and budgets, and creating/updating ads, CPM, status, and budget by driving the real ads.telegram.org web UI through Playwright with a reused cookie-based login session.
    11
    1
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Provides typed tools for ads.telegram.org, enabling login via Playwright and a read-only watcher through a local stdio MCP server.
    MIT

Latest Blog Posts

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/skiddgoddamn/tgtrack-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server