androjack-mcp 1.6.0 → 1.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +101 -101
- package/build/constants.js +1 -1
- package/build/http-server.js +1 -1
- package/build/index.js +1 -1
- package/build/install.js +10 -10
- package/build/serve.js +4 -4
- package/build/server-factory.js +400 -0
- package/config/antigravity_mcp.json +1 -1
- package/config/claude_desktop_config.json +1 -1
- package/config/cursor_mcp.json +1 -1
- package/config/jetbrains_mcp.json +2 -2
- package/config/kiro_mcp.json +4 -4
- package/config/vscode_mcp.json +1 -1
- package/config/windsurf_mcp.json +1 -1
- package/manifest.json +21 -21
- package/package.json +33 -38
- package/server.json +5 -5
- package/src/cache.ts +82 -82
- package/src/constants.ts +434 -434
- package/src/http-server.ts +12 -12
- package/src/http.ts +44 -44
- package/src/index.ts +4 -4
- package/src/install.ts +10 -10
- package/src/serve.ts +9 -9
package/README.md
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
|
|
7
7
|
# 🤖 AndroJack — The Jack of All Android Trades
|
|
8
8
|
|
|
9
|
-

|
|
10
10
|
|
|
11
11
|
### 🎬 Discover AndroJack
|
|
12
12
|
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
|
|
20
20
|
[](https://www.npmjs.com/package/androjack-mcp)
|
|
21
21
|
[](https://marketplace.visualstudio.com/items?itemName=VIKAS9793.androjack-vscode)
|
|
22
|
-
[](https://github.com/VIKAS9793/androjack-mcp/stargazers)
|
|
23
23
|
[](https://nodejs.org)
|
|
24
24
|
[](https://modelcontextprotocol.io)
|
|
25
25
|
[](https://typescriptlang.org)
|
|
@@ -30,9 +30,9 @@
|
|
|
30
30
|
### 🚀 One-Click Install
|
|
31
31
|
|
|
32
32
|
[](https://marketplace.visualstudio.com/items?itemName=VIKAS9793.androjack-vscode)
|
|
33
|
-
[](https://claude.ai/integrations/install-mcp?params=eyJuYW1lIjoiYW5kcm9qYWNrIiwiY29tbWFuZCI6Im5weCIsImFyZ3MiOlsiLXkiLCJhbmRyb2phY2stbWNwQDEuNi4wIl19)
|
|
34
|
-
[](https://cursor.com/install-mcp?name=androjack&config=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsImFuZHJvamFjay1tY3BAMS42LjAiXX0=)
|
|
35
|
-
[](https://kiro.dev/launch/mcp/add?name=androjack&config=%7B%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22androjack-mcp%401.6.
|
|
33
|
+
[](https://claude.ai/integrations/install-mcp?params=eyJuYW1lIjoiYW5kcm9qYWNrIiwiY29tbWFuZCI6Im5weCIsImFyZ3MiOlsiLXkiLCJhbmRyb2phY2stbWNwQDEuNi4wIl19)
|
|
34
|
+
[](https://cursor.com/install-mcp?name=androjack&config=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsImFuZHJvamFjay1tY3BAMS42LjAiXX0=)
|
|
35
|
+
[](https://kiro.dev/launch/mcp/add?name=androjack&config=%7B%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22androjack-mcp%401.6.1%22%5D%7D)
|
|
36
36
|
[](https://www.npmjs.com/package/androjack-mcp)
|
|
37
37
|
|
|
38
38
|
**VS Code distribution:** AndroJack MCP is also live on the VS Code Marketplace as [AndroJack MCP for VS Code](https://marketplace.visualstudio.com/items?itemName=VIKAS9793.androjack-vscode). The `VS Code` badge above always reflects the currently published Marketplace version.
|
|
@@ -328,7 +328,7 @@ Scaffold { innerPadding ->
|
|
|
328
328
|
|
|
329
329
|
## 🎯 The Killer Argument
|
|
330
330
|
|
|
331
|
-
<img src="https://raw.githubusercontent.com/VIKAS9793/
|
|
331
|
+
<img src="https://raw.githubusercontent.com/VIKAS9793/androjack-mcp/main/assets/killer_argument.png" alt="The Killer Argument — AndroJack MCP" width="100%" />
|
|
332
332
|
|
|
333
333
|
<br/>
|
|
334
334
|
|
|
@@ -494,10 +494,10 @@ Each tool lists the **specific failure mode it prevents** — not just what it d
|
|
|
494
494
|
|
|
495
495
|
## 🚀 Quick Start — Zero Install Required
|
|
496
496
|
|
|
497
|
-
### Option 1 — Interactive CLI (v1.6.
|
|
497
|
+
### Option 1 — Interactive CLI (v1.6.1) ✨ Recommended
|
|
498
498
|
|
|
499
499
|
```bash
|
|
500
|
-
npx androjack-mcp@1.6.
|
|
500
|
+
npx androjack-mcp@1.6.1 install
|
|
501
501
|
```
|
|
502
502
|
|
|
503
503
|
Launches a full animated terminal wizard:
|
|
@@ -514,20 +514,20 @@ Launches a full animated terminal wizard:
|
|
|
514
514
|
### Option 2 — Targeted installs (non-interactive, safe in any environment)
|
|
515
515
|
|
|
516
516
|
```bash
|
|
517
|
-
# Auto-detect and install to all found IDEs
|
|
518
|
-
npx androjack-mcp@1.6.
|
|
519
|
-
|
|
520
|
-
# Install to one specific IDE
|
|
521
|
-
npx androjack-mcp@1.6.
|
|
522
|
-
npx androjack-mcp@1.6.
|
|
523
|
-
npx androjack-mcp@1.6.
|
|
524
|
-
npx androjack-mcp@1.6.
|
|
525
|
-
npx androjack-mcp@1.6.
|
|
526
|
-
npx androjack-mcp@1.6.
|
|
527
|
-
npx androjack-mcp@1.6.
|
|
528
|
-
|
|
529
|
-
# Check what's installed where
|
|
530
|
-
npx androjack-mcp@1.6.
|
|
517
|
+
# Auto-detect and install to all found IDEs
|
|
518
|
+
npx androjack-mcp@1.6.1 install --auto
|
|
519
|
+
|
|
520
|
+
# Install to one specific IDE
|
|
521
|
+
npx androjack-mcp@1.6.1 install --ide=cursor
|
|
522
|
+
npx androjack-mcp@1.6.1 install --ide=claude
|
|
523
|
+
npx androjack-mcp@1.6.1 install --ide=vscode
|
|
524
|
+
npx androjack-mcp@1.6.1 install --ide=windsurf
|
|
525
|
+
npx androjack-mcp@1.6.1 install --ide=jetbrains
|
|
526
|
+
npx androjack-mcp@1.6.1 install --ide=antigravity
|
|
527
|
+
npx androjack-mcp@1.6.1 install --ide=kiro
|
|
528
|
+
|
|
529
|
+
# Check what's installed where
|
|
530
|
+
npx androjack-mcp@1.6.1 install --list
|
|
531
531
|
```
|
|
532
532
|
|
|
533
533
|
### Option 3 — From your IDE's NPM Scripts panel (one click)
|
|
@@ -550,7 +550,7 @@ install-mcp:list ← see detection status
|
|
|
550
550
|
### Option 4 — Test all tools (no IDE needed)
|
|
551
551
|
|
|
552
552
|
```bash
|
|
553
|
-
npx @modelcontextprotocol/inspector npx androjack-mcp@1.6.
|
|
553
|
+
npx @modelcontextprotocol/inspector npx androjack-mcp@1.6.1
|
|
554
554
|
```
|
|
555
555
|
|
|
556
556
|
> **Requires:** Node.js 18+. Nothing else.
|
|
@@ -577,7 +577,7 @@ npx @modelcontextprotocol/inspector npx androjack-mcp@1.6.0
|
|
|
577
577
|
|
|
578
578
|
### AWS Kiro
|
|
579
579
|
|
|
580
|
-
[](https://kiro.dev/launch/mcp/add?name=androjack&config=%7B%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22androjack-mcp%401.6.
|
|
580
|
+
[](https://kiro.dev/launch/mcp/add?name=androjack&config=%7B%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22androjack-mcp%401.6.1%22%5D%2C%22disabled%22%3Afalse%2C%22autoApprove%22%3A%5B%5D%7D)
|
|
581
581
|
|
|
582
582
|
---
|
|
583
583
|
|
|
@@ -591,7 +591,7 @@ npx @modelcontextprotocol/inspector npx androjack-mcp@1.6.0
|
|
|
591
591
|
"mcpServers": {
|
|
592
592
|
"androjack": {
|
|
593
593
|
"command": "npx",
|
|
594
|
-
"args": ["-y", "androjack-mcp@1.6.
|
|
594
|
+
"args": ["-y", "androjack-mcp@1.6.1"],
|
|
595
595
|
"env": {},
|
|
596
596
|
"autoApprove": [],
|
|
597
597
|
"disabled": false
|
|
@@ -611,7 +611,7 @@ npx @modelcontextprotocol/inspector npx androjack-mcp@1.6.0
|
|
|
611
611
|
"androjack": {
|
|
612
612
|
"type": "stdio",
|
|
613
613
|
"command": "npx",
|
|
614
|
-
"args": ["-y", "androjack-mcp@1.6.
|
|
614
|
+
"args": ["-y", "androjack-mcp@1.6.1"]
|
|
615
615
|
}
|
|
616
616
|
}
|
|
617
617
|
}
|
|
@@ -627,7 +627,7 @@ npx @modelcontextprotocol/inspector npx androjack-mcp@1.6.0
|
|
|
627
627
|
"mcpServers": {
|
|
628
628
|
"androjack": {
|
|
629
629
|
"command": "npx",
|
|
630
|
-
"args": ["-y", "androjack-mcp@1.6.
|
|
630
|
+
"args": ["-y", "androjack-mcp@1.6.1"]
|
|
631
631
|
}
|
|
632
632
|
}
|
|
633
633
|
}
|
|
@@ -647,7 +647,7 @@ UI path: Agent pane → `...` → **MCP Servers** → **Manage MCP Servers** →
|
|
|
647
647
|
"mcpServers": {
|
|
648
648
|
"androjack": {
|
|
649
649
|
"command": "npx",
|
|
650
|
-
"args": ["-y", "androjack-mcp@1.6.
|
|
650
|
+
"args": ["-y", "androjack-mcp@1.6.1"],
|
|
651
651
|
"disabled": false,
|
|
652
652
|
"autoApprove": []
|
|
653
653
|
}
|
|
@@ -656,15 +656,15 @@ UI path: Agent pane → `...` → **MCP Servers** → **Manage MCP Servers** →
|
|
|
656
656
|
```
|
|
657
657
|
|
|
658
658
|
Place at `.kiro/settings/mcp.json` (project) or `~/.kiro/settings/mcp.json` (global).
|
|
659
|
-
Or use the CLI: `kiro-cli mcp add --name androjack --command npx --args '-y androjack-mcp@1.6.
|
|
659
|
+
Or use the CLI: `kiro-cli mcp add --name androjack --command npx --args '-y androjack-mcp@1.6.1' --scope workspace`
|
|
660
660
|
|
|
661
661
|
</details>
|
|
662
662
|
|
|
663
663
|
---
|
|
664
664
|
|
|
665
|
-
## 🧪 Examples
|
|
666
|
-
|
|
667
|
-
### Example Session
|
|
665
|
+
## 🧪 Examples
|
|
666
|
+
|
|
667
|
+
### Example Session
|
|
668
668
|
|
|
669
669
|
```
|
|
670
670
|
You: Build a login screen with ViewModel and Jetpack Compose
|
|
@@ -711,9 +711,9 @@ In February 2026, Google launched the Developer Knowledge MCP in public preview
|
|
|
711
711
|
| **Mechanism** | Context Retrieval | Context Enforcement |
|
|
712
712
|
| **Scope** | Generalist — Firebase, Cloud, Android, Maps, and more | Android specialist — 21 tools, one domain, zero drift |
|
|
713
713
|
| **Tools** | 3 retrieval tools (`search_documents`, `get_document`, `batch_get_documents`) | 21 specialized tools — live version checks, deprecation registry, Gradle lookups, API level validation, loop-back code validator |
|
|
714
|
-
| **Setup** | Google Cloud project + API key + `gcloud` CLI required | `npx androjack-mcp@1.6.
|
|
714
|
+
| **Setup** | Google Cloud project + API key + `gcloud` CLI required | `npx androjack-mcp@1.6.1` — zero auth, zero cloud project |
|
|
715
715
|
| **Enforcement** | Passive — AI decides when to retrieve | Active — tool descriptions mandate calls before every task type |
|
|
716
|
-
| **Status** | Public preview (v1alpha / experimental) | Stable (v1.6.
|
|
716
|
+
| **Status** | Public preview (v1alpha / experimental) | Stable (v1.6.1) |
|
|
717
717
|
|
|
718
718
|
**Why you need both in production:**
|
|
719
719
|
Google's tool cures AI "ignorance" by providing official text. However, **AndroJack cures AI "bad habits."** If you ask an AI to refactor an app, Google's tool will provide the new docs. But **AndroJack** is the tool that actively blocks the AI from writing legacy XML, enforces Jetpack Compose, checks Gradle versions against Maven, and ensures your `minSdk` doesn't violate Android 16's Play Store mandate.
|
|
@@ -722,7 +722,7 @@ Google tells the AI the rules; **AndroJack forces the AI to follow them.**
|
|
|
722
722
|
|
|
723
723
|
---
|
|
724
724
|
|
|
725
|
-
## 🔒 Security & Privacy
|
|
725
|
+
## 🔒 Security & Privacy
|
|
726
726
|
|
|
727
727
|
| Property | Detail |
|
|
728
728
|
|----------|--------|
|
|
@@ -730,24 +730,24 @@ Google tells the AI the rules; **AndroJack forces the AI to follow them.**
|
|
|
730
730
|
| **Rate limiting** | 30 requests / domain / minute with exponential backoff on 429/5xx |
|
|
731
731
|
| **No credentials** | Zero API keys, zero auth tokens required |
|
|
732
732
|
| **No data stored** | Nothing persisted beyond process lifetime |
|
|
733
|
-
| **Transparent agent** | User-Agent: `AndroJack-MCP/1.6.
|
|
733
|
+
| **Transparent agent** | User-Agent: `AndroJack-MCP/1.6.1 (documentation-grounding bot; not-a-scraper)` |
|
|
734
734
|
| **Read-only** | All 21 tools are annotated `readOnlyHint: true` — no writes, no side effects |
|
|
735
735
|
| **Input bounds** | All inputs length-capped and sanitized before use |
|
|
736
|
-
| **Body size cap** | HTTP responses capped at 4 MB — no OOM risk on large documentation pages |
|
|
737
|
-
|
|
738
|
-
---
|
|
739
|
-
|
|
740
|
-
## 🛡️ Privacy Policy
|
|
741
|
-
|
|
742
|
-
- AndroJack runs locally in your MCP client or terminal session.
|
|
743
|
-
- It does not require user accounts, API keys, or cloud credentials.
|
|
744
|
-
- It does not persist prompts, source code, or tool outputs beyond the current process lifetime.
|
|
745
|
-
- It only fetches from allowlisted documentation and artifact domains needed to ground answers.
|
|
746
|
-
- If you run the optional HTTP mode yourself, you are responsible for your own network exposure and access controls.
|
|
747
|
-
|
|
748
|
-
---
|
|
749
|
-
|
|
750
|
-
## 🗺️ Knowledge Sources
|
|
736
|
+
| **Body size cap** | HTTP responses capped at 4 MB — no OOM risk on large documentation pages |
|
|
737
|
+
|
|
738
|
+
---
|
|
739
|
+
|
|
740
|
+
## 🛡️ Privacy Policy
|
|
741
|
+
|
|
742
|
+
- AndroJack runs locally in your MCP client or terminal session.
|
|
743
|
+
- It does not require user accounts, API keys, or cloud credentials.
|
|
744
|
+
- It does not persist prompts, source code, or tool outputs beyond the current process lifetime.
|
|
745
|
+
- It only fetches from allowlisted documentation and artifact domains needed to ground answers.
|
|
746
|
+
- If you run the optional HTTP mode yourself, you are responsible for your own network exposure and access controls.
|
|
747
|
+
|
|
748
|
+
---
|
|
749
|
+
|
|
750
|
+
## 🗺️ Knowledge Sources
|
|
751
751
|
|
|
752
752
|
| Source | What It Covers |
|
|
753
753
|
|--------|---------------|
|
|
@@ -761,7 +761,7 @@ Google tells the AI the rules; **AndroJack forces the AI to follow them.**
|
|
|
761
761
|
|
|
762
762
|
---
|
|
763
763
|
|
|
764
|
-
## 🏗️ Architecture
|
|
764
|
+
## 🏗️ Architecture
|
|
765
765
|
|
|
766
766
|
```
|
|
767
767
|
┌─────────────────────────────────────────────────────────────┐
|
|
@@ -789,24 +789,24 @@ Google tells the AI the rules; **AndroJack forces the AI to follow them.**
|
|
|
789
789
|
▼ ▼ ▼
|
|
790
790
|
developer.android.com kotlinlang.org Google Maven
|
|
791
791
|
issuetracker.google source.android Maven Central
|
|
792
|
-
```
|
|
793
|
-
|
|
794
|
-
---
|
|
795
|
-
|
|
796
|
-
## 🧱 Infrastructure
|
|
797
|
-
|
|
798
|
-
- **Primary transport:** stdio via the `androjack-mcp` npm package for local MCP clients.
|
|
799
|
-
- **Optional hosted transport:** Streamable HTTP via `node build/index.js --http` for controlled environments.
|
|
800
|
-
- **Runtime model:** stateless tool execution with in-process rate limiting and shared LRU caching.
|
|
801
|
-
- **Source of truth:** official Android/Kotlin docs, Google issue tracker, Google Maven, and Maven Central.
|
|
802
|
-
- **Release channels:** npm for the MCP server, VS Code Marketplace for the thin wrapper that launches the pinned npm package.
|
|
803
|
-
|
|
804
|
-
---
|
|
805
|
-
|
|
806
|
-
## 🧑💻 Local Development
|
|
792
|
+
```
|
|
793
|
+
|
|
794
|
+
---
|
|
795
|
+
|
|
796
|
+
## 🧱 Infrastructure
|
|
797
|
+
|
|
798
|
+
- **Primary transport:** stdio via the `androjack-mcp` npm package for local MCP clients.
|
|
799
|
+
- **Optional hosted transport:** Streamable HTTP via `node build/index.js --http` for controlled environments.
|
|
800
|
+
- **Runtime model:** stateless tool execution with in-process rate limiting and shared LRU caching.
|
|
801
|
+
- **Source of truth:** official Android/Kotlin docs, Google issue tracker, Google Maven, and Maven Central.
|
|
802
|
+
- **Release channels:** npm for the MCP server, VS Code Marketplace for the thin wrapper that launches the pinned npm package.
|
|
803
|
+
|
|
804
|
+
---
|
|
805
|
+
|
|
806
|
+
## 🧑💻 Local Development
|
|
807
807
|
|
|
808
808
|
```bash
|
|
809
|
-
git clone https://github.com/VIKAS9793/
|
|
809
|
+
git clone https://github.com/VIKAS9793/androjack-mcp.git
|
|
810
810
|
cd androjack-mcp
|
|
811
811
|
npm install
|
|
812
812
|
npm run build # compiles TypeScript → build/
|
|
@@ -814,38 +814,38 @@ npm run inspector # opens MCP Inspector UI
|
|
|
814
814
|
node build/index.js # run MCP server directly
|
|
815
815
|
npm run install-mcp # interactive installer (needs real terminal)
|
|
816
816
|
npm run install-mcp:auto # non-interactive auto-install
|
|
817
|
-
npm run install-mcp:list # check IDE detection status
|
|
818
|
-
```
|
|
819
|
-
|
|
820
|
-
---
|
|
821
|
-
|
|
822
|
-
## ❓ FAQ
|
|
823
|
-
|
|
824
|
-
**Why does the VS Code extension need its own release if the MCP code lives on `main`?**
|
|
825
|
-
Because the Marketplace wrapper is a separate package. For `v1.6.
|
|
826
|
-
|
|
827
|
-
**Why pin `npx -y androjack-mcp@1.6.
|
|
828
|
-
Pinning guarantees reproducible installs, clearer support, and predictable Anthropic or Marketplace review behavior. It avoids stale local `npx` cache surprises.
|
|
829
|
-
|
|
830
|
-
**Does AndroJack send my project files to a hosted backend?**
|
|
831
|
-
No. It runs locally and only makes outbound requests to allowlisted documentation and artifact sources needed to answer the user’s query.
|
|
832
|
-
|
|
833
|
-
**What should I update first for future releases?**
|
|
834
|
-
Publish the MCP server to npm first, confirm the pinned version is live, then update and upload the VS Code wrapper to point at that exact version.
|
|
835
|
-
|
|
836
|
-
---
|
|
837
|
-
|
|
838
|
-
## 📋 Changelog
|
|
839
|
-
|
|
840
|
-
### v1.6.
|
|
841
|
-
|
|
842
|
-
- **New:** Exact `@1.6.
|
|
843
|
-
- **New:** Shared fetch cache wiring for both `secureFetch()` and `secureFetchJson()` so repeated documentation and metadata lookups stop consuming rate-limit budget.
|
|
844
|
-
- **New:** Official MCP registry metadata with `server.json` plus package-level `mcpName`.
|
|
845
|
-
- **Fix:** User-Agent now reports the correct released version: `AndroJack-MCP/1.6.
|
|
846
|
-
- **Docs:** Added explicit privacy policy, infrastructure, examples, and FAQ sections for release reviewers and end users.
|
|
847
|
-
|
|
848
|
-
### v1.5.1 — Level 3 Loop-Back Validator + Interactive CLI Installer
|
|
817
|
+
npm run install-mcp:list # check IDE detection status
|
|
818
|
+
```
|
|
819
|
+
|
|
820
|
+
---
|
|
821
|
+
|
|
822
|
+
## ❓ FAQ
|
|
823
|
+
|
|
824
|
+
**Why does the VS Code extension need its own release if the MCP code lives on `main`?**
|
|
825
|
+
Because the Marketplace wrapper is a separate package. For `v1.6.1`, it is pinned to `androjack-mcp@1.6.1`, so the wrapper must be versioned and uploaded separately.
|
|
826
|
+
|
|
827
|
+
**Why pin `npx -y androjack-mcp@1.6.1` instead of using the floating latest package?**
|
|
828
|
+
Pinning guarantees reproducible installs, clearer support, and predictable Anthropic or Marketplace review behavior. It avoids stale local `npx` cache surprises.
|
|
829
|
+
|
|
830
|
+
**Does AndroJack send my project files to a hosted backend?**
|
|
831
|
+
No. It runs locally and only makes outbound requests to allowlisted documentation and artifact sources needed to answer the user’s query.
|
|
832
|
+
|
|
833
|
+
**What should I update first for future releases?**
|
|
834
|
+
Publish the MCP server to npm first, confirm the pinned version is live, then update and upload the VS Code wrapper to point at that exact version.
|
|
835
|
+
|
|
836
|
+
---
|
|
837
|
+
|
|
838
|
+
## 📋 Changelog
|
|
839
|
+
|
|
840
|
+
### v1.6.1 — Pinned Distribution, Shared Cache Wiring, and Registry Metadata
|
|
841
|
+
|
|
842
|
+
- **New:** Exact `@1.6.1` pinning across shipped config examples, installer output, one-click install links, and the VS Code Marketplace wrapper release flow.
|
|
843
|
+
- **New:** Shared fetch cache wiring for both `secureFetch()` and `secureFetchJson()` so repeated documentation and metadata lookups stop consuming rate-limit budget.
|
|
844
|
+
- **New:** Official MCP registry metadata with `server.json` plus package-level `mcpName`.
|
|
845
|
+
- **Fix:** User-Agent now reports the correct released version: `AndroJack-MCP/1.6.1`.
|
|
846
|
+
- **Docs:** Added explicit privacy policy, infrastructure, examples, and FAQ sections for release reviewers and end users.
|
|
847
|
+
|
|
848
|
+
### v1.5.1 — Level 3 Loop-Back Validator + Interactive CLI Installer
|
|
849
849
|
|
|
850
850
|
- **New:** `android_code_validator` (Tool 21) — Level 3 loop-back validation gate. 24 rules across Kotlin, XML, and Gradle. Validates AI-generated code before it reaches the user. Returns PASS/WARN/FAIL verdict with line-level violations, replacements, and official doc URLs. Zero new dependencies — pure TypeScript.
|
|
851
851
|
- **New:** Grounding Gate upgraded to Level 3: Step 8 mandates `android_code_validator` after every code generation. Negative constraints section lists explicit prohibitions by API level (Android 16 targets, new Compose projects, universal rules).
|
|
@@ -860,7 +860,7 @@ Publish the MCP server to npm first, confirm the pinned version is live, then up
|
|
|
860
860
|
|
|
861
861
|
### v1.3.4 and earlier
|
|
862
862
|
|
|
863
|
-
See [GitHub releases](https://github.com/VIKAS9793/
|
|
863
|
+
See [GitHub releases](https://github.com/VIKAS9793/androjack-mcp/releases) for prior history.
|
|
864
864
|
|
|
865
865
|
---
|
|
866
866
|
|
package/build/constants.js
CHANGED
|
@@ -29,7 +29,7 @@ export const GOOGLE_MAVEN_URL = "https://dl.google.com/dl/android/maven2";
|
|
|
29
29
|
export const JETPACK_BOM_URL = "https://developer.android.com/jetpack/compose/setup";
|
|
30
30
|
// ── HTTP Client Config ──────────────────────────────────────────────────────
|
|
31
31
|
export const HTTP_TIMEOUT_MS = 12_000;
|
|
32
|
-
export const USER_AGENT = "AndroJack-MCP/1.6.
|
|
32
|
+
export const USER_AGENT = "AndroJack-MCP/1.6.1 (Android AI Assistant; +https://androjack-web.netlify.app)";
|
|
33
33
|
export const COMPONENT_REGISTRY = {
|
|
34
34
|
// ── Deprecated concurrency ──────────────────────────────────────────────
|
|
35
35
|
AsyncTask: {
|
package/build/http-server.js
CHANGED
|
@@ -45,7 +45,7 @@ export async function startHttpServer(server) {
|
|
|
45
45
|
res.writeHead(200, { "Content-Type": "application/json" });
|
|
46
46
|
res.end(JSON.stringify({
|
|
47
47
|
name: "androjack-mcp",
|
|
48
|
-
version: "1.6.
|
|
48
|
+
version: "1.6.1",
|
|
49
49
|
description: "Documentation-grounded Android engineering MCP server. " +
|
|
50
50
|
"Forces AI tools to verify official docs before generating Android/Kotlin code.",
|
|
51
51
|
mcp_endpoint: `http://${host}:${port}${MCP_PATH}`,
|
package/build/index.js
CHANGED
|
@@ -39,7 +39,7 @@ import { androidCodeValidator } from "./tools/validator.js";
|
|
|
39
39
|
// ── Server Instantiation ────────────────────────────────────────────────────
|
|
40
40
|
const server = new McpServer({
|
|
41
41
|
name: "androjack-mcp",
|
|
42
|
-
version: "1.6.
|
|
42
|
+
version: "1.6.1",
|
|
43
43
|
});
|
|
44
44
|
// ── Tool 1: Official Android Documentation Search ──────────────────────────
|
|
45
45
|
server.registerTool("android_official_search", {
|
package/build/install.js
CHANGED
|
@@ -6,10 +6,10 @@
|
|
|
6
6
|
* Supports both automated (--auto) and guided interactive installation.
|
|
7
7
|
*
|
|
8
8
|
* Usage:
|
|
9
|
-
* npx androjack-mcp@1.6.
|
|
10
|
-
* npx androjack-mcp@1.6.
|
|
11
|
-
* npx androjack-mcp@1.6.
|
|
12
|
-
* npx androjack-mcp@1.6.
|
|
9
|
+
* npx androjack-mcp@1.6.1 install → interactive guided mode
|
|
10
|
+
* npx androjack-mcp@1.6.1 install --auto → auto-detect and install to all found IDEs
|
|
11
|
+
* npx androjack-mcp@1.6.1 install --ide cursor → target a specific IDE
|
|
12
|
+
* npx androjack-mcp@1.6.1 install --list → list all supported IDEs and their status
|
|
13
13
|
*/
|
|
14
14
|
import * as fs from "fs";
|
|
15
15
|
import * as path from "path";
|
|
@@ -21,7 +21,7 @@ import * as clack from "@clack/prompts";
|
|
|
21
21
|
// ── AndroJack server config block (reused for all IDEs) ───────────────────
|
|
22
22
|
const SERVER_CONFIG_STANDARD = {
|
|
23
23
|
command: "npx",
|
|
24
|
-
args: ["-y", "androjack-mcp@1.6.
|
|
24
|
+
args: ["-y", "androjack-mcp@1.6.1"],
|
|
25
25
|
env: {},
|
|
26
26
|
autoApprove: [],
|
|
27
27
|
disabled: false,
|
|
@@ -29,7 +29,7 @@ const SERVER_CONFIG_STANDARD = {
|
|
|
29
29
|
const SERVER_CONFIG_VSCODE = {
|
|
30
30
|
type: "stdio",
|
|
31
31
|
command: "npx",
|
|
32
|
-
args: ["-y", "androjack-mcp@1.6.
|
|
32
|
+
args: ["-y", "androjack-mcp@1.6.1"],
|
|
33
33
|
};
|
|
34
34
|
// ── IDE Definitions ─────────────────────────────────────────────────────────
|
|
35
35
|
const HOME = os.homedir();
|
|
@@ -104,7 +104,7 @@ function getConfigPaths(platform) {
|
|
|
104
104
|
format: "standard",
|
|
105
105
|
oneClickUrl: (() => {
|
|
106
106
|
const name = encodeURIComponent("androjack");
|
|
107
|
-
const config = encodeURIComponent(JSON.stringify({ command: "npx", args: ["-y", "androjack-mcp@1.6.
|
|
107
|
+
const config = encodeURIComponent(JSON.stringify({ command: "npx", args: ["-y", "androjack-mcp@1.6.1"], disabled: false, autoApprove: [] }));
|
|
108
108
|
return `https://kiro.dev/launch/mcp/add?name=${name}&config=${config}`;
|
|
109
109
|
})(),
|
|
110
110
|
notes: "Or use the one-click Kiro install link in the README.",
|
|
@@ -386,7 +386,7 @@ async function main() {
|
|
|
386
386
|
chalk.dim(" Falling back to --auto mode.\n"));
|
|
387
387
|
console.log(chalk.dim(" Tip: to get the full arrow-key UI, run this in an integrated terminal\n" +
|
|
388
388
|
" (VS Code · Cursor · Android Studio · IntelliJ · Windows Terminal).\n" +
|
|
389
|
-
" Or run: " + chalk.white("npx androjack-mcp@1.6.
|
|
389
|
+
" Or run: " + chalk.white("npx androjack-mcp@1.6.1 install --auto") + chalk.dim(" to skip the menu.\n")));
|
|
390
390
|
const detected = detectInstalledIdes(targets);
|
|
391
391
|
if (detected.length === 0) {
|
|
392
392
|
console.log(chalk.yellow(" No IDEs detected. Exiting."));
|
|
@@ -503,7 +503,7 @@ async function main() {
|
|
|
503
503
|
const fail = results.filter((r) => !r.success).length;
|
|
504
504
|
clack.outro(chalk.bold.green(`✓ ${ok} installed`) +
|
|
505
505
|
(fail > 0 ? chalk.red(` ✗ ${fail} failed`) : "") +
|
|
506
|
-
chalk.dim(" Run npx androjack-mcp@1.6.
|
|
506
|
+
chalk.dim(" Run npx androjack-mcp@1.6.1 install --list to verify."));
|
|
507
507
|
return;
|
|
508
508
|
}
|
|
509
509
|
// ── Pick specific IDEs ───────────────────────────────────────────────────
|
|
@@ -571,7 +571,7 @@ async function main() {
|
|
|
571
571
|
const fail = results.filter((r) => !r.success).length;
|
|
572
572
|
clack.outro(chalk.bold.green(`✓ ${ok} installed`) +
|
|
573
573
|
(fail > 0 ? chalk.red(` ✗ ${fail} failed`) : "") +
|
|
574
|
-
chalk.dim(" Run npx androjack-mcp@1.6.
|
|
574
|
+
chalk.dim(" Run npx androjack-mcp@1.6.1 install --list to verify."));
|
|
575
575
|
return;
|
|
576
576
|
}
|
|
577
577
|
// ── Manual snippet ────────────────────────────────────────────────────────
|
package/build/serve.js
CHANGED
|
@@ -6,9 +6,9 @@
|
|
|
6
6
|
* httpUrl-based MCP client.
|
|
7
7
|
*
|
|
8
8
|
* Usage:
|
|
9
|
-
* npx androjack-mcp@1.6.
|
|
10
|
-
* npx androjack-mcp@1.6.
|
|
11
|
-
* npx androjack-mcp@1.6.
|
|
9
|
+
* npx androjack-mcp@1.6.1 serve # localhost:3000
|
|
10
|
+
* npx androjack-mcp@1.6.1 serve --port 8080 # custom port
|
|
11
|
+
* npx androjack-mcp@1.6.1 serve --host 0.0.0.0 # expose on LAN (add your own auth)
|
|
12
12
|
*
|
|
13
13
|
* Android Studio setup:
|
|
14
14
|
* File → Settings → Tools → AI → MCP Servers → Enable MCP Servers
|
|
@@ -113,7 +113,7 @@ function printBanner(host, port, noCache) {
|
|
|
113
113
|
function buildServer() {
|
|
114
114
|
const server = new McpServer({
|
|
115
115
|
name: "androjack-mcp",
|
|
116
|
-
version: "1.6.
|
|
116
|
+
version: "1.6.1",
|
|
117
117
|
});
|
|
118
118
|
// Tool 1
|
|
119
119
|
server.registerTool("android_official_search", {
|