Skip to main content
Glama
ozanunsal

Testing Farm MCP Server

by ozanunsal

Testing Farm MCP Server

A Model Context Protocol (MCP) server for analyzing Testing Farm jobs. This server provides tools to check job status and analyze failures with detailed error investigation.

Features

  • ๐Ÿ” Job Status Checking: Get current status of Testing Farm jobs

  • ๐Ÿงช Intelligent Failure Analysis: Automatically investigate failed jobs by examining logs and TMT execution details

  • ๐Ÿš€ Dual Transport Support: Works with both stdio and SSE transport modes

  • ๐Ÿณ Containerized: Ready-to-use container images with Podman/Docker

  • ๐Ÿ”ง Generic Error Detection: Finds failure reasons without hardcoded patterns

Related MCP server: Jenkins MCP Server

Available Tools

get_job_status(job_id: str)

Returns basic status information for a Testing Farm job including state, result, timing, and environment details.

analyze_job(job_id: str)

Provides comprehensive job analysis:

  • Successful jobs: Brief summary with environment information

  • Failed jobs: Investigates logs to find exact failure reasons

  • Running jobs: Current status information

Transport Modes

This MCP server supports two transport modes:

๐Ÿ“ก stdio Transport (Default)

  • Communication via stdin/stdout

  • Best for: IDE integrations, CLI tools

  • Process lifecycle: Managed by MCP client

๐ŸŒ SSE Transport

  • HTTP server with Server-Sent Events

  • Best for: Web applications, debugging, multiple clients

  • Process lifecycle: Independent server process

Quick Start

1. Setup

# Clone and setup
git clone <repository-url>
cd testing-farm-mcp

# Build and configure everything
make setup

2. Configure API Token

Edit ~/.testing-farm-mcp.env and set your Testing Farm API token:

TESTING_FARM_API_TOKEN=your_actual_token_here

3. Choose Your Transport Mode

stdio Transport (Default)

make run

SSE Transport

make run-sse

Configuration

Environment Variables

Create ~/.testing-farm-mcp.env with the following variables:

# Required: Your Testing Farm API token
TESTING_FARM_API_TOKEN=your_token_here

# Transport configuration
MCP_TRANSPORT=stdio          # or 'sse'
MCP_PORT=8000               # for SSE transport

MCP Client Configuration

For stdio Transport

Add to your MCP client configuration (e.g., ~/.cursor/mcp.json):

{
  "mcpServers": {
    "TestingFarmMcp-stdio": {
      "command": "podman",
      "args": [
        "run", "-i", "--rm",
        "--env-file", "~/.testing-farm-mcp.env",
        "localhost/testing-farm-mcp:latest"
      ],
      "description": "Testing Farm MCP server using stdio transport (containerized)"
    }
  }
}

For SSE Transport

{
  "mcpServers": {
    "TestingFarmMcp-sse": {
      "command": "podman",
      "args": [
        "run", "-d", "--rm",
        "--name", "testing-farm-mcp-sse",
        "-p", "8000:8000",
        "--env-file", "~/.testing-farm-mcp.env",
        "-e", "MCP_TRANSPORT=sse",
        "-e", "MCP_PORT=8000",
        "localhost/testing-farm-mcp:latest"
      ],
      "transport": {
        "type": "sse",
        "url": "http://localhost:8000"
      },
      "description": "Testing Farm MCP server using SSE transport with port 8000 (containerized)"
    }
  }
}

Usage Examples

Check Job Status

# Basic status check
get_job_status("aeebaa46-4983-4c70-a339-f168c8c427c2")

Analyze Jobs

# Comprehensive analysis
analyze_job("aeebaa46-4983-4c70-a339-f168c8c427c2")

# For successful jobs, you'll get:
# โœ… Job completed successfully
#    State: complete
#    Result: passed
#    Architecture: aarch64
#    OS: CentOS-Stream-9

# For failed jobs, you'll get failure investigation:
# โŒ Job failed
#    State: complete
#    Result: failed
#    ๐Ÿ“‹ Failed Tests: /Clone SIG repo
#    ๐Ÿ’ฅ Failure Details:
#    error: pathspec '2943d306' did not match any file(s) known to git

Development

Local Development

# Install dependencies
pip install -r requirements.txt

# Copy environment file and edit with your API token
cp example.env ~/.testing-farm-mcp.env

# Run locally
export $(cat ~/.testing-farm-mcp.env | xargs)
python server.py

Container Development

# Build container
make build

# Run container (stdio)
make run

# Run container (SSE)
make run-sse

# Clean up
make clean

Available Make Commands

Command

Description

make setup

Complete setup: build, configure Cursor, create env file

make build

Build container image

make run

Run with stdio transport (default)

make run-sse

Run with SSE transport

make clean

Clean up container image

make cursor-config

Configure Cursor IDE

Transport Mode Comparison

Feature

stdio

SSE

Use Case

IDE integration, CLI tools

Web apps, debugging, multi-client

Process Model

Subprocess of MCP client

Independent server process

Network

None (pipes)

HTTP on configurable port

Clients

Single

Multiple concurrent

Resource Usage

Lower

Slightly higher

Setup Complexity

Simple

Requires port management

Troubleshooting

Common Issues

"TESTING_FARM_API_TOKEN not set" warning

  • Edit ~/.testing-farm-mcp.env and add your API token

"Could not retrieve job data" error

  • Verify your API token is correct

  • Check if the job ID exists

  • Ensure network connectivity to testing-farm.io

SSE transport connection failed

  • Check if port 8000 is available: netstat -tlnp | grep 8000

  • Try a different port by setting MCP_PORT=8001

Container permission issues

  • Ensure your user can run Podman/Docker

  • Check if the env file path is accessible: ~/.testing-farm-mcp.env

API Token Setup

  1. Get Testing Farm API Token:

    • Visit Testing Farm Console

    • Sign in with your account

    • Navigate to API tokens section

    • Generate a new token

  2. Configure Token:

    # Create or edit environment file
    echo "TESTING_FARM_API_TOKEN=your_token_here" > ~/.testing-farm-mcp.env

Project Structure

testing-farm-mcp/
โ”œโ”€โ”€ server.py              # Main MCP server implementation
โ”œโ”€โ”€ requirements.txt       # Python dependencies
โ”œโ”€โ”€ Containerfile         # Container build configuration
โ”œโ”€โ”€ Makefile              # Build and run commands
โ”œโ”€โ”€ example.env           # Environment variables template
โ”œโ”€โ”€ example.mcp.json      # MCP client configuration examples
โ””โ”€โ”€ README.md             # This file

Dependencies

  • httpx - HTTP client for API requests

  • fastmcp - MCP server framework

  • python-dotenv - Environment variable loading

Contributing

  1. Fork the repository

  2. Create a feature branch

  3. Make your changes

  4. Test with both transport modes

  5. Submit a pull request

License

[Add your license information here]


Note: This MCP server requires a valid Testing Farm API token to function. The server will work without it but with limited functionality.

F
license - not found
-
quality - not tested
F
maintenance

Maintenance

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

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

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/ozanunsal/testing-farm-mcp'

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