AppCreator24 – Android App & APK Builder
Server Details
AI app builder and APK maker for Android. Create and edit apps without coding.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 1 tool
Only one tool exists, so there is no possibility of selecting the wrong tool. The tool internally distinguishes creation and editing via the previous_id parameter, which is clear from the description.
With a single tool named GenerateApp, there is no inconsistency to evaluate. The name is clear and follows a VerbNoun pattern, though no broader pattern exists to compare against.
One tool is thin for an app builder that supports numerous content types and logically requires separate operations for retrieval, deletion, or listing. While the tool is monolithic and handles both creation and editing, the count is borderline under-scoped.
The tool covers creation and full-replacement editing, but there is no configuration-retrieval tool, no partial update, no delete, and no listing. The inability to fetch an app's current structure makes reliable editing difficult and will likely cause agent failures.
Available Tools
1 toolGenerateAppCreate or edit Android apps and build APKsADestructiveInspect
AppCreator24 is an AI app builder and APK maker for Android. Creates Android apps and builds APKs, returning download and editor links. Also replaces the sections of an app previously created through this service. Supports up to six sections: webpages/PDFs, HTML content, quizzes, audio, video, user video sharing, chat, user lists, RSS feeds, forums and games. Produces an initial configurable app structure, not arbitrary Android source code. Creation in this flow does not require an AppCreator24 account.
Inputs: six general string fields plus matching type_N/title_N/info_N fields for section slots 1-6. Each used slot has a nonblank title. Unused slots have all three fields absent. Content formats and length limits are documented in the parameter schemas. Resource URLs refer to existing content. The server does not search the web or verify resource availability.
Creation: previous_id is "0". A new app and initial icon are prepared and the app enters a compilation queue.
Editing: previous_id is the complete id returned by an earlier successful call. The payload represents the entire final app structure, including unchanged sections; omitted sections are removed. There is no partial-update mode or configuration-retrieval tool. Editing updates the configuration but does not change the actual app name or regenerate its icon. Additional customization, image galleries and advanced settings are available in the AppCreator24 web editor.
Success returns structuredContent with id, download_url and edit_url. The id includes an app-management code used for subsequent edits; edit links also contain this code. A download link is not a compilation-completion signal. The service does not submit apps to Google Play or guarantee store approval.
Failures return isError=true with an explanatory text. A validation rejection occurs before a backend request. Backend failures, timeouts and unexpected responses can leave the operation's outcome unknown. Creation and editing are not idempotent; another call can create a duplicate app or repeat changes. Some responses direct app management to the web editor.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | App name, maximum 15 characters. Sets the actual app name on creation. During editing this field updates the welcome title but not the actual app name. | |
| theme | Yes | Theme of the app. Possible values: white, black, blue, red, green, orange. | |
| info_1 | No | Section 1 content. Content format depends on type: url = webpage or direct PDF URL; video = YouTube video, direct video file or stream URL; audio = direct audio file/stream URL, not a webpage; rss = direct RSS XML URL, not Atom (maximum one RSS section per app); html = complete <html>...</html> document containing an img element; quiz = 4-6 question;correct_answer;wrong_answer_1;wrong_answer_2;wrong_answer_3 blocks joined by |, with no ; or | within fields (answers are shuffled by the server); forum = 2-6 nonblank category names joined by @, with no @ within names; chat/users-videos/users-finder = empty string; game = basketball, soccer, tennis, shooter, cars, cards, airplanes, pinball, puzzle, golf, martial arts, cricket, boats, christmas, education, skiing or skill. Maximum 4096 characters for the entire string, including HTML markup. | |
| info_2 | No | Section 2 content. Content format depends on type: url = webpage or direct PDF URL; video = YouTube video, direct video file or stream URL; audio = direct audio file/stream URL, not a webpage; rss = direct RSS XML URL, not Atom (maximum one RSS section per app); html = complete <html>...</html> document containing an img element; quiz = 4-6 question;correct_answer;wrong_answer_1;wrong_answer_2;wrong_answer_3 blocks joined by |, with no ; or | within fields (answers are shuffled by the server); forum = 2-6 nonblank category names joined by @, with no @ within names; chat/users-videos/users-finder = empty string; game = basketball, soccer, tennis, shooter, cars, cards, airplanes, pinball, puzzle, golf, martial arts, cricket, boats, christmas, education, skiing or skill. Maximum 4096 characters for the entire string, including HTML markup. | |
| info_3 | No | Section 3 content. Content format depends on type: url = webpage or direct PDF URL; video = YouTube video, direct video file or stream URL; audio = direct audio file/stream URL, not a webpage; rss = direct RSS XML URL, not Atom (maximum one RSS section per app); html = complete <html>...</html> document containing an img element; quiz = 4-6 question;correct_answer;wrong_answer_1;wrong_answer_2;wrong_answer_3 blocks joined by |, with no ; or | within fields (answers are shuffled by the server); forum = 2-6 nonblank category names joined by @, with no @ within names; chat/users-videos/users-finder = empty string; game = basketball, soccer, tennis, shooter, cars, cards, airplanes, pinball, puzzle, golf, martial arts, cricket, boats, christmas, education, skiing or skill. Maximum 4096 characters for the entire string, including HTML markup. | |
| info_4 | No | Section 4 content. Content format depends on type: url = webpage or direct PDF URL; video = YouTube video, direct video file or stream URL; audio = direct audio file/stream URL, not a webpage; rss = direct RSS XML URL, not Atom (maximum one RSS section per app); html = complete <html>...</html> document containing an img element; quiz = 4-6 question;correct_answer;wrong_answer_1;wrong_answer_2;wrong_answer_3 blocks joined by |, with no ; or | within fields (answers are shuffled by the server); forum = 2-6 nonblank category names joined by @, with no @ within names; chat/users-videos/users-finder = empty string; game = basketball, soccer, tennis, shooter, cars, cards, airplanes, pinball, puzzle, golf, martial arts, cricket, boats, christmas, education, skiing or skill. Maximum 4096 characters for the entire string, including HTML markup. | |
| info_5 | No | Section 5 content. Content format depends on type: url = webpage or direct PDF URL; video = YouTube video, direct video file or stream URL; audio = direct audio file/stream URL, not a webpage; rss = direct RSS XML URL, not Atom (maximum one RSS section per app); html = complete <html>...</html> document containing an img element; quiz = 4-6 question;correct_answer;wrong_answer_1;wrong_answer_2;wrong_answer_3 blocks joined by |, with no ; or | within fields (answers are shuffled by the server); forum = 2-6 nonblank category names joined by @, with no @ within names; chat/users-videos/users-finder = empty string; game = basketball, soccer, tennis, shooter, cars, cards, airplanes, pinball, puzzle, golf, martial arts, cricket, boats, christmas, education, skiing or skill. Maximum 4096 characters for the entire string, including HTML markup. | |
| info_6 | No | Section 6 content. Content format depends on type: url = webpage or direct PDF URL; video = YouTube video, direct video file or stream URL; audio = direct audio file/stream URL, not a webpage; rss = direct RSS XML URL, not Atom (maximum one RSS section per app); html = complete <html>...</html> document containing an img element; quiz = 4-6 question;correct_answer;wrong_answer_1;wrong_answer_2;wrong_answer_3 blocks joined by |, with no ; or | within fields (answers are shuffled by the server); forum = 2-6 nonblank category names joined by @, with no @ within names; chat/users-videos/users-finder = empty string; game = basketball, soccer, tennis, shooter, cars, cards, airplanes, pinball, puzzle, golf, martial arts, cricket, boats, christmas, education, skiing or skill. Maximum 4096 characters for the entire string, including HTML markup. | |
| type_1 | No | Type of section 1. PDF content uses url; card games use game. An unused slot has no type/title/info fields. An empty type string is invalid. | |
| type_2 | No | Type of section 2. PDF content uses url; card games use game. An unused slot has no type/title/info fields. An empty type string is invalid. | |
| type_3 | No | Type of section 3. PDF content uses url; card games use game. An unused slot has no type/title/info fields. An empty type string is invalid. | |
| type_4 | No | Type of section 4. PDF content uses url; card games use game. An unused slot has no type/title/info fields. An empty type string is invalid. | |
| type_5 | No | Type of section 5. PDF content uses url; card games use game. An unused slot has no type/title/info fields. An empty type string is invalid. | |
| type_6 | No | Type of section 6. PDF content uses url; card games use game. An unused slot has no type/title/info fields. An empty type string is invalid. | |
| title_1 | No | Display title of section 1, maximum 30 characters. Nonblank for a used section; absent for an unused slot. | |
| title_2 | No | Display title of section 2, maximum 30 characters. Nonblank for a used section; absent for an unused slot. | |
| title_3 | No | Display title of section 3, maximum 30 characters. Nonblank for a used section; absent for an unused slot. | |
| title_4 | No | Display title of section 4, maximum 30 characters. Nonblank for a used section; absent for an unused slot. | |
| title_5 | No | Display title of section 5, maximum 30 characters. Nonblank for a used section; absent for an unused slot. | |
| title_6 | No | Display title of section 6, maximum 30 characters. Nonblank for a used section; absent for an unused slot. | |
| welcome | Yes | Welcome message, maximum 255 characters. Line breaks and emojis are supported. | |
| language | Yes | Main app language, expressed as one of the listed language names rather than a locale code. | |
| description | Yes | Brief app description, maximum 255 characters. | |
| previous_id | Yes | Creation: string "0". Editing: complete id from a previous successful response, including the six-character app-management code. An edit replaces the full section structure; a numeric-only ID is invalid. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructive, non-idempotent and open-world, but the description adds substantial context beyond them: no account required, no web search or URL verification, validation rejection happens before any backend request, backend failures/timeouts can leave the outcome unknown, a download link is not a compilation-completion signal, editing does not change the app name or regenerate the icon, and omitted sections are removed. It also discloses the app-management code embedded in the id.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Long, but the tool has 24 parameters and two modes, and it is organized under 'Inputs:', 'Creation:', 'Editing:' headers with the highest-value facts first. Nearly every sentence carries distinct information; the success/failure paragraph is the only place with mild redundancy against the annotations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description fully specifies the return contract (structuredContent with id, download_url, edit_url, and the meaning of each), error behavior (isError=true with explanatory text), and the asynchronous compilation caveat. An agent has everything needed to call this correctly and interpret the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema carries most parameter detail and the baseline is 3. The description adds genuinely useful cross-field rules the schema states only per-parameter: every used slot needs a nonblank title, unused slots must omit all three fields, and the edit payload represents the entire final structure with omissions treated as removals. It also points to the schemas for content formats and limits rather than duplicating them.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Creates Android apps and builds APKs') and immediately distinguishes the two modes: creation versus replacing sections of a previously created app. The explicit scope limit ('initial configurable app structure, not arbitrary Android source code') prevents a major misreading of what the tool produces.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit selection criteria: previous_id is "0" for creation, a complete id from an earlier response for editing. It also states what is NOT available ('no partial-update mode or configuration-retrieval tool'), which tells the agent the payload must be reconstructed in full rather than fetched, and routes deeper customization to the web editor.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
- First observed
GenerateApp
Related MCP Connectors
Make your own apps and tools: build, edit and publish web apps from a conversation.
- MaketaOAuthpro.maketa
Build and edit app screen mockups and clickable prototypes from your AI assistant.
Design your mobile app UI with AI, then have your coding agent build the real app from it.
Generate a Flutter app from a JSON spec free; pay only for the compiled APK (USDC on Base).
Related MCP Servers
- FlicenseNot gradedqualityCmaintenanceEnable AI agents to autonomously build and deploy full-stack mobile applications.1-
- AlicenseBqualityCmaintenanceEnables AI assistants to scaffold, edit, live-preview, and deploy full-stack apps with built-in database, email, and push notification capabilities through natural language.19MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to build and update complete applications, including creating, updating, publishing, previewing, and configuring databases, security, permissions, and server-side integrations.Apache 2.0

Melayaofficial
AlicenseNot gradedqualityAmaintenanceMelaya gives any AI access to your Android phone. And allows you to create AI agents in minutes.1Apache 2.0
Glama MCP Gateway
Add one secure layer between your agents and this server.