Mailganer API MCP
The Mailganer API MCP server provides a unified interface for exploring, searching, and interacting with cached Mailganer API documentation and Postman collections, with optional live API call support.
Documentation & Cache Management
Check sync status and health of cached docs and Postman collection
Re-sync documentation from web sources (all, API pages only, or Postman only)
Retrieve an API overview covering authentication, rate limits, and pagination
Compare a cached documentation page against the live site to identify differences
Browsing & Searching
List all cached API documentation pages, optionally filtered by category
Full-text search across cached API docs or the Postman collection
Fetch a specific endpoint doc page by slug, including linked Postman requests
Postman Collection
Search the Postman collection by keyword
Retrieve a specific Postman request by partial name or API path, along with linked documentation pages
Crosslink Management
Rebuild the crosslink index between documentation pages and Postman requests
List pages and requests that lack crosslinks, with documented reasons for the gaps
Live API Calls (requires MAILGANER_API_KEY)
Check whether an API key is configured (without exposing it)
Prepare HTTP method, path, auth, and body for a call based on a doc slug
Execute live HTTP requests to the Mailganer API
Resource Access
Access cached content via MCP resources (
mailganer://docs/…,mailganer://postman/…) for integration into client workflows
Allows searching and retrieving Postman requests and collections, and linking them to API documentation pages for comprehensive API reference management.
Click on "Deploy 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., "@Mailganer API MCPsearch for authentication endpoints"
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.
Mailganer API MCP
MCP-сервер для REST API Mailganer: локальный кэш документации и live-вызовы API через единый интерфейс.
Кэширует страницы документации и Postman-коллекцию в docs/, даёт инструменты для поиска, синхронизации и проверки изменений. С MAILGANER_API_KEY — выполняет реальные HTTP-запросы к API.
Структура
mailganer-api-mcp/
├── docs/
│ ├── overview.md # авторизация, лимиты, пагинация
│ ├── api-index.json # каталог всех страниц
│ ├── sitemap-pages.json # страницы из sitemap.xml
│ ├── postman-index.json # индекс Postman-запросов
│ ├── postman-collection.md # changelog и инструкция по обновлению коллекции
│ ├── crosslinks.json # связи docs ↔ Postman
│ ├── manual-crosslinks.json # ручные связи и пояснения для «дырок»
│ ├── endpoints/ # JSON по каждой странице API
│ └── postman/ # Postman collection JSON
├── docs_kb.py # фасад над пакетом kb/
├── kb/ # модули knowledge base
│ ├── storage.py # загрузка кэша
│ ├── matching.py # сопоставление docs ↔ Postman paths
│ ├── crosslinks.py # crosslinks и linked docs
│ ├── search.py # поиск по docs/Postman
│ ├── prepare.py # prepare_api_call
│ ├── sync_runner.py # sync + live diff
│ └── sanitize.py # маскирование секретов при sync
├── paths.py # нормализация API paths
├── http_retry.py # retry/backoff для HTTP
├── sync_lib.py # парсинг и sync документации с сайта
├── mailganer_client.py # HTTP-клиент для live-вызовов API
├── mcp_resources.py # MCP resources (docs, postman)
├── mcp_prompts.py # MCP prompts (workflows)
├── scripts/
│ ├── sync-api-docs.py # парсер документации (sitemap + menu)
│ ├── sync-postman.py # синхронизация Postman-коллекции (скачивание)
│ ├── add-missing-postman-requests.py # добавление методов в Postman (запись)
│ └── build-docusaurus-docs.py # генерация markdown для Docusaurus
├── website/ # Docusaurus-сайт (локальный preview docs)
└── server.py # MCP-серверRelated MCP server: mcp-for-docs
Быстрый старт
cd mailganer-api-mcp
chmod +x setup.sh
./setup.sh .Reload MCP в Cursor: Settings → MCP → Reload.
Или в чате: «установи mailganer api docs» / «обнови документацию mailganer».
Переменные окружения (.env.api)
MAILGANER_API_KEY=your_api_key
MAILGANER_API_BASE_URL=https://mailganer.com/api
POSTMAN_API_KEY=PMAK-your_postman_api_keyMAILGANER_API_KEY — раздел Настройки аккаунта в личном кабинете Mailganer (для live-вызовов API)
POSTMAN_API_KEY — Postman → Settings → API keys
MCP-серверы
Сервер | Назначение |
| Локальный кэш документации Mailganer API |
| Ваши workspace, коллекции и запросы в Postman |
Режим Postman MCP по умолчанию: --code. Чтобы сменить (--minimal, --full), отредактируйте .cursor/postman-mcp.sh.
MCP-инструменты
Документация (без API-ключа)
Инструмент | Описание |
| Статус кэша: дата sync, кол-во страниц, ошибки |
| Готовность кэша ( |
| Обновить docs с сайта ( |
| Список страниц, фильтр по категории |
| Полнотекстовый поиск по кэшу |
| Страница docs + связанные Postman-запросы |
| Postman-запрос + связанные страницы docs |
| Пересобрать |
| Список «дырок» без связи + пояснения |
| Сравнить кэш с live-сайтом, показать diff |
| Обзор: auth, лимиты, пагинация |
| Поиск по Postman-коллекции |
| Запрос Postman по имени или path |
Live API (нужен MAILGANER_API_KEY)
Инструмент | Описание |
| Проверить, настроен ли API-ключ (без раскрытия) |
| Собрать method/path/auth/body из docs по slug |
| Выполнить HTTP-запрос к Mailganer API |
MCP Resources
URI | Содержимое |
| Обзор API (markdown) |
| Статус кэша (JSON) |
| Готовность кэша: ready/warnings (JSON) |
| Каталог страниц (JSON) |
| Страница docs + Postman-связи |
| Postman-запрос + связанные docs |
MCP Prompts
Prompt | Назначение |
| Найти docs и Postman по slug/ключевому слову |
| Подготовить и выполнить live-запрос по slug |
| Sync + обзор изменений |
| Анализ дыр docs ↔ Postman |
Обновить документацию вручную
bash scripts/sync-all-docs.shили по отдельности:
python3 scripts/sync-api-docs.py
python3 scripts/sync-postman.py
python3 scripts/build-crosslinks.pyDocusaurus preview
Локальный сайт с документацией из кэша docs/ — sidebar по категориям mailganer.com, на страницах методов есть связанные Postman-запросы.
Требования: Node.js ≥ 20.
python3 scripts/build-docusaurus-docs.py # website/docs/ + website/sidebars.ts
cd website
npm install
npm start # http://localhost:3000После sync документации перегенерируйте страницы тем же скриптом build-docusaurus-docs.py.
Production-сборка: cd website && npm run build → статика в website/build/.
Тесты и CI
pip install -e ".[dev]"
pytestWorkflow .github/workflows/ci.yml — pytest и ruff на Python 3.11–3.13 при push/PR.
Кэш docs и pip install
Каталог docs/ не входит в wheel — после pip install без clone кэш пустой.
Проверка: MCP tool get_cache_health или get_doc_status → cache.ready и cache.warnings.
Решение: clone репозитория, ./setup.sh . или bash scripts/sync-all-docs.sh.
Без sync — скачать готовый кэш из GitHub Release:
bash scripts/download-docs-cache.sh # latest release
bash scripts/download-docs-cache.sh v0.5.1 # конкретный tagRelease создаётся workflow .github/workflows/release-docs.yml при push tag v*.
Changelog: CHANGELOG.md. Contributing: CONTRIBUTING.md.
Сгенерированные website/docs/ и website/sidebars.ts в .gitignore — в репозитории только исходники сайта и скрипт генерации.
CI: автоматический sync
Workflow .github/workflows/sync-docs.yml:
Триггер | Когда |
| Каждый понедельник, 06:00 UTC |
| Вручную: GitHub → Actions → Sync API docs → Run workflow |
Если документация на сайте изменилась, workflow создаёт PR automation/sync-docs с обновлённым docs/.
После merge PR локально: git pull или ./setup.sh . для обновления кэша.
Настройка репозитория (один раз): Settings → Actions → General → Workflow permissions → Read and write и включить Allow GitHub Actions to create and approve pull requests. Без этого workflow не сможет открыть PR.
Источники
Источник | URL | Скрипт |
Sitemap |
| |
Меню API |
| |
Postman |
|
Postman-коллекция: добавление методов
sync-postman.py только скачивает публичную коллекцию в docs/postman/. Чтобы добавить запросы в workspace Mailganer Team:
# POSTMAN_API_KEY в .env.api
python3 scripts/add-missing-postman-requests.py
python3 scripts/sync-postman.py
python3 scripts/build-crosslinks.pyПодробности, список добавленных методов (2026-06-22) и как расширять скрипт: docs/postman-collection.md.
Ручные связи (manual-crosslinks.json)
Автоматический матчинг не покрывает всё: разные пути (/api/auth/ vs /api/v2/auth/), несколько способов вызова, методы без отдельной doc-страницы.
Файл docs/manual-crosslinks.json:
doc_to_postman— явные связи slug → имена Postman-запросовdoc_notes— пояснение, почему у страницы нет Postman (webhook, нет в коллекции)
После правок: python3 scripts/build-crosslinks.py
Проверить «дыры»: MCP-инструмент list_crosslink_gaps.
Авторизация API (справка)
v1 —
api_keyв теле запросаv2 — заголовок
Authorization: CodeRequest {{api_key}}Лимит: 500 запросов/мин
Available Tools
16 toolscall_mailganer_apiB
Execute a live HTTP request against Mailganer REST API
| Name | Required | Description | Default |
|---|---|---|---|
| auth | No | Auth mode: auto detects from path, v1 body api_key, v2 Authorization header | auto |
| body | No | JSON request body | |
| path | Yes | API path relative to base URL, e.g. /v2/emails/ | |
| query | No | Query string parameters | |
| method | Yes | HTTP method |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description only says 'live HTTP request', implying actual execution but fails to disclose potential side effects, authentication needs beyond schema, rate limits, or that it may modify data. No annotations to supplement.
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 a single sentence that is front-loaded and contains no unnecessary words. Every word earns its place.
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 generic HTTP client tool with 5 parameters and no output schema, the description is too minimal. It does not explain response format, error behavior, or side effects, leaving the agent underinformed.
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 coverage is 100% with descriptions for each parameter, so the description does not need to add parameter info. The description adds no additional 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 ('execute') and the resource ('Mailganer REST API'), with a specific verb and resource. No sibling confusion as other tools are documentation-related.
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?
No guidance is provided on when to use this tool versus alternatives. Lacks any context about prerequisites, scenarios, 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.
check_doc_pageA
Compare a cached doc page with the live site and report differences
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | Page slug to check against live documentation |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for disclosing behavioral traits. It only states the high-level action (compare and report) but does not specify whether the tool is read-only, what kind of differences are detected, or any side effects. This is insufficient for safe invocation.
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 a single sentence with no unnecessary words. It is front-loaded with the action and resource, making it efficient for an agent to parse.
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?
Despite the tool's low complexity (1 param, no output schema), the description does not indicate the format of the output ('report differences' is vague). It omits details about pagination, thresholds, or error handling, leaving the agent with incomplete 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 single parameter 'slug' is described well in the input schema as 'Page slug to check against live documentation', and the description confirms its role. With 100% schema coverage, the description adds minimal but clear context, exceeding the baseline of 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 the tool's purpose: comparing a cached doc page with the live site and reporting differences. The verb 'compare' and specific resources ('cached doc page' vs 'live site') make it distinct from sibling tools like get_doc_status or sync_documentation.
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?
No guidance is provided on when to use this tool versus alternatives. There is no mention of prerequisites, when-not-to-use, or which scenarios are appropriate. This leaves the agent without context for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_api_credentials_statusA
Check whether MAILGANER_API_KEY is configured (without exposing the full key)
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of disclosing behavior. It states the tool checks configuration without exposing the full key, which is a key behavioral trait. However, it does not explicitly state that the tool is read-only or has no side effects, nor does it mention any authentication or rate limit considerations. This is adequate but not fully transparent.
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 a single, concise sentence that conveys the tool's purpose and key behavior without any wasted words. It is appropriately sized for the tool's simplicity and is front-loaded with the core function.
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?
While the tool has no parameters and the description covers the basic purpose, it lacks information about the return value or output format. Since there is no output schema, the description should clarify what the tool returns (e.g., a boolean or status message). The description is incomplete for a tool with no output schema, leaving the agent to infer the response structure.
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 zero parameters, so schema coverage is 100% and the description does not need to add parameter information. According to the guidelines, 0 parameters yield a baseline of 4, which is appropriate here.
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 checks if MAILGANER_API_KEY is configured and specifies it does not expose the full key. This is a specific verb plus resource, and it distinguishes this tool from sibling tools like get_cache_health or get_doc_status, which check different aspects.
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 no guidance on when to use this tool rather than alternatives. There is no mention of context, prerequisites, or a list of use cases. Given the simplicity of the tool, a brief note on when it's appropriate would be helpful but is absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_api_endpoint_docB
Get cached Mailganer API doc page with linked Postman requests
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | Page slug, e.g. email-add or trigger-send-v2 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description notes the tool is 'cached,' hinting at performance and possibly stale data, but does not disclose error handling, authentication needs, or response behavior. This is minimal but not misleading.
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 a single sentence with no wasted words, but it could be slightly restructured to front-load key information. Still efficient and clear.
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 1-param tool with no output schema, the description covers the basic purpose and input. However, it lacks information about the response format or error conditions, which would improve completeness.
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 coverage is 100% with the 'slug' parameter having a clear example, and the description adds no further detail. Baseline score of 3 is appropriate as the schema already suffices.
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 'Get cached Mailganer API doc page with linked Postman requests' clearly specifies the action (Get), resource (cached Mailganer API doc page), and additional feature (linked Postman requests), distinguishing it from siblings like get_api_overview or get_linked_postman_request.
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?
No explicit guidance on when to use this tool vs alternatives. The description does not mention prerequisites, exclusions, or suggest other tools for related tasks, leaving the agent without decision support.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_api_overviewA
Get Mailganer API overview: auth, limits, pagination
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It only mentions topics (auth, limits, pagination) but fails to state that this is a read-only operation, whether authentication is required, or what the response format is. Lacks essential behavioral context.
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?
Description is extremely concise (5 words) and front-loaded. Every word adds value, but could be slightly more informative without sacrificing brevity.
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 no parameters and no output schema, the description covers the main topics. However, it does not clarify that this is a high-level overview and does not provide endpoint-specific details, leaving some ambiguity for an agent.
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, so schema coverage is 100%. Baseline for 0 parameters is 4, and description adds no parameter details but is not required to.
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?
Description clearly states it 'Get Mailganer API overview' and specifies key aspects: auth, limits, pagination. This distinguishes it from sibling tools like get_api_endpoint_doc which focus on individual endpoints.
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?
No explicit guidance on when to use this tool versus siblings. The name and description imply it's a starting point for understanding the API, but no alternates 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.
get_cache_healthA
Check whether docs/ cache is ready to use (empty after pip install without clone/sync)
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It indicates a read-only status check without destructive effects. However, it does not specify the return type (e.g., boolean) or behavior under different cache states (e.g., ready vs. not ready).
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 a single, concise sentence of 14 words that communicates the purpose immediately. It is well-structured and front-loaded, with no 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?
Given the tool's simplicity (no parameters, no output schema), the description covers the essential purpose and a key condition (post-install state). However, it lacks information about the return value or how the result is communicated, which would improve completeness.
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 the description does not need to explain them. The description adds no parameter information, but with zero parameters, the baseline is 4, and no further detail is necessary.
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's purpose: to check if the docs cache is ready to use, specifically mentioning it's empty after pip install without clone/sync. This distinguishes it from sibling tools like check_doc_page or get_doc_status, which focus on specific aspects of documentation rather than cache readiness.
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 context that the cache may be empty after pip install, implying the tool is useful for checking readiness before using other doc tools. However, it does not explicitly state when to use this tool versus alternatives (e.g., check_doc_page) or provide a clear usage scenario.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_doc_statusA
Get sync status of cached Mailganer API docs and Postman collection
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must fully disclose behavior. It states the tool reads sync status from cached data, implying no side effects. However, it doesn't mention auth requirements, rate limits, or what 'sync status' entails. For a read-only tool, more detail would improve transparency.
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?
Single sentence of 12 words that front-loads the verb 'Get' and immediately states the resource. No unnecessary words, perfectly concise.
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 no output schema or annotations, the description is minimal but functional. It doesn't describe the return format or possible status values, which could aid agent in interpreting results. For a simple status tool, it's adequate but leaves room for improvement.
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?
Tool has zero parameters, and schema coverage is 100% (no params to cover). Description adds meaning by specifying the subject of status (Mailganer API docs and Postman collection). Baseline 4 for no parameters 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?
Description clearly states the tool retrieves sync status of cached Mailganer API docs and Postman collection, using specific verb and resource. It distinguishes from siblings like sync_documentation (which performs sync) and check_doc_page (which checks a specific page).
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?
No explicit guidance on when to use this tool versus alternatives. However, the lack of parameters and specific purpose implies it's a simple status check, and siblings like sync_documentation suggest it's used after sync operations. Minimal context for agent decision-making.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_linked_postman_requestB
Get Postman request with related Mailganer documentation pages
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Partial Postman request name | |
| path | No | API path, e.g. /api/v2/emails/ |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully convey behavioral traits. It reveals the tool returns a request plus related documentation, but does not clarify what 'related' means (e.g., cross-links, embedded content), whether it is read-only, or any authentication or performance implications.
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 a single, front-loaded sentence that efficiently conveys the core purpose. It avoids unnecessary detail but could be slightly more structured without being 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 lack of an output schema and annotations, the description is insufficient. It does not explain the return format, how 'related' pages are determined, or any prerequisites. The tool's complexity is moderate, but the description falls short.
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 coverage is 100% as both parameters have descriptions. The tool description does not add additional meaning beyond what the schema already provides. Baseline score of 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 specific action 'Get' and the resource 'Postman request with related Mailganer documentation pages'. It distinguishes from sibling tools like get_postman_request (which likely returns only the request) by adding 'with related documentation pages'.
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 usage when needing both a Postman request and its linked documentation, but does not explicitly state when to use this tool over siblings like search_postman or check_doc_page. No exclusions or alternatives are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_postman_requestA
Get a Postman request by partial name or exact API path (without related docs)
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Partial request name | |
| path | No | API path, e.g. /api/v2/emails/ |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits like read-only nature, authentication, or output format. It only says 'get', implying read, but lacks details on side effects, rate limits, or whether multiple results can be returned. The absence of this critical information despite zero annotations is a significant gap.
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 a single, well-structured sentence of 13 words that efficiently conveys purpose and key distinction. Every word adds value, and it is front-loaded with the action.
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 retrieval tool with two parameters and full schema coverage, the description is mostly complete. It explains search modes and scope. However, without an output schema, the agent might need to know the response structure, which is not addressed.
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 both parameters (name, path) with clear descriptions. The tool description adds value by explaining that they are alternative search modes (by partial name or exact path) and by scoping the result to exclude related docs. This goes beyond the schema, so a score above the baseline 3 is warranted.
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 'Get a Postman request by partial name or exact API path (without related docs)' clearly states the action (get a request), the resources (Postman request), and the search criteria (partial name or exact path). It distinguishes itself by excluding related docs, which is relevant given the sibling 'get_linked_postman_request'.
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 when to use this tool: when you need a Postman request without related documentation, by name or path. It differentiates from alternatives that may include docs, but does not explicitly name siblings or state when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_api_docsB
List cached Mailganer API documentation pages, optionally by category
| Name | Required | Description | Default |
|---|---|---|---|
| category | No | Filter by category, e.g. подписчик or триггер |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must disclose behavioral traits. It mentions 'cached' but does not explain implications like staleness, refresh mechanism, rate limits, authorization requirements, or side effects. The agent gets minimal insight beyond the fact that it is a list operation.
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 a single sentence of 8 words, front-loading the key action and resource. Every word is essential, with no filler. It is perfectly concise and well-structured.
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 list tool with one optional parameter and no output schema, the description covers the essential purpose and filtering. Minor gaps include lack of return format information, but it is sufficient for an agent to understand the basic function.
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?
Parameter coverage is 100% as the schema describes 'category' as a filter. The description adds the word 'optionally' but does not provide new meaning beyond the schema. Baseline 3 is appropriate since the schema already does the work.
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 verb 'List' and the resource 'cached Mailganer API documentation pages', with optional category filtering. It distinguishes from sibling tools like 'search_api_docs' or 'get_api_endpoint_doc' by indicating a broad listing action. This is specific and unambiguous.
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?
No guidance is given on when to use this tool versus alternatives. Sibling tools like 'search_api_docs' or 'get_api_overview' are not mentioned, nor are any preferred scenarios or exclusions. The description lacks contextual usage advice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_crosslink_gapsB
List docs and Postman requests without crosslinks, with documented reasons
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must disclose behavior. It only says 'with documented reasons' but does not explain what reasons are, how the list is generated, or any side effects. Lacks detail on read-only nature or data source.
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?
Single sentence, front-loaded with action and resource. No 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?
No output schema, so description should explain return format. It mentions 'documented reasons' but does not specify what those reasons are or how they are represented. Adequate but leaves ambiguity about the output structure.
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, so schema coverage is 100%. The description adds no param info beyond the schema. Baseline for 0 params is 4, but the description does not enrich meaning about output or context; it only restates the tool's purpose.
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 lists docs and Postman requests without crosslinks, with documented reasons. The verb 'List' and specific resource distinguish it from sibling tools like check_doc_page or rebuild_doc_crosslinks.
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?
No guidance on when to use this tool vs alternatives. Does not specify prerequisites, nor when not to use, nor mention sibling tools like rebuild_doc_crosslinks for fixing gaps.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
prepare_api_callC
Build method, path, auth mode and example body from cached docs by slug
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | Documentation slug, e.g. email-add or trigger-send-v2 | |
| path_params | No | Path parameter values, e.g. trigger_id or email_hash |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It only states what it builds, not side effects (e.g., if it modifies state), prerequisites (e.g., cache populated), or error handling (e.g., missing slug). The lack of transparency for a potentially stateful operation is a gap.
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 a single, well-structured sentence that conveys the core functionality efficiently. It is front-loaded with the action verb 'Build' and the key inputs. Minor improvement would be to clarify 'cached docs'.
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?
Despite having no output schema, the description does not explain what the tool returns or its format. For a tool that prepares data for further use, this is a significant gap. Also, the nested path_params object lacks guidance on how to structure values.
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 coverage is 100%, providing clear descriptions and examples for both parameters. The description adds no additional semantic value beyond the schema, so baseline score of 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 builds method, path, auth mode, and example body from cached docs using a slug. This distinguishes it from siblings like get_api_endpoint_doc (retrieval) and call_mailganer_api (execution). However, it could be more explicit about the output format.
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?
No guidance on when to use this tool versus alternatives. For example, it doesn't mention that this should be used before calling call_mailganer_api, or that it requires a slug from a prior search. Usage context is entirely implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rebuild_doc_crosslinksB
Rebuild docs ↔ Postman crosslink index in docs/crosslinks.json
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must convey behavioral traits. It does not disclose if this operation is destructive, if it overwrites the existing file, or if it requires specific permissions. The description only states what it rebuilds but not the consequences or safety profile.
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?
A single, clear sentence with no filler. It efficiently communicates the action and target.
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 tool with no parameters and no output schema, the description should explain the broader context, e.g., when to run this, if it is idempotent, or if it requires network access. The current description is too minimal to fully guide an agent.
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 tool has no parameters, and the schema covers 100%. The description adds meaning by specifying the output file path, which is beyond the empty schema. Baseline 4 is appropriate as there are no parameters to elaborate.
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 'Rebuild' and identifies the exact resource 'docs ↔ Postman crosslink index' and output file 'docs/crosslinks.json'. It clearly distinguishes from sibling tools like 'list_crosslink_gaps' which only lists gaps.
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?
No guidance on when to use this tool versus alternatives. For example, it does not mention that 'list_crosslink_gaps' might be a prerequisite or that rebuild might be needed after sync operations. Missing when-not-to-use or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_api_docsC
Full-text search in cached Mailganer API documentation
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | Yes | Search term |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full behavioral disclosure burden. It mentions 'cached' (indicating non-live data) but omits key traits: read-only nature, result format, pagination (though limit parameter exists), rate limits, or auth requirements. This is insufficient for a mutation-free 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?
A single concise sentence efficiently conveys the core purpose. It is front-loaded and has no fluff, though it could optionally mention key parameters. Still, it earns its place without excess.
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 no output schema and only 2 parameters, the description should specify return value behavior (e.g., list of doc titles, snippets) but does not. The tool's complexity is low, but the description is incomplete, leaving agents to guess what the search yields.
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 only 50% (limit lacks description). The tool description adds 'Full-text search' which clarifies query semantics, but does not explain the limit parameter's effect (e.g., max results, pagination). The description does not fully compensate for the schema's gaps.
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?
Description clearly states the tool performs 'Full-text search in cached Mailganer API documentation', specifying the verb (search), resource (cached API documentation), and scope (full-text). It distinguishes from sibling tools like get_api_endpoint_doc and search_postman by its focus on API docs rather than Postman or specific endpoints.
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?
No guidance is provided on when to use this tool versus alternatives like search_postman or get_api_endpoint_doc. The description does not mention prerequisites, exclusions, or context for use, leaving the agent without decision support.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_postmanC
Search Mailganer Postman collection requests by keyword
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | Yes | Search term |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description does not disclose behavioral traits such as read-only nature, rate limits, or side effects. The burden on description is high, but it remains silent.
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 a single sentence, concise but lacking detail. It could be expanded with usage context without becoming 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?
No output schema, no annotations, and no description of return values or behavior. For a simple search tool, more context is needed for reliable invocation, especially given sibling tools.
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 coverage is 50% (query described, limit not). The tool description adds no extra meaning for the undocumented 'limit' parameter, only mentions 'by keyword' which repeats schema for query.
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 (search) and the resource (Mailganer Postman collection requests). It distinguishes from sibling 'search_api_docs' by specifying Postman requests vs API docs.
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?
No guidance on when to use this tool versus alternatives like get_postman_request or search_api_docs. Agent must infer use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sync_documentationB
Re-sync Mailganer API documentation from web sources into docs/
| Name | Required | Description | Default |
|---|---|---|---|
| target | No | What to sync: all sources, API pages only, or Postman only | all |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It only says 're-sync' but doesn't disclose destructive potential, network requirements, rate limits, or what happens to existing docs.
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?
Single sentence, no wasted words. Could be restructured to front-load the purpose more explicitly, but effective.
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's simplicity (1 parameter, no output schema) and sibling set, the description is adequate but lacks completeness about when to sync or what happens during sync.
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 100% with parameter 'target' documented. The description adds context of syncing from web sources to docs/, but doesn't add meaning beyond the schema's enum values. 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 syncs Mailganer API documentation from web sources to docs/. It uses a specific verb (re-sync) and resource, distinguishing it from sibling tools that check, list, or search docs.
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?
No guidance on when to use this tool vs alternatives. The description does not mention prerequisites, when not to use, or which sibling might be more appropriate for specific tasks.
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.
4 tool updates
v0.5.2- Added
call_mailganer_api - Added
get_api_credentials_status - Added
get_cache_health - Added
prepare_api_call
12 tool updates
v0.2.1- First observed
check_doc_page - First observed
get_api_endpoint_doc - First observed
get_api_overview - First observed
get_doc_status - First observed
get_linked_postman_request - First observed
get_postman_request - First observed
list_api_docs - First observed
list_crosslink_gaps - First observed
rebuild_doc_crosslinks - First observed
search_api_docs - First observed
search_postman - First observed
sync_documentation
TDQS
Scored across 16 tools
Most tools target distinct operations (sync, list, search, get, compare, rebuild), but get_doc_status and get_cache_health both report cache state, and search_postman/get_postman_request can overlap when locating a request. Descriptions generally clarify the boundary.
All tool names follow a clear snake_case verb_noun pattern (sync_, get_, list_, search_, rebuild_, call_). The verbs are consistently imperative and objects are specific, so the naming scheme is predictable across the set.
16 tools is slightly above the ideal 3-15 range, but each tool addresses a distinct documentation/Postman/API-call workflow. The count is acceptable for a server that manages cached docs, crosslinks, and live requests.
The set covers sync, cache status, searching/reading docs, Postman lookup, crosslink maintenance, credential checks, request preparation, and live API execution. Minor gaps exist, such as no explicit list-all-Postman-requests tool and no way to validate the API key beyond checking it is configured.
Maintenance
Related MCP Connectors
Versioned documentation registry and semantic search for AI tools and coding assistants.
DevDocs.io keyless docs index + entry search + content (Angular, MDN, Rust, etc.).
Search Multilo's docs, fetch any public page as clean Markdown, and read the changelog.
Search and read the current MemorySync documentation while writing integration code.
Related MCP Servers
- AlicenseAqualityDmaintenanceConverts REST API code (like NestJS controllers or FastAPI endpoints) to Postman collections and environments, helping developers automatically sync their API endpoints with Postman.213MIT
- AlicenseBqualityFmaintenanceAutomatically crawls documentation websites, converts them to organized markdown files, and generates condensed cheat sheets. Intelligently categorizes content into tools/APIs and provides local-first access to downloaded documentation.3GPL 3.0
- AlicenseBqualityDmaintenanceAutomatically generates Postman collections from code directories by analyzing API endpoints and parameters, enabling easy testing, documentation, and sharing.143MIT
- FlicenseAqualityDmaintenanceEnables searching and retrieving Magento 2 REST API documentation offline via local OpenAPI parsing, supporting endpoint search, schema lookup, and category browsing.57-