Android Development MCP Server
[WIP] Android Development MCP Server
A Model Context Protocol (MCP) server that provides Android development assistance following NowInAndroid best practices. This server can be used with any MCP-compatible AI tool (Claude, GPT, Gemini, etc.).
Features
Tools Available
Tool | Description |
| Quick overview of patterns and available tools |
| Full architecture documentation (Data, Domain, UI layers) |
| Jetpack Compose UI patterns |
| Module structure and dependencies |
| Build configuration and convention plugins |
| Testing approach with test doubles |
| Generate complete feature module code |
| Generate ViewModel with UiState |
| Generate offline-first repository |
| Search across all documentation |
Quick Start
Option 1: Docker (Recommended)
# Build and run with Docker Compose
docker-compose up -d
# Or build and run manually
docker build -t android-dev-mcp .
docker run -d -p 3000:3000 --name android-mcp android-dev-mcpThe server will be available at:
SSE endpoint:
http://localhost:3000/sseHealth check:
http://localhost:3000/health
Option 2: Local Development
# Install dependencies
npm install
# Build
npm run build
# Run in SSE mode (for network access)
npm start -- --sse
# Or run in stdio mode (for local CLI)
npm startConnecting AI Clients
Claude Desktop
Add to your Claude Desktop config (~/.config/claude/claude_desktop_config.json on Linux/Mac or %APPDATA%\Claude\claude_desktop_config.json on Windows):
{
"mcpServers": {
"android-dev": {
"transport": "sse",
"url": "http://localhost:3000/sse"
}
}
}Claude Code
claude mcp add android-dev --transport sse --url http://localhost:3000/sseOther MCP Clients
Configure your MCP client with:
Transport: SSE
URL:
http://localhost:3000/sse
Example Usage
Once connected, you can ask your AI assistant questions like:
"What's the recommended architecture for an Android app?"
"Generate a feature module for user-profile with package com.myapp"
"Show me the ViewModel pattern from NowInAndroid"
"How do I set up offline-first data sync?"
"Generate a repository for the Task entity"
"Search documentation for navigation"
API Endpoints
Endpoint | Method | Description |
| GET | SSE connection for MCP |
| POST | Message handling |
| GET | Health check |
Environment Variables
Variable | Default | Description |
| 3000 | Server port |
| sse | Transport mode (sse or stdio) |
| production | Node environment |
Project Structure
android-dev-mcp/
├── src/
│ └── index.ts # Main server code
├── references/ # Documentation files
│ ├── architecture.md
│ ├── compose-patterns.md
│ ├── gradle-setup.md
│ ├── modularization.md
│ └── testing.md
├── dist/ # Compiled JavaScript
├── Dockerfile
├── docker-compose.yml
├── package.json
└── tsconfig.jsonExtending the Server
Adding New Tools
Edit src/index.ts and add a new tool:
server.tool(
"my_new_tool",
"Description of what the tool does",
{
param1: {
type: "string",
description: "Parameter description",
},
},
async ({ param1 }) => ({
content: [{ type: "text", text: `Result for ${param1}` }],
})
);Adding New Documentation
Add markdown files to
references/Create a loader function in
src/index.tsRegister a new tool to expose it
License
MIT
References
NowInAndroid - Google's reference Android app
Model Context Protocol - MCP specification
Android Architecture - Official guide