@embrs/user-feedback 1.3.2 → 1.3.3
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 +48 -5
- package/dist/config/index.js +4 -4
- package/dist/config/index.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
# User Feedback
|
|
2
2
|
|
|
3
|
+
[](https://www.npmjs.com/package/@embrs/user-feedback)
|
|
4
|
+
|
|
3
5
|
基於 Node.js 的 MCP 反饋收集工具,支援 AI 工作彙報和用戶反饋收集。
|
|
4
6
|
|
|
5
7
|
## 功能特點
|
|
@@ -17,6 +19,8 @@
|
|
|
17
19
|
|
|
18
20
|
## 安裝
|
|
19
21
|
|
|
22
|
+
**📦 npm 套件**: [https://www.npmjs.com/package/@embrs/user-feedback](https://www.npmjs.com/package/@embrs/user-feedback?activeTab=readme)
|
|
23
|
+
|
|
20
24
|
```bash
|
|
21
25
|
# 全域安裝
|
|
22
26
|
npm install -g @embrs/user-feedback
|
|
@@ -81,7 +85,12 @@ user-feedback config
|
|
|
81
85
|
"mcpServers": {
|
|
82
86
|
"user-feedback": {
|
|
83
87
|
"command": "npx",
|
|
84
|
-
"args": ["-y", "@embrs/user-feedback"]
|
|
88
|
+
"args": ["-y", "@embrs/user-feedback"],
|
|
89
|
+
"env": {
|
|
90
|
+
"MCP_WEB_PORT": "3000",
|
|
91
|
+
"MCP_DIALOG_TIMEOUT": "60000",
|
|
92
|
+
"LOG_LEVEL": "warn"
|
|
93
|
+
}
|
|
85
94
|
}
|
|
86
95
|
}
|
|
87
96
|
}
|
|
@@ -89,6 +98,8 @@ user-feedback config
|
|
|
89
98
|
|
|
90
99
|
5. 重啟 Cursor 使配置生效
|
|
91
100
|
|
|
101
|
+
**💡 提示**:可以在 `env` 中設定任何環境變數,優先順序高於 `.env` 文件。
|
|
102
|
+
|
|
92
103
|
### Claude Desktop
|
|
93
104
|
|
|
94
105
|
在 `~/Library/Application Support/Claude/claude_desktop_config.json` 中添加:
|
|
@@ -98,7 +109,12 @@ user-feedback config
|
|
|
98
109
|
"mcpServers": {
|
|
99
110
|
"user-feedback": {
|
|
100
111
|
"command": "npx",
|
|
101
|
-
"args": ["-y", "@embrs/user-feedback"]
|
|
112
|
+
"args": ["-y", "@embrs/user-feedback"],
|
|
113
|
+
"env": {
|
|
114
|
+
"MCP_WEB_PORT": "3000",
|
|
115
|
+
"MCP_DIALOG_TIMEOUT": "60000",
|
|
116
|
+
"LOG_LEVEL": "warn"
|
|
117
|
+
}
|
|
102
118
|
}
|
|
103
119
|
}
|
|
104
120
|
}
|
|
@@ -113,7 +129,12 @@ user-feedback config
|
|
|
113
129
|
"mcpServers": {
|
|
114
130
|
"user-feedback": {
|
|
115
131
|
"command": "npx",
|
|
116
|
-
"args": ["-y", "@embrs/user-feedback"]
|
|
132
|
+
"args": ["-y", "@embrs/user-feedback"],
|
|
133
|
+
"env": {
|
|
134
|
+
"MCP_WEB_PORT": "3000",
|
|
135
|
+
"MCP_DIALOG_TIMEOUT": "60000",
|
|
136
|
+
"LOG_LEVEL": "warn"
|
|
137
|
+
}
|
|
117
138
|
}
|
|
118
139
|
}
|
|
119
140
|
}
|
|
@@ -121,14 +142,36 @@ user-feedback config
|
|
|
121
142
|
|
|
122
143
|
## 環境變數配置
|
|
123
144
|
|
|
145
|
+
### 🎯 推薦方式:MCP 客戶端配置
|
|
146
|
+
|
|
147
|
+
直接在 MCP 客戶端配置中設定環境變數,優先順序最高:
|
|
148
|
+
|
|
149
|
+
```json
|
|
150
|
+
{
|
|
151
|
+
"mcpServers": {
|
|
152
|
+
"user-feedback": {
|
|
153
|
+
"command": "npx",
|
|
154
|
+
"args": ["-y", "@embrs/user-feedback"],
|
|
155
|
+
"env": {
|
|
156
|
+
"MCP_WEB_PORT": "3000",
|
|
157
|
+
"MCP_DIALOG_TIMEOUT": "60000",
|
|
158
|
+
"LOG_LEVEL": "warn"
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
### 📁 備用方式:.env 文件
|
|
166
|
+
|
|
124
167
|
複製 `.env.example` 為 `.env` 並根據需要修改:
|
|
125
168
|
|
|
126
169
|
| 變數 | 說明 | 預設值 |
|
|
127
170
|
|------|------|--------|
|
|
128
171
|
| `MCP_WEB_PORT` | Web 服務器端口 | 3239 |
|
|
129
|
-
| `MCP_DIALOG_TIMEOUT` | 反饋超時時間(秒) |
|
|
172
|
+
| `MCP_DIALOG_TIMEOUT` | 反饋超時時間(秒) | 60000 |
|
|
130
173
|
| `LOG_LEVEL` | 日誌級別(silent/error/warn/info/debug) | info |
|
|
131
|
-
| `
|
|
174
|
+
| `MCP_MAX_FILE_SIZE` | 最大檔案大小(位元組) | 10485760 (10MB) |
|
|
132
175
|
|
|
133
176
|
## MCP 工具 API
|
|
134
177
|
|
package/dist/config/index.js
CHANGED
|
@@ -49,7 +49,7 @@ export function createDefaultConfig() {
|
|
|
49
49
|
apiBaseUrl: getEnvVar('MCP_API_BASE_URL', 'https://api.openai.com/v1'),
|
|
50
50
|
defaultModel: getEnvVar('MCP_DEFAULT_MODEL', 'gpt-4o-mini'),
|
|
51
51
|
webPort: getEnvNumber('MCP_WEB_PORT', 3239),
|
|
52
|
-
dialogTimeout: getEnvNumber('MCP_DIALOG_TIMEOUT',
|
|
52
|
+
dialogTimeout: getEnvNumber('MCP_DIALOG_TIMEOUT', 60000),
|
|
53
53
|
corsOrigin: getEnvVar('MCP_CORS_ORIGIN', '*'),
|
|
54
54
|
maxFileSize: getEnvNumber('MCP_MAX_FILE_SIZE', 10485760), // 10MB
|
|
55
55
|
logLevel: getEnvVar('LOG_LEVEL', 'info'),
|
|
@@ -69,9 +69,9 @@ export function validateConfig(config) {
|
|
|
69
69
|
if (config.webPort < 1024 || config.webPort > 65535) {
|
|
70
70
|
throw new MCPError(`Invalid port number: ${config.webPort}. Must be between 1024 and 65535.`, 'INVALID_PORT');
|
|
71
71
|
}
|
|
72
|
-
// 驗證超時時間(10 秒到
|
|
73
|
-
if (config.dialogTimeout < 10 || config.dialogTimeout >
|
|
74
|
-
throw new MCPError(`Invalid timeout: ${config.dialogTimeout}. Must be between 10 and
|
|
72
|
+
// 驗證超時時間(10 秒到 60000 秒)
|
|
73
|
+
if (config.dialogTimeout < 10 || config.dialogTimeout > 60000) {
|
|
74
|
+
throw new MCPError(`Invalid timeout: ${config.dialogTimeout}. Must be between 10 and 60000 seconds.`, 'INVALID_TIMEOUT');
|
|
75
75
|
}
|
|
76
76
|
// 驗證文件大小限制(1KB - 100MB)
|
|
77
77
|
if (config.maxFileSize < 1024 || config.maxFileSize > 104857600) {
|
package/dist/config/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,MAAM,IAAI,YAAY,EAAE,MAAM,QAAQ,CAAC;AAChD,OAAO,EAAU,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAErD,SAAS;AACT,YAAY,EAAE,CAAC;AAEf;;GAEG;AACH,SAAS,SAAS,CAAC,GAAW,EAAE,YAAoB;IAClD,OAAO,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,YAAY,CAAC;AAC1C,CAAC;AAED;;GAEG;AACH,SAAS,iBAAiB,CAAC,GAAW;IACpC,OAAO,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC;AACvC,CAAC;AAED;;GAEG;AACH,SAAS,YAAY,CAAC,GAAW,EAAE,YAAoB;IACrD,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC/B,IAAI,CAAC,KAAK;QAAE,OAAO,YAAY,CAAC;IAEhC,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACnC,IAAI,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;QAClB,OAAO,CAAC,IAAI,CAAC,sBAAsB,GAAG,KAAK,KAAK,oBAAoB,YAAY,EAAE,CAAC,CAAC;QACpF,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,SAAS,aAAa,CAAC,GAAW,EAAE,YAAqB;IACvD,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC/B,IAAI,CAAC,KAAK;QAAE,OAAO,YAAY,CAAC;IAEhC,OAAO,KAAK,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC;AACxC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB;IACjC,OAAO;QACL,MAAM,EAAE,iBAAiB,CAAC,aAAa,CAAC;QACxC,UAAU,EAAE,SAAS,CAAC,kBAAkB,EAAE,2BAA2B,CAAC;QACtE,YAAY,EAAE,SAAS,CAAC,mBAAmB,EAAE,aAAa,CAAC;QAC3D,OAAO,EAAE,YAAY,CAAC,cAAc,EAAE,IAAI,CAAC;QAC3C,aAAa,EAAE,YAAY,CAAC,oBAAoB,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"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"}
|