Android 프로젝트 아키텍처, Gradle 설정 및 테스트 인프라에 대한 구조화되고 근거 기반인 지식 베이스를 AI agent에게 제공합니다.
다른 이름 automaticqa/coador
- 스타
- 1
- Tools
- —
- 다운로드, 30일
- 226
- 최신 버전
- 0.1.0
- 마지막 커밋
- 2026년 9월 17일
- 라이선스
- MIT
Coador MCP란?
Coador은(는) MCP server입니다. Android 프로젝트 아키텍처, Gradle 설정 및 테스트 인프라에 대한 구조화되고 근거 기반인 지식 베이스를 AI agent에게 제공합니다.
프로젝트 README에서 생성된 요약
Coador MCP server 정보
Coador는 AI agent가 지속적인 재탐색 과정 없이 복잡한 코드베이스를 탐색할 수 있도록 Android 저장소를 위한 구조화된 지식 베이스를 제공합니다. 이 도구는 프로젝트를 로컬에서 결정론적으로 스캔하여 아키텍처 신호, Gradle 설정, 모듈 의존성 및 테스트 인프라를 추출하는 방식으로 작동합니다. 스캐너는 LLM 대신 특화된 탐지기를 사용하므로, 생성된 정보는 소스 파일 경로 및 줄 번호와 같은 구체적인 근거를 바탕으로 합니다.
개발자는 토큰 소비를 줄이고 agent 워크플로우를 가속화하기 위해 이 도구를 사용합니다. 시스템은 로컬에서 사용되며 기본 pass를 실행하는 데 외부 API, 벡터 데이터베이스 또는 Android toolchain이 필요하지 않습니다. convention plugin이나 build variant에 대한 더 깊은 통찰력이 필요한 경우 사용자는 Gradle pass를 실행할 수 있습니다. AI agent는 생성된 프로필과 MCP 인터페이스를 통해 상호작용하며, 개별 소스 파일을 열기 전에 CI/CD 파이프라인, UI selector 또는 의존성 주입 설정과 같은 특정 프로젝트 레이어를 쿼리할 수 있습니다.
활용 사례
- 1UI 테스트 생성 자동화agent가 기존 테스트 러너, screen object 및 selector를 식별하여 새로운 instrumentation test를 올바르게 구현할 수 있습니다.
- 2빌드 구성 탐색개발자는 특정 빌드 설정이나 환경 구성이 정의된 위치를 찾기 위해 이 도구를 사용할 수 있습니다.
프로젝트의 README를 바탕으로 작성되었습니다. 모든 활용 사례는 해당 내용의 인용문과 대조하여 확인합니다.
Coador MCP 설치 방법
형식 확인: 2026년 11월 10일Cursor에 추가Goose에 추가Claude Code에 Coador MCP 설치
$ claude mcp add coador -- uvx coadorCursor에 Coador MCP 설치
~/.cursor/mcp.json
{
"mcpServers": {
"coador": {
"command": "uvx",
"args": [
"coador"
]
}
}
}VS Code에 Coador MCP 설치
.vscode/mcp.json
{
"servers": {
"coador": {
"type": "stdio",
"command": "uvx",
"args": [
"coador"
]
}
}
}VS Code CLI에 Coador MCP 설치
$ code --add-mcp '{"name":"coador","type":"stdio","command":"uvx","args":["coador"]}'Claude Desktop에 Coador MCP 설치
claude_desktop_config.json
{
"mcpServers": {
"coador": {
"command": "uvx",
"args": [
"coador"
]
}
}
}Codex에 Coador MCP 설치
$ codex mcp add coador -- uvx coadorCodex config.toml에 Coador MCP 설치
~/.codex/config.toml
[mcp_servers.coador] command = "uvx" args = ["coador"]
Gemini CLI에 Coador MCP 설치
$ gemini mcp add -s user coador uvx -- coadorGemini settings.json에 Coador MCP 설치
~/.gemini/settings.json
{
"mcpServers": {
"coador": {
"command": "uvx",
"args": [
"coador"
]
}
}
}자동 검사
2026년 11월 14일에 실행됨전체 보고서 →자동 검사를 통과했습니다. 이는 보안 감사가 아닙니다. 코드를 직접 읽고 서버에 필요한 최소한의 권한만 부여하십시오. 검사 방식
- 소스 저장소 연결 및 접근 가능automaticqa/coador is public and reachablegithub.com/automaticqa/coador ↗통과
- 패키지가 이 저장소를 소스로 명시coador names automaticqa/coador as sourcepypi.org/project/coador/ ↗통과
- 빌드 출처(Sigstore 증명)Sigstore attestation for coadorpypi.org/project/coador/ ↗통과
- 오픈 소스 라이선스 (OSI)MITspdx.org/licenses/MIT.html ↗통과
- 최근 1년 내 커밋 또는 릴리스Last commit or release 2026-09-17github.com/automaticqa/coador ↗통과
- OpenSSF Scorecard검사되지 않음
- 패키지 이름이 인기 패키지와 유사하지 않음No popular package one edit away from coador통과
- 패키지 및 해당 종속성에 중요한 보안 권고 없음29 resolved dependencies checked; no critical advisoryosv.dev ↗통과
- 모델에 대한 숨겨진 지침 없음0 tool descriptions and the README read; no override phrases, credential paths or hidden characters통과
- 파괴적인 도구에 라벨 표시됨검사되지 않음
- 원격 엔드포인트가 MCP 핸드셰이크에 응답검사되지 않음
README
GitHub에서 보기Coador
Give AI agents a map of your Android project before they start reading the code.
Coador scans an Android repository locally and deterministically - without an LLM - and builds a structured, evidence-backed knowledge base covering the project architecture, Gradle configuration, test infrastructure, UI selectors, CI/CD, and other high-value context.
Agents query that knowledge first, then inspect only the files required for the task.
Faster context. Less repeated discovery. Lower token usage.
Coador turns an Android repository into a local knowledge base that AI agents can query instead of repeatedly re-reading and rediscovering the entire project.
The key idea behind Coador is simple: the scanning itself does not use AI or an LLM.
Coador deterministically analyzes an Android project, extracts the information most useful for development and test automation, and stores it in a structured form: architecture signals, Gradle configuration, modules and dependencies, test infrastructure, UI selectors, deep links, CI/CD, test runners, fixtures, dependency-injection overrides, and other project-level knowledge.
As a result, an AI agent does not need to rediscover a large repository from scratch for every new task - searching for the right Gradle files, reconstructing the module structure, identifying the test framework, or figuring out how UI tests are organized.
Instead, the agent can query an already prepared knowledge base and retrieve a compact answer focused only on the part of the project it currently needs.
This reduces repeated repository discovery, lowers the amount of source code that has to enter the model context, and reduces unnecessary token consumption.
Why no AI in the scanner?
Coador deliberately separates fact extraction from AI interpretation.
The repository is scanned locally by specialized deterministic detectors. They do not generate architectural descriptions and do not try to guess how the project is designed. Coador records only signals that can be supported by source files, Gradle configuration, or repository structure.
For example, instead of claiming:
This project uses Clean Architecture.
Coador may report:
domain,data, andfeaturemodules were found, together with the observed dependencies between them.
The agent receives evidence rather than a pre-generated interpretation and can reason about that evidence itself.
Whenever possible, Coador also preserves the provenance of each finding: the source file and exact source lines, a file-level observation, or a value obtained from the configured Gradle model.
How it works
Coador scans an Android repository and builds a structured local profile of the project. The analysis covers nine main areas:
| Layer | What it covers |
|---|---|
| Project overview | Repository identity, structure, applications and UI signals |
| Gradle and build | Build system, SDKs, variants, tasks and configuration |
| Architecture | DI, networking, persistence, navigation, state and concurrency |
| Modules | Module inventory, types and observed dependencies |
| Configuration | Environments, build config, resources, secrets and feature flags |
| Dependencies | Libraries and versions grouped by stack |
| Testing | Unit and instrumentation tests, runners, fixtures and test tasks |
| UI testing | Frameworks, screen objects, selectors, deep links and components |
| CI/CD | Pipelines, devices, reports, artifacts, retries and notifications |
The complete catalogue currently contains 84 detectors and is generated in docs/detectors.md.
The resulting knowledge is stored locally and can be consumed both by developers and by AI tools. Developers get a CLI and human-readable Markdown views. AI agents get an MCP interface for reading the project overview, searching for information, and retrieving individual sections with supporting evidence.
Android repository
↓
Coador scan
↓
structured local knowledge base
↓
AI agent queries only the information it needs
↓
agent opens specific source files only when required
Coador produces two kinds of findings. A signal reports an observed capability
and samples its evidence. An inventory retains collected values such as deep
links, exported components and literal UI test selectors. Inventories declare whether
they are complete, incomplete or unknown within their documented collection
boundary.
The default scan reads repository text and needs no Android toolchain. An optional
--gradle pass asks a trusted project's configured build for facts that static text
cannot resolve, such as variants declared by convention plugins. Every section says
whether its source is heuristic or gradle.
Practical example
Suppose an AI agent needs to add a new Android UI test.
Without Coador, the agent may first need to discover:
- where instrumentation tests are located;
- which test runner is used;
- whether a shared base test exists;
- how screen objects or robots are structured;
- whether the project uses Espresso, Kaspresso, or Compose testing;
- how authentication is handled in tests;
- which selectors already exist;
- whether test DI or fake dependencies are available;
- how the test is executed locally and in CI.
In a large repository, answering these questions can require inspecting dozens of files before the actual task even begins.
With Coador, much of that information has already been collected and structured. The agent can query only the test infrastructure, selectors, or CI configuration it needs and then open a small number of specific source files required for the implementation.
For example, connect an agent to the recorded Now in Android revision and ask:
You: How do I add and run an instrumentation UI test in this project?
Agent: Put the test beside the existing app tests under
app/src/androidTest. Follow their Hilt/Compose setup:@HiltAndroidTest,HiltAndroidRulefirst, thencreateAndroidComposeRule<MainActivity>(). The app selectsNiaTestRunner, which startsHiltTestApplication. Shared fakes replace production bindings through@TestInstallIn. CI runs the observed task./gradlew connectedDemoDebugAndroidTest. That task is a source-backed reference, not a complete Gradle task enumeration.
The answer is compact, but each claim remains connected to evidence that the agent or developer can inspect.
Local and verifiable
By default, Coador works locally. Its standard analysis does not require:
- an LLM;
- an embedding model;
- a vector database;
- an external API;
- Docker;
- uploading repository source code to an external service.
The generated project profile is deterministic: the same repository state and scan configuration are expected to produce the same structured result. This makes the knowledge base suitable for keeping alongside the project, updating it with the codebase, and reviewing its changes like any other generated project artifact.
profile.json is the machine-readable source of truth. Markdown layers are a human
projection of that profile. Exact source evidence contains repository-relative paths,
one-based ranges and a snapshot digest. File-level and Gradle-model findings use
their own provenance forms without fabricated line numbers.
Generated source-derived fields pass through shared sanitization for common secrets, but sanitization is not a guarantee that private output is safe to publish. Review a generated knowledge base before sharing it. The full trust boundary is documented in SECURITY.md.
Coador collects no telemetry from scanned projects. Its default scan does not access the network. Package installation and the explicitly requested Gradle pass have their own network and trust boundaries.
Not a replacement for source code
Coador does not try to eliminate source-code inspection by AI agents. Its purpose is to eliminate repeated broad repository discovery.
When an agent needs to modify a particular feature, it still opens the relevant production and test files. What it no longer needs to do is repeatedly reconstruct the overall architecture, test infrastructure, Gradle setup, and CI workflow from scratch.
Coador acts as a pre-built map of the project: compact, structured, local, and backed by source evidence.
The map has explicit limits:
- The default pass performs pattern matching rather than compilation. Missing heuristic evidence is not proof that a capability is absent.
- Convention plugins, generated build logic and dynamically created variants may require the optional Gradle pass.
coador scan --gradleexecutes the target build's configuration and should be used only with a trusted project.- Inventory completeness applies to the detector's documented source boundary, not to every value that could exist at runtime.
- The metadata freshness fast path cannot detect a content change whose path, size
and modification time were deliberately preserved; use
--forcein that case. - Coador complements symbol navigation, semantic search, build tools and device automation. It does not replace them.
Installation
Coador requires Python 3.11 or newer. Run version 0.1.0 without a permanent
installation through uvx:
uvx --from coador==0.1.0 coador --version
To use the current checkout:
git clone https://github.com/automaticqa/coador.git
cd coador
uv sync --all-extras
uv run coador --version
An editable pip installation is also supported:
python -m pip install -e '.[dev]'
CLI
The CLI exposes six commands:
| Command | Purpose |
|---|---|
scan |
Build or refresh the knowledge base |
status |
Report whether the stored knowledge is current |
layers |
List the nine knowledge layers |
overview |
Show a one-screen project map |
search |
Search sections with identifier-aware lexical ranking |
show |
Read one layer or section with its evidence |
Run the basic workflow from an Android repository:
coador scan
coador overview
coador search "where do the base URLs come from"
coador show 03_architecture di_framework
Every command supports --json. Use --kb-dir to keep generated output outside the
Android checkout. Use coador scan --force when source metadata cannot be trusted.
For a trusted project with a JDK and Gradle wrapper, coador scan --gradle adds the
configured Gradle model.
By default, generated knowledge lives here:
.coador/
.refresh.lock
manifest.json
profile.json
layers/
The scanner reads Android source and build configuration without changing them. It
writes only to the selected knowledge-base directory and never edits the target
repository's .gitignore. The selected destination is excluded from scanning and
freshness fingerprints.
The .coador/ directory is designed to be committed when a team wants the project
map reviewed and available without a local rescan. Hand-written Markdown above each
layer's <!-- GENERATED:BEGIN --> marker survives refreshes.
MCP
coador mcp (also available as coador-mcp) serves one repository over MCP stdio with six kb_* tools and matching
kb:// resources. Register an explicit Android repository so the server cannot
silently follow an unrelated working directory:
codex mcp add coador -- uvx --from coador==0.1.0 coador mcp \
--repo "/absolute/path/to/your/android/project"
codex mcp list
Open Codex in the Android project, use /mcp to verify the server, and ask a project
question. A useful first prompt is:
How should I add an instrumentation test to this project? Identify the runner, application, observed test tasks, dependency overrides, helper or robot to extend, and useful selectors. Cite the repository evidence for each answer.
Configuration can also use COADOR_REPO and COADOR_KB_DIR. See
docs/mcp.md for trusted project-scoped configuration, paths with
spaces, multiple repositories, Claude Code and other MCP clients.
Examples
Start with the local synthetic example to explore the current profile schema without a network or Android toolchain. For the pinned Now in Android walkthrough, generate the current CLI view outside the downloaded checkout:
git clone https://github.com/android/nowinandroid.git
git -C nowinandroid checkout 12f80da6518e161ed16a06a68e71fb8a873576d6
uvx --from coador==0.1.0 coador scan nowinandroid --kb-dir ../nowinandroid-coador
uvx --from coador==0.1.0 coador show 07_testing instrumentation_runner \
nowinandroid --kb-dir ../nowinandroid-coador
uvx --from coador==0.1.0 coador show 07_testing test_tasks \
nowinandroid --kb-dir ../nowinandroid-coador
The relevant output distinguishes evidence from limitations:
$ coador show 07_testing instrumentation_runner nowinandroid --kb-dir ../nowinandroid-coador
Instrumentation Runner (instrumentation_runner)
Detected: Observed: runner: androidx.test.runner.AndroidJUnitRunner, com.google.samples.apps.nowinandroid.core.testing.NiaTestRunner
source: heuristic
app/build.gradle.kts:38 testInstrumentationRunner = "com.google.samples.apps.nowinandroid.core.testing.NiaTestRunner"
limitation: Static scanning cannot resolve runner configuration supplied only by convention plugins or generated build logic
The evidence-first onboarding recipes add walkthroughs for CI instrumentation, launch targets and selectors, and Android Test Orchestrator isolation across three pinned public repositories.
Project status
Coador 0.1.0 is the first public release (2026-09-17). The package
contains 84 detectors across nine layers, a local CLI, an MCP stdio server, optional
Gradle probing, deterministic JSON/Markdown output, evidence provenance, inventory
pagination, freshness checks and recovery from damaged generated output.
The configured CI matrix targets Linux on Python 3.11–3.13 and Windows/macOS on Python 3.12. Network and real-project Gradle checks remain opt-in.
For development:
uv sync --all-extras
uv run pytest
uv run ruff check src tests
uv run ruff format --check src tests
uv run mypy
uv run python -m coador.registry --check
uv build
COADOR_INTEGRATION=1 uv run pytest -m slow additionally clones pinned public
Android repositories; the Gradle case requires a suitable Android/JDK toolchain.
Contributors can start with the
starter contribution tasks. Optional public usage
feedback follows the privacy boundaries in docs/adoption.md.
License
MIT. See LICENSE.
Coador MCP 질문
Coador MCP를 Claude Code에 추가하려면 어떻게 하나요?
터미널에서 claude mcp add coador -- uvx coador를 실행합니다. 모든 프로젝트에서 사용할 수 있게 하려면 --scope user를 추가합니다.
Coador MCP를 Cursor에 추가하려면 어떻게 하나요?
~/.cursor/mcp.json를 열고 mcpServers 아래에 서버를 추가합니다. 위 설치 섹션에 표시된 Cursor 구성을 사용합니다.
Coador는 LLM을 사용하여 저장소를 스캔하나요?
아니요, 스캔 프로세스는 LLM을 사용하지 않고 특화된 탐지기를 사용하여 로컬에서 결정론적으로 수행됩니다.
Coador는 어떤 종류의 정보를 추출하나요?
프로젝트 아키텍처, Gradle 설정, 모듈, 의존성, 테스트 인프라, UI selector 및 CI/CD 파이프라인에 관한 정보를 추출합니다.
Coador는 정적 텍스트 분석으로 해결할 수 없는 사실을 파악할 수 있나요?
네, 선택 사항인 --gradle pass를 사용하면 convention plugin에 의해 선언된 variant와 같은 사실을 신뢰할 수 있는 프로젝트의 구성된 빌드로부터 쿼리할 수 있습니다.