# MikhailHal/ariadne [Health: Active]

**Category:** 📂 Browser Automation  
**Repository:** https://github.com/MikhailHal/ariadne  
**GitHub Stars:** 2  
**Views:** 3  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/mikhailhal-ariadne

## Description
Affected-test selection for Kotlin/Android projects: returns only the unit tests impacted by the current working-tree changes, so agents skip full test runs while iterating. Function-level static analysis via Kotlin Analysis API — call graph over functions, properties (initializers, delegates, accessors), constructors and callable references — with automatic multi-module and Android variant source-set discovery. Verified on Now in Android (34 modules, 4s per query). brew install mikhailhal/tap/ariadne

## Claude Desktop Quick Installation
Heuristic fallback — verify the package name and runner against the repository README before running it. Uses `npx` (confidence: low):

```json
"mcpServers": {
  "ariadne": {
    "command": "npx",
    "args": ["-y","mikhailhal-ariadne"]
  }
}
```

## Documentation

## What the MikhailHal/ariadne MCP server does

The MikhailHal/ariadne MCP server exposes affected-test selection for Kotlin and Android repositories through MCP. Its main purpose is to reduce the tests an agent runs after modifying code. The result is a sorted list of affected test fully qualified names rather than a test command or test report.

The analyzer covers function-level relationships, including calls involving functions, properties, property initializers, delegates, accessors, constructors, and callable references. It can discover modules from Gradle settings and identify source sets across Android variants. The project description reports validation against Now in Android, including 34 modules and an approximately four-second end-to-end query time in that project.

## How it works

An MCP client sends a project path to the `get_affected_tests` tool. The MikhailHal/ariadne MCP server runs Git diff itself, then passes the changed Kotlin code to sazanami for static analysis. Sazanami builds a call graph and finds tests reachable from the changed code.

The `scope` option controls which changes are considered. `deep`, the default, compares changes since a base branch and includes committed and uncommitted work. `shallow` compares only uncommitted changes against `HEAD`; in that mode, `base_branch` is ignored. For deep analysis, the server uses the repository's default branch from `origin/HEAD` when no branch is supplied. If that reference is unavailable, the request returns an error asking for an explicit base branch.

## Setup and configuration

Install the executable with Homebrew:

```bash
brew install mikhailhal/tap/ariadne
```

Register the `ariadne` executable with an MCP client. The README gives Claude Code and Claude Desktop configurations, including a stdio entry whose command is `ariadne`. Docker is also supported by mounting the project at `/workspace` and passing that path as `project_path`. A release fat JAR can run with JDK 21 or newer, and the repository can be built with Gradle's `shadowJar` task.

## Tools and capabilities

The server provides one documented tool:

- `get_affected_tests`: accepts required `project_path`, optional `scope` (`deep` or `shallow`), and optional `base_branch` for deep scope.

Responses contain sorted affected test names. If changes occur in build scripts, resources, or source sets outside the analysis scope, the response adds a recommendation to run the full test suite. Analysis has a 120-second timeout and returns an explicit error if that limit is reached.

## Limitations and notes

The MikhailHal/ariadne MCP server uses static call-graph analysis, so it cannot reliably connect dependencies hidden behind reflection, dependency-injection containers, or framework-dispatched callbacks. Examples include lifecycle callbacks, lint detector methods, and application startup methods when the test does not call them directly. Flux/MVI dispatch-to-collection relationships may also be missed.

Changes to build scripts, resources, or unscanned source sets are reported rather than treated as having no affected tests. The tool is intended to narrow tests during development, not replace a full or conservative CI test run before merging.

_Full upstream README: https://allmcps.com/mcp/mikhailhal-ariadne/readme_

