naro-mcp 0.2.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.
- package/README.md +70 -3
- package/dist/index.js +1280 -76
- package/package.json +7 -3
package/README.md
CHANGED
|
@@ -1,7 +1,74 @@
|
|
|
1
1
|
# naro-mcp
|
|
2
2
|
|
|
3
|
-
MCP server that
|
|
3
|
+
MCP server that lets AI agents (Claude Code, Cursor, Codex, ChatGPT, …)
|
|
4
|
+
operate [Naro](https://naro.sh): deploy projects, read build/runtime logs,
|
|
5
|
+
manage environment variables and domains, promote and roll back — the same
|
|
6
|
+
control plane API the `naro` CLI uses, via the shared SDK.
|
|
4
7
|
|
|
5
|
-
|
|
8
|
+
## Setup
|
|
6
9
|
|
|
7
|
-
|
|
10
|
+
Authenticate once (opens a browser, GitHub sign-in):
|
|
11
|
+
|
|
12
|
+
```bash
|
|
13
|
+
npx naro-cli login
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
### Claude Code
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
claude mcp add naro -- npx -y naro-mcp
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
### Cursor (`.cursor/mcp.json`) / Codex / generic MCP config
|
|
23
|
+
|
|
24
|
+
```json
|
|
25
|
+
{
|
|
26
|
+
"mcpServers": {
|
|
27
|
+
"naro": {
|
|
28
|
+
"command": "npx",
|
|
29
|
+
"args": ["-y", "naro-mcp"]
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
Headless/CI agents can skip `naro login` and set a token instead:
|
|
36
|
+
|
|
37
|
+
```json
|
|
38
|
+
{
|
|
39
|
+
"mcpServers": {
|
|
40
|
+
"naro": {
|
|
41
|
+
"command": "npx",
|
|
42
|
+
"args": ["-y", "naro-mcp"],
|
|
43
|
+
"env": { "NARO_TOKEN": "<access token from `naro token`>" }
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
## Tools
|
|
50
|
+
|
|
51
|
+
| Tool | Purpose |
|
|
52
|
+
| --------------------------------------------------------------------------------------- | ----------------------------------------------------------------------- |
|
|
53
|
+
| `whoami`, `list_teams` | Account / team context |
|
|
54
|
+
| `list_projects`, `get_project`, `link_project` | Project discovery + `.naro/project.json` linking |
|
|
55
|
+
| `deploy` | Local Next.js build → upload → live URL (preview or `production: true`) |
|
|
56
|
+
| `list_deployments`, `get_deployment` | Deployment status / history |
|
|
57
|
+
| `get_build_logs`, `get_runtime_logs` | Debugging failed builds and live workers |
|
|
58
|
+
| `list_environment_variables`, `set_environment_variable`, `remove_environment_variable` | Env management (secret values never returned) |
|
|
59
|
+
| `list_domains`, `add_domain`, `remove_domain` | Custom domains + DNS verification records |
|
|
60
|
+
| `promote_deployment`, `rollback_deployment` | Production traffic control |
|
|
61
|
+
|
|
62
|
+
Destructive tools say so in their descriptions; agents should confirm with
|
|
63
|
+
the user before calling them. Every result is a JSON object
|
|
64
|
+
(`{"success": true, …}` or `{"success": false, "code": "BUILD_FAILED", …}`)
|
|
65
|
+
so agents can chain: deploy → on failure `get_build_logs` → fix code →
|
|
66
|
+
deploy again.
|
|
67
|
+
|
|
68
|
+
Example conversation:
|
|
69
|
+
|
|
70
|
+
```text
|
|
71
|
+
User: 이 Next.js 프로젝트 Naro에 배포해줘.
|
|
72
|
+
Agent: deploy { directory: "/path/to/app" }
|
|
73
|
+
→ { success: true, url: "https://my-app-preview.naro.sh", status: "READY" }
|
|
74
|
+
```
|