@becrafter/prompt-manager 0.0.15 → 0.0.18
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 +66 -80
- package/app/desktop/main.js +321 -31
- package/app/desktop/package-lock.json +784 -79
- package/app/desktop/package.json +11 -3
- package/package.json +2 -1
- package/packages/admin-ui/admin.html +1 -1
- package/packages/server/api/admin.routes.js +450 -0
- package/packages/server/api/open.routes.js +89 -0
- package/packages/server/app.js +163 -0
- package/packages/server/{mcp.js → mcp/mcp.handler.js} +11 -79
- package/packages/server/mcp/mcp.server.js +82 -0
- package/packages/server/middlewares/auth.middleware.js +34 -0
- package/packages/server/server.js +42 -908
- package/packages/server/{manager.js → services/manager.js} +13 -5
- package/packages/server/{config.js → utils/config.js} +27 -27
- package/packages/server/utils/util.js +356 -0
- package/packages/server/mcpManager.js +0 -205
- /package/packages/server/{logger.js → utils/logger.js} +0 -0
package/README.md
CHANGED
|
@@ -1,17 +1,19 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Prompt Manager
|
|
2
2
|
|
|
3
3
|
[](https://www.npmjs.com/package/@becrafter/prompt-manager)
|
|
4
4
|
[](https://opensource.org/licenses/MIT)
|
|
5
5
|
[](https://nodejs.org/)
|
|
6
6
|
|
|
7
|
-
一个基于
|
|
7
|
+
一个基于MCP协议的Prompt管理服务,支持HTTP流式传输、Web管理界面和桌面应用,可将静态提示词模板转换为可通过API调用的动态服务。
|
|
8
8
|
|
|
9
9
|
## 核心特性
|
|
10
10
|
|
|
11
|
-
- 🛠️
|
|
11
|
+
- 🛠️ **MCP协议支持**:完全兼容模型上下文协议(MCP),可与各种AI客户端集成
|
|
12
|
+
- 🌐 **HTTP流式传输**:基于StreamableHTTP协议优化,提供稳定的长连接支持
|
|
12
13
|
- 📁 **递归扫描**:自动发现子目录中的 prompt 文件
|
|
13
14
|
- ⚙️ **灵活配置**:支持命令行参数和环境变量配置
|
|
14
|
-
- 🖥️ **原生桌面壳**:内置 Electron
|
|
15
|
+
- 🖥️ **原生桌面壳**:内置 Electron 菜单应用,可一键启动/停止服务,并内嵌管理后台
|
|
16
|
+
- 📋 **管理界面**:提供Web管理界面,方便创建、编辑和管理提示词
|
|
15
17
|
|
|
16
18
|
## 快速开始
|
|
17
19
|
|
|
@@ -102,7 +104,7 @@ npm run desktop:build
|
|
|
102
104
|
|
|
103
105
|
### 升级机制
|
|
104
106
|
|
|
105
|
-
菜单中的
|
|
107
|
+
菜单中的 "检查更新" 会:
|
|
106
108
|
|
|
107
109
|
1. 读取当前运行的服务版本(`app.getPath('userData')/prompt-manager/package.json`)
|
|
108
110
|
2. 对比 npm Registry 上的最新版本
|
|
@@ -110,7 +112,7 @@ npm run desktop:build
|
|
|
110
112
|
4. 通过 `npm install --omit=dev` 在沙盒目录中重新安装依赖
|
|
111
113
|
5. 保留示例 `examples/prompts` 目录(若存在),用户自定义数据保存在 `~/.prompt-manager/prompts`,无需额外迁移
|
|
112
114
|
|
|
113
|
-
整个过程无需系统层面的 Node/npm
|
|
115
|
+
整个过程无需系统层面的 Node/npm,真正实现"装上即用"。
|
|
114
116
|
|
|
115
117
|
## 配置选项
|
|
116
118
|
|
|
@@ -130,117 +132,79 @@ npm run desktop:build
|
|
|
130
132
|
| `MCP_SERVER_NAME` | 服务器名称 | `prompt-manager` |
|
|
131
133
|
| `SERVER_PORT` | 服务器端口 | `5621` |
|
|
132
134
|
| `PROMPTS_DIR` | Prompts目录路径 | `~/.prompt-manager/prompts` |
|
|
133
|
-
| `MCP_SERVER_VERSION` | 服务器版本 | `0.0.
|
|
135
|
+
| `MCP_SERVER_VERSION` | 服务器版本 | `0.0.18` |
|
|
134
136
|
| `LOG_LEVEL` | 日志级别 (error, warn, info, debug) | `info` |
|
|
135
137
|
| `MAX_PROMPTS` | 最大prompt数量限制 | `100` |
|
|
136
138
|
| `RECURSIVE_SCAN` | 是否启用递归扫描子目录 | `true` |
|
|
139
|
+
| `ADMIN_ENABLE` | 是否启用管理界面 | `true` |
|
|
140
|
+
| `ADMIN_PATH` | 管理界面路径 | `/admin` |
|
|
141
|
+
| `ADMIN_USERNAME` | 管理员用户名 | `admin` |
|
|
142
|
+
| `ADMIN_PASSWORD` | 管理员密码 | `admin` |
|
|
137
143
|
|
|
138
144
|
> 安装或首次运行时,会自动将 `env.example` 内容写入 `~/.prompt-manager/.env`(如果该文件尚未存在),方便在系统范围内共享配置。
|
|
139
145
|
|
|
140
146
|
## API 接口
|
|
141
147
|
|
|
142
|
-
###
|
|
148
|
+
### MCP协议接口
|
|
143
149
|
|
|
144
|
-
|
|
145
|
-
GET /
|
|
146
|
-
```
|
|
150
|
+
服务器实现了MCP协议,支持以下工具:
|
|
147
151
|
|
|
148
|
-
|
|
152
|
+
- `search_prompts`: 搜索提示词
|
|
153
|
+
- `get_prompt`: 获取指定提示词的完整内容
|
|
154
|
+
- `reload_prompts`: 重新加载所有提示词
|
|
149
155
|
|
|
150
|
-
###
|
|
156
|
+
### Web管理接口
|
|
157
|
+
|
|
158
|
+
#### 获取提示词列表
|
|
151
159
|
|
|
152
160
|
```
|
|
153
|
-
GET /prompts
|
|
161
|
+
GET /prompts[?search=关键词]
|
|
154
162
|
```
|
|
155
163
|
|
|
156
|
-
|
|
164
|
+
返回所有可用的提示词列表,支持搜索功能。
|
|
157
165
|
|
|
158
|
-
|
|
166
|
+
#### 获取单个提示词详情
|
|
159
167
|
|
|
160
168
|
```
|
|
161
|
-
GET /prompts/:name
|
|
169
|
+
GET /api/prompts/:name[?path=文件路径]
|
|
162
170
|
```
|
|
163
171
|
|
|
164
172
|
返回指定名称的提示词详细信息。
|
|
165
173
|
|
|
166
|
-
|
|
174
|
+
#### 创建/更新提示词
|
|
167
175
|
|
|
168
176
|
```
|
|
169
|
-
POST /prompts
|
|
177
|
+
POST /api/prompts
|
|
170
178
|
```
|
|
171
179
|
|
|
172
|
-
|
|
180
|
+
创建或更新提示词文件。
|
|
173
181
|
|
|
174
182
|
请求体示例:
|
|
175
183
|
```json
|
|
176
184
|
{
|
|
177
185
|
"name": "my-prompt",
|
|
178
|
-
"
|
|
179
|
-
"
|
|
180
|
-
{
|
|
181
|
-
"role": "user",
|
|
182
|
-
"content": {
|
|
183
|
-
"text": "这是一个{{参数}}示例"
|
|
184
|
-
}
|
|
185
|
-
}
|
|
186
|
-
],
|
|
187
|
-
"arguments": [
|
|
188
|
-
{
|
|
189
|
-
"name": "参数",
|
|
190
|
-
"description": "示例参数",
|
|
191
|
-
"type": "string",
|
|
192
|
-
"required": true
|
|
193
|
-
}
|
|
194
|
-
]
|
|
186
|
+
"group": "default",
|
|
187
|
+
"yaml": "name: my-prompt\ndescription: 我的自定义提示词\nmessages:\n - role: user\n content:\n text: 这是一个{{参数}}示例\n"
|
|
195
188
|
}
|
|
196
189
|
```
|
|
197
190
|
|
|
198
|
-
|
|
191
|
+
#### 删除提示词
|
|
199
192
|
|
|
200
193
|
```
|
|
201
|
-
|
|
194
|
+
DELETE /api/prompts/:name[?path=文件路径]
|
|
202
195
|
```
|
|
203
196
|
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
请求体格式与创建相同。
|
|
197
|
+
删除指定的提示词文件。
|
|
207
198
|
|
|
208
|
-
|
|
199
|
+
#### 切换提示词启用状态
|
|
209
200
|
|
|
210
201
|
```
|
|
211
|
-
|
|
202
|
+
POST /api/prompts/:name/toggle[?path=文件路径]
|
|
212
203
|
```
|
|
213
204
|
|
|
214
|
-
|
|
205
|
+
切换提示词的启用/禁用状态。
|
|
215
206
|
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
```
|
|
219
|
-
POST /prompts/validate
|
|
220
|
-
```
|
|
221
|
-
|
|
222
|
-
验证提示词YAML格式是否正确。
|
|
223
|
-
|
|
224
|
-
请求体示例:
|
|
225
|
-
```yaml
|
|
226
|
-
yaml: |
|
|
227
|
-
name: test-prompt
|
|
228
|
-
description: 测试提示词
|
|
229
|
-
messages:
|
|
230
|
-
- role: user
|
|
231
|
-
content:
|
|
232
|
-
text: 测试内容
|
|
233
|
-
```
|
|
234
|
-
|
|
235
|
-
### 获取备份列表
|
|
236
|
-
|
|
237
|
-
```
|
|
238
|
-
GET /backups
|
|
239
|
-
```
|
|
240
|
-
|
|
241
|
-
获取所有提示词备份文件列表。
|
|
242
|
-
|
|
243
|
-
### 处理提示词
|
|
207
|
+
#### 处理提示词
|
|
244
208
|
|
|
245
209
|
```
|
|
246
210
|
POST /process
|
|
@@ -259,21 +223,37 @@ POST /process
|
|
|
259
223
|
}
|
|
260
224
|
```
|
|
261
225
|
|
|
262
|
-
|
|
226
|
+
#### 分组管理
|
|
227
|
+
|
|
228
|
+
```
|
|
229
|
+
GET /api/groups
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
获取所有分组列表。
|
|
263
233
|
|
|
264
234
|
```
|
|
265
|
-
|
|
235
|
+
POST /api/groups
|
|
266
236
|
```
|
|
267
237
|
|
|
268
|
-
|
|
238
|
+
创建新分组。
|
|
239
|
+
|
|
240
|
+
```
|
|
241
|
+
PATCH /api/groups/rename
|
|
242
|
+
```
|
|
243
|
+
|
|
244
|
+
重命名分组。
|
|
245
|
+
|
|
246
|
+
```
|
|
247
|
+
PATCH /api/groups/status
|
|
248
|
+
```
|
|
269
249
|
|
|
270
|
-
|
|
250
|
+
更新分组启用状态。
|
|
271
251
|
|
|
272
252
|
```
|
|
273
|
-
|
|
253
|
+
DELETE /api/groups?path=分组路径
|
|
274
254
|
```
|
|
275
255
|
|
|
276
|
-
|
|
256
|
+
删除分组(仅当分组为空时)。
|
|
277
257
|
|
|
278
258
|
## 提示词格式
|
|
279
259
|
|
|
@@ -286,6 +266,12 @@ messages:
|
|
|
286
266
|
- role: user
|
|
287
267
|
content:
|
|
288
268
|
text: 提示词内容,支持 {{参数名}} 格式的参数替换
|
|
269
|
+
arguments:
|
|
270
|
+
- name: 参数名
|
|
271
|
+
description: 参数描述
|
|
272
|
+
type: string|number|boolean
|
|
273
|
+
required: true|false
|
|
274
|
+
enabled: true|false # 是否启用该提示词
|
|
289
275
|
```
|
|
290
276
|
|
|
291
277
|
## 开发
|
|
@@ -323,4 +309,4 @@ npm run dev
|
|
|
323
309
|
|
|
324
310
|
## 许可证
|
|
325
311
|
|
|
326
|
-
MIT License
|
|
312
|
+
MIT License
|