Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .claude-plugin/marketplace.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
"plugins": [
{
"name": "seenode",
"description": "Deploy, troubleshoot, and manage applications, databases, storage, domains, projects, and billing on Seenode via the hosted Seenode MCP.",
"description": "Deploy, troubleshoot, and manage static sites, web/worker/private applications, databases, storage, domains, projects, and billing on Seenode via the hosted Seenode MCP.",
"author": {
"name": "Seenode",
"email": "help@seenode.com"
Expand Down
5 changes: 3 additions & 2 deletions .claude-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "seenode",
"version": "0.2.2",
"description": "Deploy, troubleshoot, and manage applications, databases, storage, domains, projects, and billing on Seenode via the hosted Seenode MCP.",
"version": "0.3.0",
"description": "Deploy, troubleshoot, and manage static sites, web/worker/private applications, databases, storage, domains, projects, and billing on Seenode via the hosted Seenode MCP.",
"author": {
"name": "Seenode",
"email": "help@seenode.com"
Expand All @@ -15,6 +15,7 @@
"hosting",
"mcp",
"applications",
"static-sites",
"databases",
"storage",
"billing",
Expand Down
8 changes: 5 additions & 3 deletions .codex-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "seenode",
"version": "0.2.2",
"description": "Deploy, troubleshoot, and manage applications, databases, storage, domains, projects, and billing on Seenode via the hosted Seenode MCP.",
"version": "0.3.0",
"description": "Deploy, troubleshoot, and manage static sites, web/worker/private applications, databases, storage, domains, projects, and billing on Seenode via the hosted Seenode MCP.",
"author": {
"name": "Seenode",
"email": "help@seenode.com",
Expand All @@ -16,6 +16,7 @@
"hosting",
"mcp",
"applications",
"static-sites",
"databases",
"storage",
"billing",
Expand All @@ -26,7 +27,7 @@
"interface": {
"displayName": "Seenode",
"shortDescription": "Deploy and manage apps on Seenode",
"longDescription": "Connect ChatGPT and Codex to Seenode to deploy GitHub/GitLab apps, create and link MySQL/PostgreSQL databases, wait on deployments, inspect logs and metrics, manage environment variables and storage, attach custom domains, and check credits/billing. Authentication uses OAuth against the hosted Seenode MCP — no API keys in plugin config.",
"longDescription": "Connect ChatGPT and Codex to Seenode to deploy GitHub/GitLab apps including static sites, create and link MySQL/PostgreSQL databases, wait on deployments, inspect logs and metrics, manage environment variables and storage, attach custom domains, and check credits/billing. Authentication uses OAuth against the hosted Seenode MCP — no API keys in plugin config.",
"developerName": "Seenode",
"category": "Developer Tools",
"capabilities": [
Expand All @@ -38,6 +39,7 @@
"termsOfServiceURL": "https://seenode.com/legal/terms-and-conditions",
"defaultPrompt": [
"Deploy this repository to Seenode as a web app",
"Deploy this Vite SPA to Seenode as a static site",
"Create a PostgreSQL database and link it to my Seenode app",
"Why did my latest Seenode deployment fail?",
"What is my Seenode credit balance?",
Expand Down
15 changes: 15 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,21 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased]

## [0.3.0] - 2026-09-11

### Added

- Static sites as a first-class MCP product type (`application_type='static'`)
- Static deploy recipe: `inspect_repository` → `create_application` with `publish_directory` → `wait_for_deployment` (no database, run command, or port)

### Changed

- Skills and docs stop claiming static is not a product type
- Custom domains apply to **web and static**
- Static env vars are build-time — follow `set_environment_variables` with `create_deployment`
- Storage, restart, scale, and runtime metrics are documented as unsupported for static
- `update_build_settings` can change `publish_directory`; `update_application` can set `static_routes` / `static_headers`

## [0.2.2] - 2026-08-09

### Changed
Expand Down
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ Thanks for helping improve the Seenode Agent Plugin.
- Keep `SKILL.md` action-oriented; put deep checklists in `references/`
- Frontmatter must include `name` and `description`; `name` must match the directory
- Track the platform MCP tool registry (`platform/apps/mcp/service/tools/`): every registered tool should appear in at least one skill; do not invent tool names
- Document remaining gaps honestly (no destroy for apps/DBs/domains/projects/storage; no static-site/cron/blueprint/key-value types)
- Document remaining gaps honestly (no destroy for apps/DBs/domains/projects/storage; no cron/blueprint/key-value types)
- Teach `create_database` → `get_database_state` → `link_database_to_application`; never teach pasting DB passwords
- Prefer `wait_for_deployment` over busy-polling; confirm before billing money mutations
- Prefer inspect → plan → mutate → verify
Expand Down
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ This repository is a **portable Agent Plugin**: shared skills plus thin client a

Use this plugin when you want an AI coding agent to:

- Deploy a GitHub or GitLab repo to Seenode as a web, worker, or private app
- Deploy a GitHub or GitLab repo to Seenode as a web, worker, private, or static app
- Create and link managed MySQL/PostgreSQL databases (without pasting passwords)
- Debug failed builds and runtime crashes with logs, metrics, wait/cancel helpers
- Manage environment variables, custom domains, projects, storage volumes, and billing/credits
Expand Down Expand Up @@ -38,6 +38,7 @@ After install, complete Seenode OAuth when prompted, then try a read-only smoke
## Example prompts

- “Deploy this repository to Seenode as a web app.”
- “Deploy this Vite SPA to Seenode as a static site.”
- “Create a PostgreSQL database, wait until it’s ready, and link it to my app.”
- “Why did my latest Seenode deployment fail? Wait for the next deploy after you fix it.”
- “What’s my Seenode credit balance in USD?”
Expand All @@ -50,7 +51,7 @@ After install, complete Seenode OAuth when prompted, then try a read-only smoke
|-------|---------|
| [`deploy`](skills/deploy/SKILL.md) | End-to-end deploy: DB → inspect → app → link → wait |
| [`troubleshoot`](skills/troubleshoot/SKILL.md) | Failed deploys and apps that won’t start |
| [`applications`](skills/applications/SKILL.md) | Discover and manage web/worker/private apps |
| [`applications`](skills/applications/SKILL.md) | Discover and manage web/worker/private/static apps |
| [`environment`](skills/environment/SKILL.md) | Env vars and secrets (prefer DB link over paste) |
| [`databases`](skills/databases/SKILL.md) | Create, update, rotate, and link managed DBs |
| [`storage`](skills/storage/SKILL.md) | Persistent application volumes |
Expand All @@ -61,7 +62,6 @@ After install, complete Seenode OAuth when prompted, then try a read-only smoke
### MCP gaps skills respect

- No delete/destroy tools for apps, databases, domains, projects, or storage (only `delete_environment_variables`)
- No static-site / cron / blueprint / key-value product types on this MCP surface
- Never fetch or echo raw DB passwords — use `link_database_to_application`

## Security
Expand Down
5 changes: 3 additions & 2 deletions plugin.json
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
{
"$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
"name": "seenode",
"version": "0.2.2",
"description": "Deploy, troubleshoot, and manage applications, databases, storage, domains, projects, and billing on Seenode via the hosted Seenode MCP.",
"version": "0.3.0",
"description": "Deploy, troubleshoot, and manage static sites, web/worker/private applications, databases, storage, domains, projects, and billing on Seenode via the hosted Seenode MCP.",
"author": {
"name": "Seenode",
"email": "help@seenode.com",
Expand All @@ -17,6 +17,7 @@
"hosting",
"mcp",
"applications",
"static-sites",
"databases",
"storage",
"billing",
Expand Down
37 changes: 21 additions & 16 deletions skills/applications/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,30 +1,32 @@
---
name: applications
description: Discover and manage Seenode web, worker, and private applications — list/get apps, packages, build settings, restart/duplicate, scale, and trigger deployments. Use when the user asks about their Seenode apps, runtimes, build/start commands, ports, auto-deploy, or redeploys.
description: Discover and manage Seenode web, worker, private, and static applications — list/get apps, packages, build settings, restart/duplicate, scale, and trigger deployments. Use when the user asks about their Seenode apps, runtimes, build/start commands, ports, publish directory, auto-deploy, or redeploys.
license: MIT
metadata:
author: Seenode
version: "0.2.2"
version: "0.3.0"
category: applications
---

# Manage Seenode applications

## Types

| Type | Public URL | Custom domains | Port |
|------|------------|----------------|------|
| `web` | Yes (`*.seenode.app`) | Yes | Required |
| `worker` | No | No | Usually omit |
| `private` | No (internal only) | No | Required |
| Type | Public URL | Custom domains | Port | Notes |
|------|------------|----------------|------|-------|
| `web` | Yes (`*.seenode.app`) | Yes | Required | Container |
| `worker` | No | No | Usually omit | Container |
| `private` | No (internal only) | No | Required | Container |
| `static` | Yes (`*.seenode.app`) | Yes | Omit | Git build → object storage; `publish_directory` required; no restart/scale/storage |

`list_applications` filters by type and defaults to `web`. Call again with `worker` / `private` when needed — there is no all-types list.
`list_applications` filters by type and defaults to `web`. Call again with `worker` / `private` / `static` when needed — there is no all-types list.

## Discovery

```
get_current_team()
list_applications(application_type="web", project_id=null, page=1)
list_applications(application_type="static")
get_application(application_id=...)
get_build_settings(application_id=...)
get_deployments(application_id=...)
Expand All @@ -44,12 +46,14 @@ update_application(
description=null,
project_id=null,
package_id=null, # paid tier from list_application_packages — needs credit approval
scale=null, # 1–10 instance multiplier; must be 1 when storage is attached
auto_deploy=null # deploy-on-push toggle
scale=null, # 1–10 instance multiplier; must be 1 when storage is attached; not for static
auto_deploy=null, # deploy-on-push toggle
static_routes=null, # static only: [{type: redirect|rewrite, source, destination}]
static_headers=null # static only: [{path, name, value}]
)
```

Build/run commands, runtime image, port, root directory, and git branch are **not** here — use `update_build_settings`. Package ≠ runtime.
Build/run commands, runtime image, port, root directory, publish directory, and git branch are **not** here — use `update_build_settings`. Package ≠ runtime. Static routes/headers **are** here.

## Update build settings (redeploys)

Expand All @@ -60,22 +64,23 @@ update_build_settings(
run_command=null,
image_id=null, # from list_images
root_directory=null,
publish_directory=null, # static only
port=null,
git_branch=null
)
```

Side effect: starts a new build/deployment immediately. Prefer `wait_for_deployment` afterwards; use `get_application_logs` on failure.
Side effect: starts a new build/deployment immediately. Prefer `wait_for_deployment` afterwards; use `get_application_logs` on failure. Static: pass `build_command` + `publish_directory`; omit `run_command` / `port`.

Runtime changes mean changing `image_id` / creating with `runtime` — never via env vars named `RUNTIME`.
Runtime changes mean changing `image_id` / creating with `runtime` — never via env vars named `RUNTIME`. Static `runtime` / `image_id` is the **build container** (default Node 22).

## Restart (no rebuild)

```
restart_application(application_id=...)
```

Restarts running instances without rebuilding from git. Requires at least one prior successful deployment. Env-var changes already trigger a similar restart.
Restarts running instances without rebuilding from git. Requires at least one prior successful deployment. Env-var changes already trigger a similar restart. **Not supported for static** (API 400 — no running instances).

## Duplicate

Expand All @@ -96,11 +101,11 @@ Omit `git_commit_sha` for the newest commit on the configured branch; pass a SHA

## Create

Prefer the **deploy** skill for new apps (`create_application`, optional `create_database` → `link_database_to_application`). Require pushed GitHub/GitLab repo + connected provider (`get_git_connections`). Use `inspect_repository` when build/run hints are unclear.
Prefer the **deploy** skill for new apps (`create_application`, optional `create_database` → `link_database_to_application`). Require pushed GitHub/GitLab repo + connected provider (`get_git_connections`). Use `inspect_repository` when build/run hints are unclear. Static: `application_type="static"` with `publish_directory` (and optional `client_side_routing`); skip DB/run/port.

## Storage

Persistent volumes: see the **storage** skill (`list_application_storage`, `create_application_storage`, …). Size tiers come from `list_storage_packages`.
Persistent volumes: see the **storage** skill (`list_application_storage`, `create_application_storage`, …). Size tiers come from `list_storage_packages`. **Not supported for static** (API 400).

## Safety

Expand Down
2 changes: 1 addition & 1 deletion skills/billing/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ description: Inspect Seenode team credits, usage, spending, orders, and ledger;
license: MIT
metadata:
author: Seenode
version: "0.2.2"
version: "0.3.0"
category: billing
---

Expand Down
2 changes: 1 addition & 1 deletion skills/databases/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ description: Create, inspect, update, rotate, and link Seenode MySQL/PostgreSQL
license: MIT
metadata:
author: Seenode
version: "0.2.2"
version: "0.3.0"
category: databases
---

Expand Down
Loading
Loading