Skip to main content
Glama

testlink-mcp

AI-ориентированный, безопасный по своей сути сервер Model Context Protocol для TestLink 1.9.20. Он предоставляет нормализованные инструменты обнаружения и анализа, ограниченную курсорную пагинацию, структурированный вывод и запись с предварительным просмотром перед применением через stdio.

Этот репозиторий представляет собой чистую реализацию, основанную на публичном XML-RPC интерфейсе TestLink и публичном MCP SDK. Он не зависит от частного пакета TestLink или частного дерева исходников.

Возможности

  • Запускается без учетных данных, чтобы MCP-клиенты могли обнаруживать все инструменты, ресурсы и подсказки.

  • Явный детерминированный демонстрационный режим для оценки и адаптации.

  • structuredContent, outputSchema, аннотации инструментов, курсорная пагинация и стабильные коды ошибок.

  • Только метаданные вложений; содержимое вложений и base64-нагрузки удалены.

  • Запись отключена по умолчанию. Инструмента удаления нет.

  • Каждое применение требует confirm: true, непросроченного 10-минутного предварительного просмотра и неизмененного снимка сервера.

  • Вызовы с побочными эффектами никогда не повторяются автоматически; попытки применения записываются в редактируемый журнал операций.

  • Защита времени выполнения блокирует неподдерживаемые/вышедшие из эксплуатации нечетные версии Node и уровни исправлений безопасности ниже заявленного минимума.

Related MCP server: TestRail MCP Server

Требования

  • Node.js ^22.23.2 || ^24.18.1 || ^26.5.1

  • TestLink 1.9.20 с включенным XML-RPC API

Базовая версия для разработки и контейнеров — Node 24.19.0 LTS. CI также запускает Node 22.23.2 и 26.7.0.

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

nvm use
npm ci
npm run build
TESTLINK_DEMO_MODE=true node dist/cli.js

Будущий вызов npm после публикации:

npx -y testlink-mcp@1.0.0

Конфигурация MCP-клиента:

{
  "mcpServers": {
    "testlink": {
      "command": "npx",
      "args": ["-y", "testlink-mcp@1.0.0"],
      "env": {
        "TESTLINK_URL": "https://testlink.example.com/testlink",
        "TESTLINK_DEV_KEY": "your-testlink-dev-key"
      }
    }
  }
}

Не помещайте реальные учетные данные в отслеживаемые файлы. Скопируйте .env.example в игнорируемый .env или внедрите переменные окружения из вашего MCP-клиента/менеджера секретов.

Инструменты

Рабочий процесс

Инструмент

Назначение

Запуск

testlink_get_server_capabilities

Проверка конфигурации, совместимости, демонстрационного режима и политики записи

Исследование

testlink_list_projects

Список проектов

Исследование

testlink_list_test_plans

Список планов в проекте

Исследование

testlink_list_builds

Список сборок в плане

Исследование

testlink_list_test_suites

Переход на один уровень набора

Анализ

testlink_search_test_cases

Поиск тест-кейсов в ограниченной области проекта/набора

Анализ

testlink_get_test_case

Получение одного нормализованного тест-кейса

Анализ

testlink_list_test_case_attachments

Получение безопасных метаданных вложений

Анализ

testlink_get_traceability

Проверка покрытия требований и планов

Анализ

testlink_get_execution_history

Проверка недавних свидетельств выполнения

Проверка

testlink_validate_test_case

Поиск неполного или неоднозначного содержимого тест-кейса

Предпросмотр

testlink_preview_test_case_sync

Предпросмотр создания/обновления и членства в планах

Применение

testlink_apply_test_case_sync

Применение неизмененного подтвержденного предпросмотра синхронизации

Предпросмотр

testlink_preview_execution_result

Предпросмотр отчетов о пройденных/проваленных/заблокированных

Применение

testlink_apply_execution_result

Применение неизмененного подтвержденного предпросмотра результата

Все инструменты возвращают:

{
  "ok": true,
  "data": {},
  "meta": {
    "source": "testlink",
    "requestId": "..."
  }
}

Сбои используют ok: false с { code, message, retryable, details? }. Потребители должны ветвиться по error.code, а не по тексту сообщения.

Безопасный рабочий процесс записи

  1. Найдите существующий тест-кейс и получите его текущую версию.

  2. Проверьте желаемый тест-кейс.

  3. Вызовите соответствующий инструмент предпросмотра.

  4. Покажите proposedChanges пользователю и получите явное подтверждение.

  5. Вызовите apply с идентификатором предпросмотра и confirm: true в течение 10 минут.

  6. Если apply возвращает CONFLICT или PREVIEW_EXPIRED, создайте и просмотрите новый предпросмотр.

Включайте запись только в том серверном процессе, который должен их выполнять:

TESTLINK_WRITE_ENABLED=true npx -y testlink-mcp@1.0.0

Путь к журналу по умолчанию: ~/.local/state/testlink-mcp/operations.jsonl. Переопределите его с помощью TESTLINK_LEDGER_PATH. Журнал содержит хэши и редактируемые результаты, а не ключи разработчика.

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

Переменная

По умолчанию

Значение

TESTLINK_URL

не задано

Базовый URL TestLink или полная конечная точка XML-RPC

TESTLINK_DEV_KEY

не задано

Личный ключ API TestLink

TESTLINK_DEMO_MODE

false

Использовать детерминированные локальные демонстрационные данные

TESTLINK_WRITE_ENABLED

false

Разрешить подтвержденные инструменты применения

TESTLINK_REQUEST_TIMEOUT_MS

30000

Тайм-аут запроса, 100–300000 мс

TESTLINK_MAX_RESPONSE_BYTES

5242880

Максимальный размер XML-ответа

TESTLINK_LEDGER_PATH

пользовательский каталог состояния

Редактируемый журнал операций JSONL

NODE_EXTRA_CA_CERTS

не задано

Дополнительный пакет CA; проверка TLS остается включенной

Демонстрационный режим явный и имеет приоритет над удаленной конфигурацией:

TESTLINK_DEMO_MODE=true TESTLINK_WRITE_ENABLED=true node dist/cli.js

Разработка

npm ci
npm run check
npm test
npm run eval
npm run build
npm audit --omit=dev --audit-level=high
npm pack --dry-run

Офлайн-оценка выбора инструментов проверяет, что типичные намерения пользователя выбирают инструменты поиска, проверки, предпросмотра и применения отдельно. Она детерминирована и не отправляет данные внешней модели.

Docker

Образ запускается от имени непривилегированного пользователя и использует Node 24.19.0. Сборка без публикации:

docker buildx build --platform linux/amd64,linux/arm64 --tag testlink-mcp:local --output type=oci,dest=testlink-mcp.oci.tar .

Будущее имя образа после одобрения и публикации: ghcr.io/easonlin/testlink-mcp:1.0.0.

Политика выпуска

Версия 1.0.0 готова к выпуску, но публикация остается явным действием. Защищенный рабочий процесс выпуска требует подписанного тега версии, повторно запускает все этапы тестирования/оценки/аудита/SBOM/пакета, публикует npm с подтверждением происхождения, публикует многоплатформенный образ GHCR с SBOM и подтверждением происхождения, создает релиз GitHub и, наконец, публикует проверенную запись в реестре MCP.

Отдельный защищенный рабочий процесс live-smoke проверяет установленный пакет на реальном экземпляре TestLink 1.9.20 с использованием вызовов только для чтения. Его URL и ключ разработчика должны храниться как секреты окружения и никогда не записываются в журналы.

Манифест пакета и server.json используют общее имя MCP io.github.easonlin/testlink-mcp. Проверку реестра можно запустить без публикации:

mcp-publisher validate server.json

Публичные ссылки

Лицензия

MIT

A
license - permissive license
Not graded
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Related MCP Servers

  • A
    license
    B
    quality
    D
    maintenance
    A Model Context Protocol server that allows interaction with TestRail's core entities (projects, cases, runs, results, datasets) through a standardized protocol compatible with MCP clients like Claude Desktop.
    23
    20
    MIT
  • A
    license
    B
    quality
    C
    maintenance
    A security-focused Model Context Protocol server that enables controlled local tool execution through strict network firewalls, filesystem protections, and rate-limiting policies. It features a plugin-based architecture for progressive tool discovery and includes reference implementations for web searching and bug tracking.
    15
    MIT
  • A
    license
    B
    quality
    A
    maintenance
    AI-native Model Context Protocol (MCP) server for TestRail. Lets Claude, Cursor, Windsurf, and other AI assistants browse projects, create and update test cases, kick off test runs, and record results through natural-language conversation — with strongly-typed tool schemas and per-project custom field validation that helps LLMs generate valid TestRail requests on the first try.
    26
    817
    30
    Apache 2.0

View all related MCP servers

Related MCP Connectors

  • A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…

  • A Model Context Protocol server for Wix AI tools

  • MCP server for AI access to SmartBear tools, including BugSnag, Reflect, Swagger, PactFlow, QTM4J.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Eason0in/testlink-mcp'

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