@2tl/hangar-mcp 0.1.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/README.md +18 -9
  2. package/dist/index.js +2786 -7080
  3. package/package.json +11 -2
package/README.md CHANGED
@@ -7,7 +7,7 @@ switch the **preview** site to it. Production stays a human decision in the Hang
7
7
  AI 코딩 도구가 Hangar 프로젝트를 만들고, 빌드한 웹앱을 올리고, **preview** 에 띄우게 해 주는
8
8
  로컬 MCP 서버입니다. production 전환은 사람이 콘솔에서 합니다.
9
9
 
10
- - Runs on your machine over stdio (`npx -y @2tl/hangar-mcp@0.1.0`). Node 22 or newer.
10
+ - Runs on your machine over stdio (`npx -y @2tl/hangar-mcp@0.2.0`). Node 22 or newer.
11
11
  - Talks only to the Hangar API (`https://app-api.2tl.io`). Sites are served at
12
12
  `https://<slug>.apps.2tl.io`, previews at `https://<slug>-preview.apps.2tl.io`.
13
13
  - Never builds, installs or runs your project's code. Your AI tool builds; this server uploads.
@@ -28,7 +28,7 @@ can end up in logs and history, and anything in the project can end up in git or
28
28
 
29
29
  ## 2. Register the server / 등록
30
30
 
31
- Always pin the version: `@2tl/hangar-mcp@0.1.0`, never a bare `@2tl/hangar-mcp` or `@latest`.
31
+ Always pin the version: `@2tl/hangar-mcp@0.2.0`, never a bare `@2tl/hangar-mcp` or `@latest`.
32
32
  **Update by bumping the version deliberately. / 업데이트는 버전을 올려서 직접 하세요.**
33
33
 
34
34
  **Which folders it may open / 열 수 있는 폴더.** The server only reads (and, for `hangar.json`, writes)
@@ -50,7 +50,7 @@ The AI tool's config then holds no key at all. `hangar login` stores it in `~/.h
50
50
  (file mode 0600), read from stdin — never from an argument or an environment variable:
51
51
 
52
52
  ```bash
53
- npm i -g @2tl/hangar@0.1.0
53
+ npm i -g @2tl/hangar@0.2.0
54
54
  # copy the key in the console, then pipe it straight from the clipboard: no shell history, no file
55
55
  # (Linux: xclip -selection clipboard -o | …, Windows PowerShell: Get-Clipboard | …)
56
56
  pbpaste | hangar login --workspace-key --workspace <workspace-uuid> --profile ws --token-stdin
@@ -65,7 +65,7 @@ key. With a CLI profile:
65
65
 
66
66
  ```bash
67
67
  cd my-app
68
- claude mcp add --scope user hangar -- npx -y @2tl/hangar-mcp@0.1.0 --profile ws
68
+ claude mcp add --scope user hangar -- npx -y @2tl/hangar-mcp@0.2.0 --profile ws
69
69
  ```
70
70
 
71
71
  Or with the key in the env (stored in plain text in `~/.claude.json`). `read -rs` keeps it out of your
@@ -76,7 +76,7 @@ read -rs HANGAR_KEY # paste the hgw_ key, press Enter
76
76
  claude mcp add --scope user hangar \
77
77
  -e HANGAR_WORKSPACE_ID=<workspace-uuid> \
78
78
  -e HANGAR_WORKSPACE_KEY="$HANGAR_KEY" \
79
- -- npx -y @2tl/hangar-mcp@0.1.0
79
+ -- npx -y @2tl/hangar-mcp@0.2.0
80
80
  unset HANGAR_KEY
81
81
  ```
82
82
 
@@ -91,7 +91,7 @@ unset HANGAR_KEY
91
91
  "mcpServers": {
92
92
  "hangar": {
93
93
  "command": "npx",
94
- "args": ["-y", "@2tl/hangar-mcp@0.1.0", "--profile", "ws"],
94
+ "args": ["-y", "@2tl/hangar-mcp@0.2.0", "--profile", "ws"],
95
95
  "env": {
96
96
  "HANGAR_ALLOWED_ROOTS": "/Users/you/projects"
97
97
  }
@@ -113,7 +113,7 @@ repository. 프로젝트의 `.cursor/mcp.json` 에는 넣지 마세요.
113
113
  "mcpServers": {
114
114
  "hangar": {
115
115
  "command": "npx",
116
- "args": ["-y", "@2tl/hangar-mcp@0.1.0", "--profile", "ws"],
116
+ "args": ["-y", "@2tl/hangar-mcp@0.2.0", "--profile", "ws"],
117
117
  "env": {
118
118
  "HANGAR_ALLOWED_ROOTS": "/Users/you/projects"
119
119
  }
@@ -180,6 +180,15 @@ The server gives the AI this workflow:
180
180
  | `hangar_release_status` | Desired vs. serving release and the in-flight deployment, per environment. |
181
181
  | `hangar_production_handoff` | Does not activate. Returns the console URL and instructions for the human. |
182
182
  | `hangar_list_jobs` / `hangar_job_runs` | Scheduled jobs and their recent runs. Read-only. |
183
+ | `hangar_notify` | Tell the human about a long task's progress, over the workspace's connected Slack channel (if any) and the console timeline. Needs the key's opt-in `notify:send` scope (see below). |
184
+ | `hangar_ask_choice` / `hangar_get_choice` | Ask the human to pick one of 2-4 options, then poll for the answer. Grants no permission — never production. Same opt-in scope. |
185
+
186
+ `hangar_notify`/`hangar_ask_choice`/`hangar_get_choice` need the key's `notify:send` scope, which
187
+ the console's key-issuance screen does not yet have a checkbox for (pending a later console change)
188
+ — so no key can hold it yet, and these three tools are not reachable through any normally-issued key
189
+ today, even once `NOTIFY_ENABLED`/`NOTIFY_MCP_ENABLED` are on. / 위 세 도구에는 `notify:send`
190
+ 스코프가 필요한데, 콘솔 키 발급 화면에 아직 그 체크박스가 없어(후속 콘솔 변경 대기 중) 지금은 어떤
191
+ 키도 이 스코프를 가질 수 없습니다.
183
192
 
184
193
  ## Intentionally not available / 일부러 없는 것
185
194
 
@@ -199,5 +208,5 @@ projects (the count never goes down) and expires (at most 90 days). Keys are not
199
208
  new one in the console.
200
209
 
201
210
  Slugs are the site address, so they are unique across all of Hangar: lowercase `a-z`, `0-9` and `-`,
202
- up to 63 characters, not ending in `-preview`, and not a reserved name such as `www`, `api`, `admin`,
203
- `console`, `docs` or `status`.
211
+ up to 63 characters, no repeated hyphen (`--`), not ending in `-preview` or `-admin-host`, and not a
212
+ reserved name such as `www`, `api`, `admin`, `console`, `docs` or `status`.