8000 GitHub - thrix/testing-farm-mcp
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

thrix/testing-farm-mcp

Repository files navigation

Testing Farm MCP Server

An MCP (Model Context Protocol) server for interacting with the Testing Farm service. This server provides tools to submit FMF-based test requests and list available composes for testing.

Container Build Static Analysis

Features

  • Submit Test Requests: Submit test requests to Testing Farm
  • List Composes: Retrieve available OS composes for testing from public or redhat ranches
  • Full Type Safety: Built with static typing
  • Async Support: Fully asynchronous API client using httpx
  • Container Ready: Container images available

Installation

Option 1: Container (Recommended)

# Pull the latest container image
podman pull ghcr.io/thrix/testing-farm-mcp:latest

# Run the MCP server
podman run -i --rm -e TESTING_FARM_API_TOKEN="your-api-token-here" ghcr.io/thrix/testing-farm-mcp:latest

This will run the MCP server with the stdio transport.

If you wanna run it via HTTP using the sse transport, you can change the default container command:

podman run -i --rm -e TESTING_FARM_API_TOKEN="your-api-token-here" -p 9001:9001 ghcr.io/thrix/testing-farm-mcp:latest \
  fastmcp run --transport sse --host 0.0.0.0 --port 9001 testing_farm_mcp/server.py

This will run the MCP server on port 9001 inside the container and it will be exposed out of the container.

Option 2: Local Development

This project uses uv for package management.

# Clone the repository
git clone https://github.com/thrix/testing-farm-mcp.git
cd testing-farm-mcp

# Install dependencies
just install

Option 3: Using ToolHive

# Using ToolHive from Stacklok
systemctl start --user podman.socket
thv secret set TESTING_FARM_API_TOKEN
thv run ghcr.io/thrix/testing-farm-mcp:latest

Configuration

Set the Testing Farm API token as an environment variable:

export TESTING_FARM_API_TOKEN="your-api-token-here"

Usage

Running the MCP Server

just start

Available Tools

submit_request

Submit a FMF test request to Testing Farm.

Parameters:

  • url (required): Git repository URL containing FMF metadata
  • ref (optional): Branch, tag, or commit to test
  • merge_sha (optional): Target commit SHA for merge testing
  • path (optional): Path to metadata tree root
  • plan_name (optional): Specific test plan to execute
  • plan_filter (optional): Filter for tmt plans
  • test_name (optional): Specific test to execute
  • test_filter (optional): Filter for tmt tests
  • environments (optional): Test environment configurations
  • notification (optional): Notification settings
  • settings (optional): Additional request settings
  • user (optional): User information

Example:

{
  "url": "https://github.com/example/test-repo",
  "ref": "main",
  "path": "/tests",
  "environments": [
    {
      "arch": "x86_64",
      "os": "fedora-38",
      "variables": {
        "TEST_VAR": "test_value"
      }
    }
  ]
}

list_composes

List available composes for a ranch.

Parameters:

  • ranch (required): Ranch to query ("redhat" or "public")

Example:

{
  "ranch": "public"
}

get_request

Get details about a Testing Farm request.

Parameters:

  • request_id (required): Testing Farm request ID or a string containing the ID, like an API request URL or artifacts URL

Example:

{
  "request_id": "12345678-1234-5678-9abc-123456789abc"
}

Container Images

Container images are available on GitHub Container Registry:

  • ghcr.io/thrix/testing-farm-mcp:latest - Latest stable version

Supported architectures:

  • linux/amd64

Development

Setup Development Environment

# Install development dependencies
just install

Code Quality

This project uses several tools for code quality:

  • ruff: Linting and formatting
  • codespell: Spell checking
  • mypy: Type checking (excluding tests)
  • pre-commit: Git hook management
just static-analysis

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Run tests and linting
  5. Submit a pull request

Make sure to follow the existing code style and add tests for new functionality.

License

Apache-2.0 License - see LICENSE file for details.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  
0