Skip to main content

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

  1. Install and authenticate with Clue2App CLI:

    pip install clue2app-cli
    c2a login
    
  2. 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:

  1. Builds a wheel + sdist with python -m build.
  2. Verifies the tag matches the pyproject.toml [project].version; fails the run if they diverge.
  3. Publishes both artifacts to PyPI as clue2app-mcponly if the PYPI_API_TOKEN repo 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.
  4. 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-mcp name on PyPI (requires a human PyPI account).
  • Add a PYPI_API_TOKEN repo 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

clue2app_mcp-0.1.1.tar.gz (35.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

clue2app_mcp-0.1.1-py3-none-any.whl (16.8 kB view details)

Uploaded Python 3

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

Hashes for clue2app_mcp-0.1.1.tar.gz
Algorithm Hash digest
SHA256 acbe4d7b533b017b498cda351873d9ddbfd82e54e71be657fb83f44876367b30
MD5 cb7e548ff93aba47460a306171eca35b
BLAKE2b-256 5fcb7a00b8822a33d6d26fe36dcc65adebe96ed9ab514aa0aaf0d9edbe633b33

See more details on using hashes here.

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

Hashes for clue2app_mcp-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 1d2bf1a6960546cc8c0746a4e3e404991e43caf54a4062434dd35e9430ea2bd8
MD5 42cbf04877e430339fcd1f693cc612f7
BLAKE2b-256 e42b73851acbc91876a766b0ec7accf7f89db3f05b6648f41c15c9c09f885ab5

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page