Skip to main content
Glama
mdemyanov

gramax-docportal-mcp

by mdemyanov

gramax-docportal-mcp

MCP-сервер для доступа к порталу документации Gramax. Позволяет искать статьи, получать контент и навигацию через Claude и другие LLM.

Инструменты

Инструмент

Описание

gramax_list_catalogs

Список всех каталогов документации

gramax_get_navigation

Дерево навигации каталога

gramax_search

Поиск по статьям (фильтры по свойствам, языку, семантический поиск)

gramax_get_article

Содержимое статьи в Markdown

Related MCP server: Dedalus MCP Documentation Server

Установка

uv tool install gramax-docportal-mcp

Настройка

Добавьте в .mcp.json:

{
  "mcpServers": {
    "gramax": {
      "command": "uvx",
      "args": ["gramax-docportal-mcp"],
      "env": {
        "GRAMAX_BASE_URL": "https://your-portal.example.com",
        "GRAMAX_API_TOKEN": "ваш-api-токен"
      }
    }
  }
}

Публичные порталы (без токена)

Если портал публичный (не требует авторизации), GRAMAX_API_TOKEN можно не задавать — сервер работает в анонимном режиме:

{
  "mcpServers": {
    "gramax": {
      "command": "uvx",
      "args": ["gramax-docportal-mcp"],
      "env": {
        "GRAMAX_BASE_URL": "https://your-portal.example.com"
      }
    }
  }
}

Получение токена

Если портал защищён, откройте в браузере (будучи залогиненным на портале):

https://your-portal.example.com/api/user/token

Токен действует 30 дней. Для кастомного срока:

https://your-portal.example.com/api/user/token?expiresAt=2026-12-31

Без токена или с истёкшим токеном сервер получит 401 при первом запросе и вернёт русскоязычное сообщение об ошибке.

Переменные окружения

Переменная

Описание

Обязательно

GRAMAX_BASE_URL

URL портала документации

Да

GRAMAX_API_TOKEN

API-токен (Bearer); не нужен для публичных порталов

Нет

GRAMAX_AI_TIMEOUT

Таймаут AI-поиска в секундах (по умолчанию 120)

Нет

GRAMAX_AI_ARTICLES_LANGUAGE

Язык статей в индексе для AI-поиска. Значения по умолчанию нет — см. предупреждение ниже

Нет

GRAMAX_AI_RESPONSE_LANGUAGE

Язык генерируемого ответа AI-поиска (по умолчанию ru)

Нет

Не задавайте GRAMAX_AI_ARTICLES_LANGUAGE без нужды. На некоторых порталах любое непустое значение этого параметра обнуляет выдачу: AI-поиск отвечает «не нашёл информации в предоставленной базе знаний» и не отдаёт ни одного источника, а полнотекстовый поиск возвращает ноль результатов вместо десятков. Поэтому с версии 0.3.3 значения по умолчанию у переменной нет и параметр не уходит на портал, пока его не задали явно. Задавайте его, только если ваш портал действительно требует фильтра по языку статей, и проверьте выдачу до и после. GRAMAX_AI_RESPONSE_LANGUAGE безвреден.

Расширенный поиск

gramax_search поддерживает дополнительные параметры для точной фильтрации:

Параметр

Описание

catalog_name

Ограничить поиск одним каталогом

search_type

"vector" — семантический поиск (по умолчанию — полнотекстовый)

language

Язык статей: "ru", "en", "de", "zh" и др. Уходит как articlesLanguage — на некоторых порталах обнуляет выдачу, по умолчанию не задавать

resource_filter

"without" — только статьи, "only" — только файлы

property_filter

Фильтр по свойствам статей (Продукт, Сегмент, Отрасль и др.)

Примеры property_filter

{"op": "eq", "key": "Продукт", "value": "NSD"}

{"op": "contains", "key": "Сегмент", "list": ["Enterprise", "SMB"]}

{"op": "and", "filters": [
  {"op": "eq", "key": "Тип контента", "value": "Кейс"},
  {"op": "eq", "key": "Отрасль", "value": "Логистика"}
]}

В результатах поиска отображаются метаданные статей (🏷️) и рекомендованные результаты (⭐).

Лицензия

MIT

Available Tools

5 tools
gramax_get_articleA

Получить содержимое статьи в формате Markdown.

Args: catalog_id: ID каталога article_id: ID статьи (получить через gramax_get_navigation или gramax_search)

ParametersJSON Schema
NameRequiredDescriptionDefault
article_idYes
catalog_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior3/5

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

There are no annotations, so the description carries the behavioral disclosure burden. It does disclose that the output is Markdown and the verb 'get' implies a non-mutating read operation. It does not discuss errors, permissions, or edge cases, but for a simple retrieval tool this is acceptable.

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 compact and free of filler. The Args list is clear and the article_id provenance hint is valuable. It could be slightly more structured, but every sentence earns its place.

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?

Given an output schema exists and the input schema is simple, the description covers the necessary calling context: both required parameters and where to get article_id. It does not explicitly state when to use this over siblings, but the tool's purpose is clear enough for straightforward invocation.

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 schema has no parameter descriptions, so the Args section in the description is the only documentation. It adds basic meaning: catalog_id is a catalog ID and article_id is an article ID obtainable from navigation/search. This is helpful but shallow, with no format, length, or constraint details.

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 a specific operation: retrieve article content in Markdown. This distinguishes it from sibling tools like gramax_get_navigation or gramax_search, which find or navigate rather than fetch full content. It could name an alternative explicitly, but the purpose is unambiguous.

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 gives a useful usage cue: article_id should be obtained via gramax_get_navigation or gramax_search. This implies a sequence but does not explicitly explain when to choose this tool over alternatives or when not to use it. The guidance is present but mostly implicit.

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

gramax_get_navigationA

Получить дерево навигации каталога: разделы, статьи, ссылки.

Args: catalog_id: ID каталога (получить через gramax_list_catalogs)

ParametersJSON Schema
NameRequiredDescriptionDefault
catalog_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.6/5.0
Behavior4/5

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

With no annotations, the description carries the burden and it discloses the main behavioral outcome: the operation is a read ('get') that returns a navigation tree composed of sections, articles, and links. It does not mention auth or error behavior, but for a simple one-parameter read tool with an output schema, this is reasonably transparent.

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 short sentences with no filler. The main purpose is front-loaded, and the parameter guidance is separated cleanly. Every word earns its place.

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

Completeness5/5

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

The tool is simple: one required parameter, an output schema, and clear sibling context. The description provides the purpose, the parameter source, and the return shape. Nothing essential is missing for correct invocation.

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

Parameters5/5

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

Schema coverage is 0%, but the description fully compensates for the single parameter: it identifies catalog_id as the catalog identifier and, crucially, tells the agent how to obtain it via gramax_list_catalogs. This is exactly the semantic information the schema lacks.

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-resource pair: 'get the catalog navigation tree' and enumerates what that tree contains (sections, articles, links). This clearly differentiates it from siblings like gramax_get_article and gramax_list_catalogs.

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

Usage Guidelines4/5

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

It gives explicit practical guidance: the catalog_id should be obtained via gramax_list_catalogs, which tells the agent how to populate the required parameter. It does not explicitly discuss when to prefer this over the search siblings, but the primary usage context is clear enough.

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

gramax_list_catalogsA

Получить список всех каталогов документации на портале Gramax.

Возвращает таблицу с названиями и ID каталогов.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior3/5

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

No annotations are provided, so the description carries the behavioral disclosure burden. It states that the tool returns a table with catalog names and IDs, which is useful, but it does not mention pagination, authentication, rate limits, or side-effect characteristics. For a zero-parameter read-only listing, this is adequate but not rich.

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 two concise sentences with the action and result front-loaded. It contains no filler, no repetition of schema details, and every sentence adds value.

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

Completeness5/5

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

For a simple zero-parameter listing tool with an output schema, the description is complete: it specifies the scope (all documentation catalogs) and the return content (names and IDs). Nothing essential is missing for correct invocation.

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 tool has zero parameters and the schema is fully covered at 100%, so there is no parameter semantics gap. With zero parameters, the baseline is 4, and the description does not need to add anything.

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 and resource: 'Получить список всех каталогов документации на портале Gramax' (get a list of all documentation catalogs on the Gramax portal). It is clearly distinct from sibling tools like search, navigation, and article retrieval.

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?

There is no explicit guidance about when to use this tool versus the sibling tools. It does not mention conditions, alternatives, or prerequisites, leaving the agent to infer that this is simply the tool for listing catalogs.

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.

  1. 5 tool updatesv0.3.2
    • First observedgramax_ai_search
    • First observedgramax_get_article
    • First observedgramax_get_navigation
    • First observedgramax_list_catalogs
    • First observedgramax_search

TDQS

A4/5.0

Scored across 5 tools

Disambiguation3/5

gramax_search and gramax_ai_search have overlapping purposes (both search documentation), though descriptions clarify the difference between list results and generated answers. Other tools are distinct, but the search overlap is a notable ambiguity.

Naming Consistency5/5

All tools follow a consistent gramax_verb_noun pattern (e.g., gramax_get_navigation, gramax_list_catalogs, gramax_search). The prefix is uniform and verbs are predictable.

Tool Count5/5

5 tools for a documentation portal is well-scoped: navigation, listing, search, AI search, and article retrieval cover common needs without bloat.

Completeness4/5

Core lifecycle for documentation access is covered: list catalogs, get navigation, search, and retrieve articles. However, there is no tool to create, update, or delete content, which might be expected in a full docportal MCP, but the surface is sufficient for read-only use.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers