testlink-mcp-server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| TESTLINK_URL | Yes | Full XML-RPC endpoint, e.g. http://host/testlink/lib/api/xmlrpc/v1/xmlrpc.php | |
| TESTLINK_API_KEY | Yes | Personal API key from TestLink → My Settings → API interface | |
| TESTLINK_RETRIES | No | Retry attempts on transient network errors only (default 2) | 2 |
| TESTLINK_TIMEOUT_MS | No | Per-call network timeout (default 15000) | 15000 |
| TESTLINK_RETRY_DELAY_MS | No | Base backoff delay, doubled per attempt (default 500) | 500 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_projectsA | List every TestLink test project visible to the authenticated API key (tl.getProjects). |
| create_projectA | Create a new TestLink test project (tl.createTestProject). |
| list_test_suitesA | List test suites: top-level suites for a project (tl.getFirstLevelTestSuitesForTestProject), or child suites of a given suite (tl.getTestSuitesForTestSuite) when parentSuiteId is supplied. |
| create_test_suiteB | Create a test suite inside a project, optionally nested under a parent suite (tl.createTestSuite). |
| update_test_suiteA | Update an existing test suite's name, details, parent, or order. CAVEAT: tl.updateTestSuite is not part of TestLink's stock public API on most installations — run the list_available_api_methods tool first to confirm your server exposes it. |
| delete_test_suiteB | Delete a test suite. CAVEAT: tl.deleteTestSuite is not part of TestLink's stock public API on most installations — run the list_available_api_methods tool first to confirm your server exposes it. |
| read_test_caseA | Fetch a test case by internal id, or by external id (+ optional version) (tl.getTestCase). |
| create_test_caseB | Create a new test case inside a test suite (tl.createTestCase). |
| update_test_caseA | Update fields on an existing test case, identified by external id (tl.updateTestCase). To write custom field values, use update_custom_field_value instead — tl.updateTestCase has no custom field parameter of its own. |
| delete_test_caseA | Delete a test case by internal id. CAVEAT: tl.deleteTestCase is not part of TestLink's stock public API on most installations — run the list_available_api_methods tool first to confirm your server exposes it. |
| list_test_cases_in_suiteB | List the test cases contained in a test suite (tl.getTestCasesForTestSuite). |
| get_custom_field_valueA | Read a custom field's value for a specific test case version (tl.getTestCaseCustomFieldDesignValue). |
| update_custom_field_valueA | Write one or more custom field values on a test case (tl.updateTestCaseCustomFieldDesignValue). Requires the exact version and project id the field values belong to — TestLink stores custom field values per test case version, not just per external id. |
| list_custom_fields_for_projectA | Best-effort custom field discovery. TestLink's XML-RPC API has NO endpoint to enumerate custom field definitions for a project — only to read a named field's value on a specific test case. Supply a representative test case plus a list of candidate field names (visible in TestLink Admin > Custom Fields) and this probes each one, returning only the fields that resolved to a non-empty value for that test case. |
| list_requirementsA | List requirements for a project, optionally scoped to a test plan/platform/requirement specification (tl.getRequirements). |
| create_requirement_specificationB | Create a requirement specification container, the parent grouping for requirements (tl.createRequirementSpecification). |
| create_requirementC | Create a requirement inside a requirement specification (tl.createRequirement). |
| assign_requirementsB | Link one or more requirements to a test case (tl.assignRequirements). |
| get_requirementA | Fetch a single requirement by requirement id or doc id. TestLink's API has no direct single-requirement lookup — this calls tl.getRequirements for the project and filters client-side. |
| list_test_plansB | List all test plans for a project (tl.getProjectTestPlans). |
| create_test_planB | Create a new test plan inside a project (tl.createTestPlan). |
| add_test_case_to_test_planB | Add a specific test case version to a test plan, optionally for a platform (tl.addTestCaseToTestPlan). |
| get_test_cases_for_test_planB | List the test cases (with execution status) attached to a test plan (tl.getTestCasesForTestPlan). |
| delete_test_planA | Delete a test plan. CAVEAT: tl.deleteTestPlan is not part of TestLink's stock public API on most installations — run the list_available_api_methods tool first to confirm your server exposes it. |
| create_buildC | Create a new build under a test plan (tl.createBuild). |
| list_buildsA | List every build defined for a test plan (tl.getBuildsForTestPlan). |
| close_buildA | Mark a build as closed/inactive. CAVEAT: TestLink's public API has no dedicated close-build endpoint on most installations — run the list_available_api_methods tool first to confirm your server exposes tl.closeBuild. |
| create_test_executionC | Report a test case execution result against a build within a test plan (tl.reportTCResult). |
| read_test_executionB | Fetch the last execution result for a test case within a test plan/build/platform (tl.getLastExecutionResult). |
| list_available_api_methodsA | List every XML-RPC method the connected TestLink server actually exposes (standard system.listMethods introspection). Use this to check whether non-standard methods relied on by update_test_suite, delete_test_suite, delete_test_case, delete_test_plan, and close_build are available before calling them — those are not part of every stock TestLink installation. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
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/adama007/MCP-TESTLINK'
If you have feedback or need assistance with the MCP directory API, please join our Discord server