Clue2App MCP Server
MCP (Model Context Protocol) server for Clue2App, enabling AI coding assistants like Claude Code to deploy applications directly.
Features
- Seamless Deployment: Deploy apps from within your AI assistant conversation
- Project Management: Create and switch between projects
- App Lifecycle: Create, rebuild, delete applications
- Monitoring: Check build status, view logs, get runtime info
- Custom Domains: Register domains, assign apex (
@) and subdomains, manage TLS — all via CLI proxy
Installation
pip install clue2app-mcp
Configuration
Claude Code
Add to your ~/.claude/claude_code_config.json:
{
"mcpServers": {
"clue2app": {
"command": "clue2app-mcp",
"args": []
}
}
}
Claude Desktop
Add to your Claude Desktop config:
{
"mcpServers": {
"clue2app": {
"command": "python",
"args": ["-m", "clue2app_mcp.server"]
}
}
}
Prerequisites
-
Install and authenticate with Clue2App CLI:
pip install clue2app-cli c2a login
-
Set up a project context:
c2a project create MyProject # namespace is auto-generated c2a project use MyProject
Available Tools
Auth & Projects
| Tool | Description |
|---|---|
c2a_auth_status / c2a_status |
Check authentication and active project |
c2a_login |
Open browser login |
c2a_list_projects |
List all projects |
c2a_use_project |
Switch active project |
c2a_create_project |
Create a new project |
c2a_show_project |
Show project details |
Apps
| Tool | Description |
|---|---|
c2a_list_apps |
List apps in current project |
c2a_get_app |
Get app details (URL, status, image) |
c2a_create_app |
Deploy a new app from a Git repo |
c2a_rebuild_app |
Trigger a build |
c2a_restart_app |
Restart the app (new revision) |
c2a_delete_app |
Delete an app |
c2a_app_logs |
Runtime logs |
c2a_build_logs |
Build logs |
c2a_build_list |
List builds |
c2a_set_env / c2a_list_env |
Environment variables |
c2a_deploy_current / c2a_check_repo |
Deploy from current directory |
c2a_analyze |
Analyze a repo for deployment readiness |
Custom Domains
| Tool | Description |
|---|---|
c2a_domains_register |
Register a domain zone (DELEGATION / SUBDOMAIN_DELEGATION / CNAME_ONLY) |
c2a_domains_verify |
Check NS delegation health (live DNS lookup) |
c2a_domains_status |
Check delegation status via API |
c2a_domains_info |
Show NS records and setup instructions |
c2a_domains_list |
List registered domains in the project |
c2a_domains_assign |
Assign a single subdomain or apex (@) to an app |
c2a_domains_add |
Add one or more FQDNs to an app (auto-registers base if needed) |
c2a_domains_assignments |
List FQDN→app mappings in the project |
c2a_domains_remove |
Remove a domain assignment from an app |
c2a_domains_delete |
Delete a registered domain (and its assignments) |
Secrets
| Tool | Description |
|---|---|
c2a_secrets_list / c2a_secrets_create / c2a_secrets_delete |
Manage Git/registry credentials for private repos |
Daari LLM Gateway
| Tool | Description |
|---|---|
c2a_daari_llm_list_instances |
List Daari LLM Gateway instances in the active project |
c2a_daari_llm_create_instance |
Create a per-project LLM Gateway instance (mints JWT + writes OPENAI_API_KEY/OPENAI_BASE_URL binding secret) |
c2a_daari_llm_bind_app |
Attach a Gateway binding secret to an app via envFrom (emits kubectl patch for operator review) |
Example Usage
In Claude Code or Claude Desktop:
"Create a new project called 'demo' with namespace 'demo'"
"Deploy my FastAPI app from https://github.com/user/fastapi-app"
"Check the status of my-app"
"Show me the logs for my-app"
"Rebuild my-app"
"Register example.com with DELEGATION method"
"Point example.com (apex) and www.example.com at my-app"
"Show me the NS records I need to add at my registrar"
Development
# Clone the repo
git clone https://github.com/clue2solve/clue2app-mcp.git
cd clue2app-mcp
# Install in development mode
pip install -e ".[dev]"
# Run tests
pytest
Releasing
Releases are cut by pushing a v<version> tag that matches the version in
pyproject.toml. The .github/workflows/release.yml workflow then:
- Builds a wheel + sdist with
python -m build. - Verifies the tag matches the
pyproject.toml[project].version; fails the run if they diverge. - Publishes both artifacts to PyPI as
clue2app-mcp— only if thePYPI_API_TOKENrepo secret is set. Without the token the publish step is skipped with a clear warning and the build artifacts are still uploaded to the run so the release itself is not blocked. - Creates a GitHub Release for the tag with the wheel and sdist attached.
Typical cut:
# 1. Bump the version in pyproject.toml (e.g. 0.1.0 -> 0.1.1) and commit.
git commit -am "chore(release): v0.1.1"
# 2. Tag and push.
git tag v0.1.1
git push origin main --tags
The tag push triggers the workflow; watch it under Actions → Release.
One-time setup (still pending — see SCK-441 follow-ups):
- Claim the
clue2app-mcpname on PyPI (requires a human PyPI account). - Add a
PYPI_API_TOKENrepo secret scoped to that project under Settings → Secrets and variables → Actions.
Until both are done the workflow will build and attach artifacts but skip the PyPI upload with a warning.
License
MIT
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file clue2app_mcp-0.1.1.tar.gz.
File metadata
- Download URL: clue2app_mcp-0.1.1.tar.gz
- Upload date:
- Size: 35.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.11.16
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
acbe4d7b533b017b498cda351873d9ddbfd82e54e71be657fb83f44876367b30
|
|
| MD5 |
cb7e548ff93aba47460a306171eca35b
|
|
| BLAKE2b-256 |
5fcb7a00b8822a33d6d26fe36dcc65adebe96ed9ab514aa0aaf0d9edbe633b33
|
File details
Details for the file clue2app_mcp-0.1.1-py3-none-any.whl.
File metadata
- Download URL: clue2app_mcp-0.1.1-py3-none-any.whl
- Upload date:
- Size: 16.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.11.16
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1d2bf1a6960546cc8c0746a4e3e404991e43caf54a4062434dd35e9430ea2bd8
|
|
| MD5 |
42cbf04877e430339fcd1f693cc612f7
|
|
| BLAKE2b-256 |
e42b73851acbc91876a766b0ec7accf7f89db3f05b6648f41c15c9c09f885ab5
|