testlink-mcp
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.1TestLink 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-клиента/менеджера секретов.
Инструменты
Рабочий процесс | Инструмент | Назначение |
Запуск |
| Проверка конфигурации, совместимости, демонстрационного режима и политики записи |
Исследование |
| Список проектов |
Исследование |
| Список планов в проекте |
Исследование |
| Список сборок в плане |
Исследование |
| Переход на один уровень набора |
Анализ |
| Поиск тест-кейсов в ограниченной области проекта/набора |
Анализ |
| Получение одного нормализованного тест-кейса |
Анализ |
| Получение безопасных метаданных вложений |
Анализ |
| Проверка покрытия требований и планов |
Анализ |
| Проверка недавних свидетельств выполнения |
Проверка |
| Поиск неполного или неоднозначного содержимого тест-кейса |
Предпросмотр |
| Предпросмотр создания/обновления и членства в планах |
Применение |
| Применение неизмененного подтвержденного предпросмотра синхронизации |
Предпросмотр |
| Предпросмотр отчетов о пройденных/проваленных/заблокированных |
Применение |
| Применение неизмененного подтвержденного предпросмотра результата |
Все инструменты возвращают:
{
"ok": true,
"data": {},
"meta": {
"source": "testlink",
"requestId": "..."
}
}Сбои используют ok: false с { code, message, retryable, details? }. Потребители должны ветвиться по error.code, а не по тексту сообщения.
Безопасный рабочий процесс записи
Найдите существующий тест-кейс и получите его текущую версию.
Проверьте желаемый тест-кейс.
Вызовите соответствующий инструмент предпросмотра.
Покажите
proposedChangesпользователю и получите явное подтверждение.Вызовите apply с идентификатором предпросмотра и
confirm: trueв течение 10 минут.Если apply возвращает
CONFLICTилиPREVIEW_EXPIRED, создайте и просмотрите новый предпросмотр.
Включайте запись только в том серверном процессе, который должен их выполнять:
TESTLINK_WRITE_ENABLED=true npx -y testlink-mcp@1.0.0Путь к журналу по умолчанию: ~/.local/state/testlink-mcp/operations.jsonl. Переопределите его с помощью TESTLINK_LEDGER_PATH. Журнал содержит хэши и редактируемые результаты, а не ключи разработчика.
Конфигурация
Переменная | По умолчанию | Значение |
| не задано | Базовый URL TestLink или полная конечная точка XML-RPC |
| не задано | Личный ключ API TestLink |
|
| Использовать детерминированные локальные демонстрационные данные |
|
| Разрешить подтвержденные инструменты применения |
|
| Тайм-аут запроса, 100–300000 мс |
|
| Максимальный размер XML-ответа |
| пользовательский каталог состояния | Редактируемый журнал операций JSONL |
| не задано | Дополнительный пакет 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
This server cannot be installed
Maintenance
Related MCP Servers
- AlicenseBqualityDmaintenanceA 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.2320MIT
- FlicenseNot gradedqualityNot gradedmaintenanceA Model Context Protocol server that provides integration with TestRail, allowing AI assistants to interact with TestRail projects, test cases, test runs, and results.1,3341
- AlicenseBqualityCmaintenanceA 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.15MIT
- AlicenseBqualityAmaintenanceAI-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.2681730Apache 2.0
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.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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