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
Metadata
Release files for clue2app-mcp 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| clue2app_mcp-0.1.1.tar.gz | 35.5 kB | Without provenance | Details for clue2app_mcp-0.1.1.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| clue2app_mcp-0.1.1-py3-none-any.whl | Python 3 | none | any | Details for clue2app_mcp-0.1.1-py3-none-any.whl |
Total release size: 52.3 kB
Release files / clue2app_mcp-0.1.1.tar.gz
| Download URL | clue2app_mcp-0.1.1.tar.gz |
|---|---|
| Size | 35.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
acbe4d7b533b017b498cda351873d9ddbfd82e54e71be657fb83f44876367b30
|
|
BLAKE2b-256 checksum How to use checksums |
5fcb7a00b8822a33d6d26fe36dcc65adebe96ed9ab514aa0aaf0d9edbe633b33
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.16
|
Release files / clue2app_mcp-0.1.1-py3-none-any.whl
| Download URL | clue2app_mcp-0.1.1-py3-none-any.whl |
|---|---|
| Size | 16.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
1d2bf1a6960546cc8c0746a4e3e404991e43caf54a4062434dd35e9430ea2bd8
|
|
BLAKE2b-256 checksum How to use checksums |
e42b73851acbc91876a766b0ec7accf7f89db3f05b6648f41c15c9c09f885ab5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.16
|
Security for clue2app-mcp 0.1.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.