Skip to main content
Glama
arturborycki

Teradata MCP Server

by arturborycki

Teradata MCP Server

Сервер протокола контекста модели (MCP) для базы данных Teradata с аутентификацией OAuth 2.1, поддержкой различных механизмов аутентификации (TD2, LDAP, Kerberos) и интерактивной визуализацией данных.

Возможности

  • Множество механизмов аутентификации — TD2 (по умолчанию), LDAP, Kerberos, JWT через Teradata LOGMECH

  • OAuth 2.1 с интеграцией Keycloak, проверкой JWT, авторизацией на основе областей (scopes)

  • Метаданные защищенных ресурсов (соответствие RFC 9728)

  • Интерактивная визуализация — приложение MCP на базе ECharts с 19 типами диаграмм

  • Устойчивость соединений — автоматический повтор попыток с экспоненциальной задержкой

  • Неблокирующий ввод-вывод — все операции с БД выполняются через asyncio.to_thread()

  • QueryBand для каждого инструмента — журнал аудита для управления рабочей нагрузкой Teradata

Related MCP server: Teradata MCP Server

Инструменты

Инструменты запросов

  • query — выполнение SQL-запросов, возврат результатов в виде таблицы

  • visualize_query — выполнение SQL и отрисовка интерактивных диаграмм ECharts через приложение MCP

Инструменты схемы

  • list_db — список всех баз данных

  • list_tables — список таблиц/представлений в базе данных

  • show_tables_details — отображение имен столбцов и типов данных для таблицы

Инструменты анализа

  • list_missing_values — столбцы с количеством значений NULL

  • list_negative_values — столбцы с количеством отрицательных значений

  • list_distinct_values — количество уникальных категорий для каждого столбца

  • standard_deviation — среднее значение и стандартное отклонение для столбца

Приложение MCP — Интерактивная визуализация

Инструмент visualize_query отображает результаты в виде интерактивных диаграмм в клиенте MCP.

Категория

Диаграммы

Столбчатые

Базовая, Группированная, С накоплением, Горизонтальная, Сортированная, Водопадная, Скругленная, Полярная

Линейные

Базовая, Сглаженная, Область, Область с накоплением, Ступенчатая

Круговые

Круговая, Кольцевая, Роза / Соловья

Точечные

Точечная, Пузырьковая

Смешанные

Столбчатая + Линейная

Быстрый старт

Установка

git clone https://github.com/arturborycki/mcp-teradata.git
cd mcp-teradata
uv sync

Запуск с TD2 (Стандартная аутентификация)

uv run teradata-mcp "teradatasql://user:password@host/database"

Или через переменную окружения:

export DATABASE_URI="teradatasql://user:password@host/database"
uv run teradata-mcp

Конфигурация

Claude Desktop

Добавьте в ваш claude_desktop_config.json:

TD2 (Имя пользователя/Пароль)

{
  "mcpServers": {
    "teradata": {
      "command": "uv",
      "args": [
        "--directory", "/path/to/mcp-teradata",
        "run", "teradata-mcp"
      ],
      "env": {
        "DATABASE_URI": "teradatasql://user:password@host/database"
      }
    }
  }
}

Аутентификация LDAP

{
  "mcpServers": {
    "teradata": {
      "command": "uv",
      "args": [
        "--directory", "/path/to/mcp-teradata",
        "run", "teradata-mcp"
      ],
      "env": {
        "DATABASE_URI": "teradatasql://@host/database",
        "DB_LOGMECH": "LDAP",
        "DB_LOGDATA": "authcid=ldap_user password=ldap_password"
      }
    }
  }
}

Формат authcid зависит от каталога LDAP:

Каталог

Формат

Active Directory (Simple Bind)

authcid=user@domain.com

Active Directory (DIGEST-MD5)

authcid=DOMAIN\username

OpenLDAP / Sun DS

authcid=username

Аутентификация Kerberos

{
  "mcpServers": {
    "teradata": {
      "command": "uv",
      "args": [
        "--directory", "/path/to/mcp-teradata",
        "run", "teradata-mcp"
      ],
      "env": {
        "DATABASE_URI": "teradatasql://@host/database",
        "DB_LOGMECH": "KRB5"
      }
    }
  }
}

Конфигурация с поддержкой OAuth

{
  "mcpServers": {
    "teradata": {
      "command": "uv",
      "args": [
        "--directory", "/path/to/mcp-teradata",
        "run", "teradata-mcp"
      ],
      "env": {
        "DATABASE_URI": "teradatasql://user:password@host/database",
        "OAUTH_ENABLED": "true",
        "KEYCLOAK_URL": "https://your-keycloak.example.com",
        "KEYCLOAK_REALM": "teradata-realm",
        "KEYCLOAK_CLIENT_ID": "teradata-mcp",
        "KEYCLOAK_CLIENT_SECRET": "your-secret",
        "OAUTH_RESOURCE_SERVER_URL": "https://your-mcp-server.example.com"
      }
    }
  }
}

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

Подключение к базе данных

Переменная

Описание

По умолчанию

DATABASE_URI

URL подключения к Teradata (teradatasql://user:pass@host/db)

—

DB_LOGMECH

Механизм аутентификации: TD2, LDAP, KRB5, TDNEGO, JWT

TD2

DB_LOGDATA

Учетные данные LDAP/JWT (например, authcid=user password=pass)

—

DB_SSL_MODE

Режим TLS: ALLOW, PREFER, REQUIRE, VERIFY-CA, VERIFY-FULL

—

DB_ENCRYPT_DATA

Включить шифрование передачи данных

true

Устойчивость соединений

Переменная

Описание

По умолчанию

DB_MAX_RETRIES

Макс. количество попыток переподключения

3

DB_INITIAL_BACKOFF

Начальная задержка повтора (секунды)

1.0

DB_MAX_BACKOFF

Макс. задержка повтора (секунды)

30.0

Транспорт MCP

Переменная

Описание

По умолчанию

MCP_TRANSPORT

Транспорт: stdio, sse, streamable-http

stdio

MCP_HOST

Адрес привязки для HTTP-транспорта

localhost

MCP_PORT

Порт для HTTP-транспорта

8000

MCP_PATH

Путь для streamable-http

/mcp/

OAuth 2.1

Переменная

Описание

По умолчанию

OAUTH_ENABLED

Включить аутентификацию OAuth

false

KEYCLOAK_URL

URL сервера Keycloak

—

KEYCLOAK_REALM

Имя области (realm) Keycloak

—

KEYCLOAK_CLIENT_ID

ID клиента OAuth

—

KEYCLOAK_CLIENT_SECRET

Секрет клиента OAuth

—

OAUTH_RESOURCE_SERVER_URL

URL сервера ресурсов

—

OAUTH_REQUIRED_SCOPES

Требуемые области (через запятую)

—

OAUTH_VALIDATE_AUDIENCE

Проверять аудиторию токена

true

OAUTH_VALIDATE_SCOPES

Проверять области токена

true

OAUTH_REQUIRE_HTTPS

Требовать HTTPS для URL OAuth

true

CORS_ALLOWED_ORIGINS

Разрешенные источники CORS

*

Области OAuth (Scopes)

Область

Описание

teradata:read

Доступ на чтение к ресурсам БД

teradata:write

Доступ на запись к ресурсам БД

teradata:query

Выполнение SQL-запросов

teradata:admin

Административный доступ

teradata:schema

Операции управления схемой

Совместимость транспорта

Транспорт

OAuth

Конечные точки обнаружения

Вариант использования

stdio

Н/Д

Н/Д

Claude Desktop, CLI-клиенты

SSE

Полная

Доступны

Веб-приложения

Streamable HTTP

Полная

Доступны

Интеграции API

Конечные точки обнаружения (при включенном OAuth):

  • /.well-known/oauth-protected-resource — метаданные RFC 9728

  • /.well-known/mcp-server-info — возможности MCP

  • /health — проверка работоспособности

Развертывание в Docker

Разработка

docker compose up -d

С OAuth

docker compose -f docker-compose.oauth.yml up -d

Сборка

uv build

Устранение неполадок

Проблемы с подключением к базе данных:

  • Проверьте формат DATABASE_URI: teradatasql://user:pass@host/database

  • Проверьте сетевое подключение к серверу Teradata

  • Для LDAP: убедитесь, что DB_LOGMECH=LDAP и DB_LOGDATA установлены правильно

  • Проблемы с подключением автоматически повторяются (настраивается через DB_MAX_RETRIES)

Ошибка аутентификации LDAP:

  • Убедитесь, что на сервере Teradata настроен LDAP в TDGSS

  • Проверьте, что формат authcid соответствует типу вашего каталога

  • Экранируйте специальные символы в паролях (@ → \@, пробелы → используйте кавычки)

Ошибки отказа в доступе (Permission denied):

  • Убедитесь, что у пользователя есть необходимые области OAuth

  • Проверьте назначение ролей в Keycloak

  • visualize_query требует область teradata:query (а не только teradata:read)

Отладочное логирование:

export LOG_LEVEL=DEBUG
uv run teradata-mcp

Лицензия

Лицензия MIT. Подробности см. в файле LICENSE.

Благодарности

Available Tools

8 tools
list_dbB

List all databases in the Teradata system

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?

With no annotations provided, the description carries the full burden of behavioral disclosure. It states it's a listing operation, implying it's read-only, but doesn't specify whether it requires authentication, has rate limits, returns paginated results, or what format the output takes. This leaves significant gaps for a tool that interacts with a database system.

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, clear sentence with no wasted words. It's front-loaded with the core action and resource, making it easy to parse quickly. Every word earns its place by conveying essential information.

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 the complexity of interacting with a Teradata system and the lack of annotations or output schema, the description is incomplete. It doesn't address behavioral aspects like authentication needs, output format, or error handling, which are critical for an agent to use this tool effectively in a database context.

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, so no parameter documentation is needed. The description appropriately doesn't discuss parameters, focusing instead on the tool's purpose. A baseline of 4 is applied since no parameters exist to document.

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 action ('List all') and resource ('databases in the Teradata system'), making the purpose immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'list_tables' or 'show_tables_details', which might list different resources in the same system.

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 like 'list_tables' or 'show_tables_details'. It lacks context about use cases, prerequisites, or exclusions, leaving the agent to infer usage based on tool names alone.

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

list_distinct_valuesC

How many distinct categories are there for column in the table

ParametersJSON Schema
NameRequiredDescriptionDefault
table_nameYesTable name to list

TDQS

C2.6/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions counting distinct categories but doesn't specify if this is a read-only operation, performance implications, error handling, or output format. This leaves significant gaps for a tool that likely queries data.

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, efficient sentence that directly states the tool's purpose without unnecessary words. It is front-loaded and to the point, though it could be slightly more structured to clarify ambiguities.

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 annotations and no output schema, the description is incomplete. It doesn't explain what 'distinct categories' means, how the column is selected, or what the return value looks like (e.g., count, list). For a tool with one parameter but unclear behavior, this is inadequate.

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 input schema has 100% description coverage, with 'table_name' clearly documented. The description adds minimal value beyond the schema by implying a column is involved but doesn't specify which column or provide additional context. Baseline 3 is appropriate as the schema handles the parameter documentation.

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 counts distinct categories for a column in a table, which is a clear purpose. However, it doesn't specify which column or how it determines 'categories,' making it somewhat vague. It distinguishes from siblings like list_tables or query but could be more specific.

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 such as list_missing_values or standard_deviation. The description implies usage for counting distinct categories but doesn't mention prerequisites, exclusions, or specific scenarios, leaving the agent without clear direction.

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

list_missing_valuesC

What are the top features with missing values in a table

ParametersJSON Schema
NameRequiredDescriptionDefault
table_nameYesTable name to list

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states what the tool does but lacks details on how it works—such as how 'top features' are determined, whether results are sorted, if there are limits on output, or what the return format looks like. This is inadequate for a tool with no structured behavioral hints.

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, clear sentence that directly states the tool's purpose without unnecessary words. It's front-loaded and efficiently communicates the core function, making it highly concise and well-structured.

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 the lack of annotations and output schema, the description is incomplete. It doesn't explain what 'top features' means, how missing values are identified, or what the output looks like. For a tool with no structured behavioral or output information, this leaves significant gaps in understanding.

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 description coverage is 100%, with the parameter 'table_name' fully documented in the input schema. The description doesn't add any additional meaning or context beyond what the schema provides, such as examples or constraints. This meets the baseline for high schema coverage.

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's purpose: identifying top features with missing values in a table. It specifies the verb 'list' and resource 'features with missing values', making it understandable. However, it doesn't explicitly differentiate from sibling tools like list_distinct_values or list_negative_values, which prevents a perfect score.

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. It doesn't mention prerequisites, context for selecting it over siblings like query or list_tables, or any exclusions. This leaves the agent with minimal usage direction.

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

list_negative_valuesC

How many features have negative values in a table

ParametersJSON Schema
NameRequiredDescriptionDefault
table_nameYesTable name to list

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 carries the full burden of behavioral disclosure. It states what the tool does but doesn't describe how it behaves: it doesn't specify what constitutes a 'feature' (e.g., columns, rows), how negative values are detected (e.g., numeric types only), what the output format is (e.g., a count number, a list), or any error handling. For a tool with no annotations, this leaves significant gaps in understanding its operation.

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, clear sentence that directly states the tool's purpose without unnecessary words. It's front-loaded with the core functionality ('How many features have negative values'), making it efficient and easy to parse. There's no wasted information, and it appropriately sized for a simple tool.

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 the tool's complexity (analytical operation on tables), lack of annotations, and no output schema, the description is incomplete. It doesn't explain what 'features' are, how the count is returned, or any behavioral details like error cases. For a tool that performs data analysis, more context is needed to use it effectively, especially without structured support from annotations or output schema.

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 input schema has 100% description coverage, with the parameter 'table_name' documented as 'Table name to list'. The description adds minimal value beyond this, as it mentions 'in a table' which aligns with the schema but doesn't provide additional context like table format requirements or examples. With high schema coverage, the baseline is 3, and the description doesn't significantly enhance parameter understanding.

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's purpose: to count how many features have negative values in a table. It specifies the verb 'list' (though 'count' would be more precise) and the resource 'features with negative values in a table'. However, it doesn't explicitly differentiate from siblings like list_missing_values or list_distinct_values, which perform similar analytical functions on tables.

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. It doesn't mention sibling tools like list_missing_values for missing data analysis or query for more complex filtering. There's no context about prerequisites, such as requiring the table to exist or have numeric features, nor any exclusions or recommendations for specific use cases.

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

list_tablesC

List tables in a database

ParametersJSON Schema
NameRequiredDescriptionDefault
db_nameYesDatabase name to list

TDQS

C2.9/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 for behavioral disclosure but offers minimal information. It doesn't specify whether this is a read-only operation, what permissions are required, how results are formatted (e.g., pagination, sorting), or potential limitations. The description is too basic for a tool that interacts with databases.

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 extremely concise with a single, clear sentence that states the core functionality without any wasted words. It's front-loaded and efficiently communicates the essential purpose, making it easy for an agent to parse quickly.

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 the lack of annotations and output schema, the description is insufficiently complete. It doesn't explain what the tool returns (e.g., a list of table names, metadata), potential errors, or behavioral nuances. For a database tool with siblings offering similar functionality, more context is needed to guide proper usage.

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 description coverage is 100%, with the single parameter 'db_name' clearly documented in the schema. The description adds no additional parameter semantics beyond what's already in the schema, so it meets the baseline score of 3 for adequate but not additive 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 verb ('List') and resource ('tables in a database'), making the purpose immediately understandable. It distinguishes from siblings like 'list_db' (which lists databases) and 'show_tables_details' (which provides detailed table information), though it doesn't explicitly mention these distinctions in the text.

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 like 'show_tables_details' or 'query'. It doesn't mention prerequisites, context, or exclusions, leaving the agent to infer usage based solely on the tool name and basic purpose.

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

queryC

Executes a SQL query against the Teradata database

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesSQL query to execute that is a dialect of Teradata SQL

TDQS

C2.9/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 for behavioral disclosure but offers minimal information. It states the tool executes SQL queries but doesn't cover critical aspects like whether it's read-only or destructive, authentication requirements, rate limits, error handling, or result formats. This leaves significant gaps for a database interaction tool.

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 extremely concise with a single sentence that directly states the tool's function without any unnecessary words. It's front-loaded with the core purpose and appropriately sized for what it communicates, making it efficient and easy to parse.

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 the complexity of executing SQL queries against a database, the description is incomplete. With no annotations, no output schema, and minimal behavioral transparency, it fails to address important aspects like result handling, error conditions, security implications, or performance considerations. The description alone is insufficient for safe and effective tool usage.

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 doesn't add meaningful parameter semantics beyond what the input schema already provides. With 100% schema description coverage, the schema fully documents the single 'query' parameter. The description's mention of 'Teradata SQL' slightly reinforces the schema's 'dialect of Teradata SQL' but doesn't provide additional syntax, format, 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 the action ('executes') and target resource ('SQL query against the Teradata database'), providing specific verb+resource pairing. However, it doesn't distinguish this tool from potential sibling tools that might also execute queries or interact with the database in similar ways, preventing a perfect score.

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 about when to use this tool versus alternatives. The description doesn't mention prerequisites, appropriate contexts, or exclusions, leaving the agent without usage direction. Sibling tools like list_tables or show_tables_details might be related, but no comparison is made.

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

show_tables_detailsC

Show detailed information about a database tables

ParametersJSON Schema
NameRequiredDescriptionDefault
db_nameYesDatabase name to list
table_nameNoTable name to list

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the action but doesn't describe traits like whether it's read-only, requires permissions, returns structured data, or has limitations. This leaves significant gaps in understanding how the tool behaves beyond its basic function.

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, straightforward sentence that efficiently conveys the core purpose without unnecessary words. It's front-loaded and to the point, though it could be slightly more structured by hinting at output or usage context.

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 annotations and no output schema, the description is incomplete for a tool that likely returns complex table details. It doesn't explain what 'detailed information' includes, such as schema, row counts, or metadata, leaving the agent guessing about the return format and utility.

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 input schema has 100% description coverage, documenting both parameters clearly. The description adds no additional meaning beyond the schema, such as explaining the scope of 'detailed information' or how parameters interact. Baseline 3 is appropriate as the schema handles parameter documentation adequately.

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 'show' and the resource 'detailed information about database tables', making the purpose understandable. However, it doesn't explicitly differentiate from sibling tools like 'list_tables', which might list tables without details, leaving some ambiguity about uniqueness.

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 such as 'list_tables' or 'query'. It lacks context about prerequisites, exclusions, or specific scenarios where detailed table information is needed, offering minimal usage direction.

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

standard_deviationC

What is the mean and standard deviation for column in table?

ParametersJSON Schema
NameRequiredDescriptionDefault
table_nameYesTable name to list
column_nameYesColumn name to list

TDQS

C2.6/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 but lacks behavioral details. It doesn't disclose if this is a read-only operation, whether it requires specific permissions, how it handles errors, or what the output format is. The description only states what it calculates, not how it behaves.

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, efficient sentence that directly states the tool's function without unnecessary words. It's appropriately sized and front-loaded, though it could be slightly more structured 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 no annotations and no output schema, the description is incomplete. It doesn't explain the return values, error handling, or behavioral traits needed for a statistical calculation tool, leaving significant gaps in understanding.

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 100%, so the schema already documents both parameters. The description implies these parameters are used to identify the target column but adds no syntax, format, or validation details beyond what the schema provides, meeting the baseline for high coverage.

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 calculates 'mean and standard deviation for column in table', which provides a specific verb (calculate) and resource (column in table). However, it doesn't distinguish from siblings like 'list_distinct_values' or 'list_missing_values' that also analyze columns, making the purpose somewhat vague regarding differentiation.

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 offers no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, exclusions, or compare to siblings like 'query' for more complex analyses, leaving the agent with no usage context.

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. 8 tool updatesv0.1.0
    • First observedlist_db
    • First observedlist_distinct_values
    • First observedlist_missing_values
    • First observedlist_negative_values
    • First observedlist_tables
    • First observedquery
    • First observedshow_tables_details
    • First observedstandard_deviation

TDQS

B3.1/5.0

Scored across 8 tools

Disambiguation3/5

The tools have some overlap in purpose, particularly between list_tables and show_tables_details, which both deal with table information, and between the various 'list_' statistical tools (distinct_values, missing_values, negative_values, standard_deviation) that all analyze table columns. However, the descriptions help clarify their specific focuses, such as distinct categories vs. missing values vs. negative values, preventing complete confusion.

Naming Consistency4/5

The naming is mostly consistent with a verb_noun pattern, using 'list_' for most tools (list_db, list_distinct_values, etc.) and other clear verbs like 'query' and 'show_tables_details'. The only minor deviation is 'standard_deviation', which uses a noun phrase instead of a verb, but it still fits the overall readable style without mixing conventions like camelCase.

Tool Count5/5

With 8 tools, the count is well-scoped for a database analysis server. Each tool earns its place by covering distinct aspects like database listing, table listing, SQL querying, and statistical analysis, without being too thin or overloaded for the apparent purpose of interacting with Teradata systems.

Completeness3/5

The tool surface has notable gaps for a database server. While it covers listing databases and tables, querying, and some statistical analysis, it lacks core CRUD operations like create, update, or delete for databases or tables. This could cause agent failures when trying to modify data, but the existing tools support basic querying and inspection workflows.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    D
    maintenance
    Enables interaction with Vertica databases through SQL queries, schema management, and bulk data operations. Supports connection pooling, SSL/TLS security, and configurable permissions for database operations.
    6
    Apache 2.0
  • A
    license
    C
    quality
    D
    maintenance
    Enables AI agents and users to query, analyze, and manage Teradata databases through modular tools for search, data quality, administration, and data science operations. Provides comprehensive database interaction capabilities including RAG applications, feature store management, and vector operations.
    39
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables natural language interaction with Teradata databases through Claude, allowing data exploration, profiling, and in-database KMeans clustering via MCP.
    -