@promptprojectmanager/mcp-server 4.0.3 → 4.1.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 +194 -388
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,511 +1,317 @@
|
|
|
1
1
|
# @promptprojectmanager/mcp-server
|
|
2
2
|
|
|
3
|
-
MCP server that exposes Prompt Project Manager
|
|
3
|
+
MCP server that exposes Prompt Project Manager prompts and tickets through dual interfaces: **Prompts** (slash commands) and **Tools** (AI-discoverable).
|
|
4
4
|
|
|
5
5
|
## Overview
|
|
6
6
|
|
|
7
|
-
`@promptprojectmanager/mcp-server` is a standalone npm package that integrates your Prompt Project Manager workspace with Claude Code via the Model Context Protocol (MCP).
|
|
7
|
+
`@promptprojectmanager/mcp-server` is a standalone npm package that integrates your Prompt Project Manager workspace with Claude Code, Codex CLI, and Gemini CLI via the Model Context Protocol (MCP).
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
2. **Tools Interface** (AI Discovery) - AI assistants can discover and invoke prompts naturally through conversation
|
|
9
|
+
### Two Authentication Modes
|
|
11
10
|
|
|
12
|
-
|
|
11
|
+
| Mode | Env Variable | Scope | Use Case |
|
|
12
|
+
|------|--------------|-------|----------|
|
|
13
|
+
| **API Key** | `PPM_API_KEY` | Full account access | Multi-project workflows, all prompts |
|
|
14
|
+
| **Project Token** | `PPM_PROJECT_TOKEN` | Single project, tickets only | CI/CD, agents, scoped access |
|
|
13
15
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
- 🔐 **Secure Authentication** - Uses API keys from your Prompt Project Manager Settings page
|
|
17
|
-
- 🎯 **Selective Exposure** - Only prompts with "Expose to MCP" enabled appear
|
|
18
|
-
- 🏢 **Workspace Scoping** - Commands namespaced by workspace (e.g., `personal-prompt`, `work-prompt`)
|
|
19
|
-
- 🤖 **Dual Interface** - Both slash commands AND AI-discoverable tools
|
|
20
|
-
- ⚡ **Zero Configuration** - Works out of the box with `npx`
|
|
21
|
-
- 📝 **Flattened Content** - Returns pre-computed prompts with all resources embedded
|
|
22
|
-
- 🔄 **Flexible Caching** - Choose between cached (fast) or lazy loading (always fresh) modes
|
|
23
|
-
|
|
24
|
-
## Installation
|
|
25
|
-
|
|
26
|
-
No installation required! Use `npx` to run the server directly:
|
|
27
|
-
|
|
28
|
-
```bash
|
|
29
|
-
npx @promptprojectmanager/mcp-server
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
## Configuration
|
|
33
|
-
|
|
34
|
-
### Quick Start (Recommended)
|
|
16
|
+
### Two Interfaces
|
|
35
17
|
|
|
36
|
-
**
|
|
18
|
+
1. **Prompts Interface** (Slash Commands) - Explicitly invoke prompts via `/ppm:project:prompt` commands
|
|
19
|
+
2. **Tools Interface** (AI Discovery) - AI assistants can discover and invoke prompts/tickets naturally
|
|
37
20
|
|
|
38
|
-
|
|
39
|
-
2. Scroll to "MCP Server Configuration" section
|
|
40
|
-
3. Select your CLI tool (Claude Code, Codex CLI, or Gemini CLI)
|
|
41
|
-
4. Toggle "Lazy Loading" ON or OFF based on your preference
|
|
42
|
-
5. Click "Copy Configuration" button
|
|
43
|
-
6. Paste the configuration into your CLI's settings file
|
|
44
|
-
|
|
45
|
-
The settings page automatically generates the correct format (JSON or TOML) with your API key pre-filled and `@latest` package versioning. See [Multi-CLI Support](#multi-cli-support) below for details on each CLI tool.
|
|
46
|
-
|
|
47
|
-
### Manual Configuration
|
|
48
|
-
|
|
49
|
-
If you prefer to configure manually:
|
|
50
|
-
|
|
51
|
-
**Step 1: Get Your API Key**
|
|
21
|
+
## Features
|
|
52
22
|
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
23
|
+
- **Dual Authentication** - API keys for full access, project tokens for scoped access
|
|
24
|
+
- **Project Filtering** - Use `--projects` flag to limit scope (API key mode only)
|
|
25
|
+
- **Ticket Management** - Create, update, close tickets via MCP tools
|
|
26
|
+
- **Agent Identity** - Use `PPM_AGENT` to identify which agent is making requests
|
|
27
|
+
- **Selective Exposure** - Only prompts with "Expose to MCP" enabled appear
|
|
28
|
+
- **Zero Configuration** - Works out of the box with `npx`
|
|
29
|
+
- **Flexible Caching** - Choose between cached (fast) or lazy loading (always fresh) modes
|
|
56
30
|
|
|
57
|
-
|
|
31
|
+
## Quick Start
|
|
58
32
|
|
|
59
|
-
|
|
33
|
+
### Option 1: Project Token (Recommended for Agents)
|
|
60
34
|
|
|
61
|
-
|
|
35
|
+
Project tokens are scoped to a single project and provide ticket access. **No `--projects` flag needed** - the token already knows which project it belongs to.
|
|
62
36
|
|
|
63
37
|
```json
|
|
64
38
|
{
|
|
65
39
|
"mcpServers": {
|
|
66
|
-
"
|
|
40
|
+
"ppm": {
|
|
67
41
|
"command": "npx",
|
|
68
42
|
"args": ["@promptprojectmanager/mcp-server@latest"],
|
|
69
43
|
"env": {
|
|
70
|
-
"
|
|
44
|
+
"PPM_PROJECT_TOKEN": "wst_your_token_here"
|
|
71
45
|
}
|
|
72
46
|
}
|
|
73
47
|
}
|
|
74
48
|
}
|
|
75
49
|
```
|
|
76
50
|
|
|
77
|
-
|
|
51
|
+
Get your project token from: Project → Agents → Create/View Agent
|
|
78
52
|
|
|
79
|
-
|
|
53
|
+
### Option 2: API Key (Full Account Access)
|
|
80
54
|
|
|
81
|
-
|
|
82
|
-
[mcp_servers.tpe]
|
|
83
|
-
command = "npx"
|
|
84
|
-
args = ["@promptprojectmanager/mcp-server@latest"]
|
|
85
|
-
|
|
86
|
-
[mcp_servers.tpe.env]
|
|
87
|
-
PPM_API_KEY = "your_api_key_here"
|
|
88
|
-
```
|
|
89
|
-
|
|
90
|
-
#### Gemini CLI (JSON)
|
|
91
|
-
|
|
92
|
-
Add to `~/.gemini/settings.json` in the `mcpServers` object:
|
|
55
|
+
API keys provide access to all projects and prompts. Use `--projects` to filter.
|
|
93
56
|
|
|
94
57
|
```json
|
|
95
58
|
{
|
|
96
59
|
"mcpServers": {
|
|
97
|
-
"
|
|
60
|
+
"ppm": {
|
|
98
61
|
"command": "npx",
|
|
99
|
-
"args": ["@promptprojectmanager/mcp-server@latest"],
|
|
62
|
+
"args": ["@promptprojectmanager/mcp-server@latest", "--projects", "my-project"],
|
|
100
63
|
"env": {
|
|
101
|
-
"PPM_API_KEY": "
|
|
64
|
+
"PPM_API_KEY": "api_key_your_key_here"
|
|
102
65
|
}
|
|
103
66
|
}
|
|
104
67
|
}
|
|
105
68
|
}
|
|
106
69
|
```
|
|
107
70
|
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
Add `--lazy-loading` to the args array for any CLI:
|
|
111
|
-
|
|
112
|
-
```json
|
|
113
|
-
"args": ["@promptprojectmanager/mcp-server@latest", "--lazy-loading"]
|
|
114
|
-
```
|
|
115
|
-
|
|
116
|
-
See [Caching Modes](#caching-modes) below to choose which configuration is right for you.
|
|
117
|
-
|
|
118
|
-
### Step 3: Enable Prompts for MCP
|
|
71
|
+
Get your API key from: Settings → API Keys
|
|
119
72
|
|
|
120
|
-
|
|
121
|
-
2. Check the "Expose to MCP" checkbox in the prompt editor
|
|
122
|
-
3. Save the prompt
|
|
123
|
-
4. Restart Claude Code to refresh available tools
|
|
73
|
+
## Authentication
|
|
124
74
|
|
|
125
|
-
|
|
75
|
+
### Project Token Mode (`PPM_PROJECT_TOKEN`)
|
|
126
76
|
|
|
127
|
-
|
|
77
|
+
Best for: CI/CD pipelines, automated agents, scoped access
|
|
128
78
|
|
|
129
|
-
|
|
79
|
+
- **Scope**: Single project (determined by token)
|
|
80
|
+
- **Access**: Tickets only (prompts not available)
|
|
81
|
+
- **Flag**: `--projects` is **ignored** (token already scoped)
|
|
130
82
|
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
User: /ppm:work-api-design
|
|
135
|
-
User: /ppm:personal-technical-analysis
|
|
83
|
+
```bash
|
|
84
|
+
# Token is already scoped - no --projects needed
|
|
85
|
+
PPM_PROJECT_TOKEN=wst_xxx npx @promptprojectmanager/mcp-server@latest
|
|
136
86
|
```
|
|
137
87
|
|
|
138
|
-
|
|
139
|
-
- Format: `/ppm:workspace-prompt`
|
|
140
|
-
- Example: workspace slug "personal" + prompt slug "code-review" = `/ppm:personal-code-review`
|
|
88
|
+
### API Key Mode (`PPM_API_KEY`)
|
|
141
89
|
|
|
142
|
-
|
|
143
|
-
- MCP protocol requires tool names to use only `[a-zA-Z0-9_-]` characters
|
|
144
|
-
- Hyphens (`-`) are used as separators between workspace and prompt
|
|
145
|
-
- **Folders are NOT included in slash commands** (only used for ZIP download organization)
|
|
90
|
+
Best for: Development, multi-project workflows, full prompt access
|
|
146
91
|
|
|
147
|
-
|
|
92
|
+
- **Scope**: All projects in your account
|
|
93
|
+
- **Access**: Prompts + Tickets
|
|
94
|
+
- **Flag**: Use `--projects` to filter
|
|
148
95
|
|
|
149
|
-
|
|
96
|
+
```bash
|
|
97
|
+
# Access all projects
|
|
98
|
+
PPM_API_KEY=api_key_xxx npx @promptprojectmanager/mcp-server@latest
|
|
150
99
|
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
User: "Help me review this code"
|
|
154
|
-
AI: [Discovers and invokes code-review tool]
|
|
100
|
+
# Filter to specific projects
|
|
101
|
+
PPM_API_KEY=api_key_xxx npx @promptprojectmanager/mcp-server@latest --projects myproject
|
|
155
102
|
|
|
156
|
-
|
|
157
|
-
|
|
103
|
+
# Multiple projects
|
|
104
|
+
PPM_API_KEY=api_key_xxx npx @promptprojectmanager/mcp-server@latest --projects proj1,proj2
|
|
158
105
|
```
|
|
159
106
|
|
|
160
|
-
|
|
161
|
-
- Each prompt appears as a discoverable tool
|
|
162
|
-
- AI reads tool descriptions to match user intent
|
|
163
|
-
- AI invokes the appropriate tool automatically
|
|
164
|
-
- Same flattened content as slash commands
|
|
107
|
+
### Agent Identity (`PPM_AGENT`)
|
|
165
108
|
|
|
166
|
-
|
|
109
|
+
When using API key auth, you can specify which agent identity to use for ticket operations:
|
|
167
110
|
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
**Pattern:** `workspace:prompt`
|
|
173
|
-
|
|
174
|
-
All commands follow this two-part format:
|
|
175
|
-
1. Workspace slug (e.g., `personal`, `work`)
|
|
176
|
-
2. Prompt slug (e.g., `code-review`, `api-design`)
|
|
177
|
-
3. Separated by a colon (`:`)
|
|
178
|
-
|
|
179
|
-
### Examples
|
|
180
|
-
|
|
181
|
-
**Command structure:**
|
|
182
|
-
- `/ppm:personal:code-review` → workspace: `personal`, prompt: `code-review`
|
|
183
|
-
- `/ppm:work:api-design` → workspace: `work`, prompt: `api-design`
|
|
184
|
-
- `/ppm:personal:technical-analysis` → workspace: `personal`, prompt: `technical-analysis`
|
|
185
|
-
|
|
186
|
-
**Character rules:**
|
|
187
|
-
- MCP protocol allows: `[a-zA-Z0-9_:-]`
|
|
188
|
-
- Hierarchy separator: `:` (colon) between workspace and prompt
|
|
189
|
-
- Word separator: `-` (hyphen) within multi-word slugs
|
|
190
|
-
- The `/ppm:` prefix is added by Claude Code (MCP namespace)
|
|
191
|
-
- The actual tool name is `workspace:prompt` (e.g., `personal:code-review`)
|
|
192
|
-
|
|
193
|
-
### Folder Organization
|
|
194
|
-
|
|
195
|
-
**Important:** Folders are NOT included in slash command names.
|
|
196
|
-
|
|
197
|
-
- Folders are used only for ZIP download organization
|
|
198
|
-
- Multiple prompts with the same slug but different folders will have identical slash commands
|
|
199
|
-
- To avoid conflicts, ensure prompt slugs are unique across your entire workspace
|
|
200
|
-
|
|
201
|
-
## Caching Modes
|
|
202
|
-
|
|
203
|
-
The MCP server supports two caching modes to fit different workflows. Choose based on how frequently you update your prompts:
|
|
204
|
-
|
|
205
|
-
### Cached Mode (Default)
|
|
111
|
+
```bash
|
|
112
|
+
PPM_API_KEY=api_key_xxx PPM_AGENT=my-agent npx @promptprojectmanager/mcp-server@latest
|
|
113
|
+
```
|
|
206
114
|
|
|
207
|
-
|
|
208
|
-
- Prompts are fetched **once** when the MCP server starts
|
|
209
|
-
- Tool executions use the cached `flattenedPrompt` content
|
|
210
|
-
- Fast execution with minimal database queries
|
|
115
|
+
This identifies the agent in ticket history and audit logs.
|
|
211
116
|
|
|
212
|
-
|
|
213
|
-
- Have stable, infrequently-changed prompts
|
|
214
|
-
- Want the fastest possible tool execution
|
|
215
|
-
- Prefer minimal network overhead
|
|
216
|
-
- Don't mind restarting Claude Code after editing prompts
|
|
117
|
+
## CLI Arguments
|
|
217
118
|
|
|
218
|
-
|
|
119
|
+
| Argument | Description | API Key | Project Token |
|
|
120
|
+
|----------|-------------|---------|---------------|
|
|
121
|
+
| `--projects`, `-p` | Filter to specific project(s) | ✅ Supported | ❌ Ignored (token scoped) |
|
|
122
|
+
| `--lazy-loading` | Fetch fresh prompts on each call | ✅ Supported | ✅ Supported |
|
|
123
|
+
| `--dev` | Use development Convex deployment | ✅ Supported | ✅ Supported |
|
|
219
124
|
|
|
220
|
-
###
|
|
125
|
+
### Project Filtering Examples
|
|
221
126
|
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
- Falls back to cached version on fetch errors
|
|
127
|
+
```bash
|
|
128
|
+
# Single project
|
|
129
|
+
--projects myproject
|
|
226
130
|
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
- Want changes to take effect immediately without restarts
|
|
230
|
-
- Prefer convenience over maximum performance
|
|
231
|
-
- Have a stable internet connection
|
|
131
|
+
# Multiple projects (comma-separated)
|
|
132
|
+
--projects proj1,proj2,proj3
|
|
232
133
|
|
|
233
|
-
|
|
134
|
+
# Multiple --projects flags
|
|
135
|
+
--projects proj1 --projects proj2
|
|
234
136
|
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
# With lazy loading enabled:
|
|
238
|
-
# 1. Edit prompt in ContextFS web UI
|
|
239
|
-
# 2. Save changes
|
|
240
|
-
# 3. Run tool in Claude Code → sees new content immediately
|
|
241
|
-
# 4. No Claude Code restart required!
|
|
137
|
+
# Short flag
|
|
138
|
+
-p myproject
|
|
242
139
|
```
|
|
243
140
|
|
|
244
|
-
|
|
141
|
+
## Available Tools
|
|
245
142
|
|
|
246
|
-
|
|
143
|
+
### Prompt Tools (API Key Mode Only)
|
|
247
144
|
|
|
248
|
-
|
|
145
|
+
Each prompt with "Expose to MCP" enabled appears as a tool:
|
|
249
146
|
|
|
250
|
-
|
|
147
|
+
- `project_prompt_slug` - Invoke a specific prompt
|
|
148
|
+
- `list_prompts` - List all available prompts
|
|
251
149
|
|
|
252
|
-
|
|
253
|
-
**Format:** JSON
|
|
254
|
-
**Installation:** https://claude.com/claude-code
|
|
150
|
+
### Ticket Tools (Both Modes)
|
|
255
151
|
|
|
256
|
-
|
|
152
|
+
Each project gets ticket management tools:
|
|
257
153
|
|
|
258
|
-
|
|
154
|
+
| Tool | Description |
|
|
155
|
+
|------|-------------|
|
|
156
|
+
| `project_tickets_work` | Get next ticket or open specific ticket |
|
|
157
|
+
| `project_tickets_close` | Mark a ticket as completed |
|
|
158
|
+
| `project_tickets_update` | Append content to a ticket |
|
|
159
|
+
| `project_tickets_create` | Create a new ticket |
|
|
160
|
+
| `project_tickets_list` | List active tickets |
|
|
161
|
+
| `project_tickets_get` | Get a specific ticket |
|
|
162
|
+
| `project_tickets_search` | Search tickets by content |
|
|
259
163
|
|
|
260
|
-
|
|
261
|
-
**Format:** TOML
|
|
262
|
-
**Installation:** https://developers.openai.com/codex/mcp
|
|
164
|
+
### System Tools
|
|
263
165
|
|
|
264
|
-
|
|
166
|
+
| Tool | Description |
|
|
167
|
+
|------|-------------|
|
|
168
|
+
| `system_prompts` | List all available prompts |
|
|
169
|
+
| `system_run_prompt` | Execute a prompt by slug |
|
|
265
170
|
|
|
266
|
-
|
|
171
|
+
## Configuration Examples
|
|
267
172
|
|
|
268
|
-
###
|
|
173
|
+
### Claude Code (JSON)
|
|
269
174
|
|
|
270
|
-
**
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
175
|
+
**With Project Token:**
|
|
176
|
+
```json
|
|
177
|
+
{
|
|
178
|
+
"mcpServers": {
|
|
179
|
+
"ppm": {
|
|
180
|
+
"command": "npx",
|
|
181
|
+
"args": ["@promptprojectmanager/mcp-server@latest"],
|
|
182
|
+
"env": {
|
|
183
|
+
"PPM_PROJECT_TOKEN": "wst_your_token"
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
```
|
|
275
189
|
|
|
276
|
-
**
|
|
190
|
+
**With API Key + Project Filter:**
|
|
191
|
+
```json
|
|
192
|
+
{
|
|
193
|
+
"mcpServers": {
|
|
194
|
+
"ppm": {
|
|
195
|
+
"command": "npx",
|
|
196
|
+
"args": ["@promptprojectmanager/mcp-server@latest", "--projects", "my-project"],
|
|
197
|
+
"env": {
|
|
198
|
+
"PPM_API_KEY": "api_key_xxx"
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
```
|
|
277
204
|
|
|
278
|
-
|
|
205
|
+
**With API Key + Agent Identity:**
|
|
206
|
+
```json
|
|
207
|
+
{
|
|
208
|
+
"mcpServers": {
|
|
209
|
+
"ppm": {
|
|
210
|
+
"command": "npx",
|
|
211
|
+
"args": ["@promptprojectmanager/mcp-server@latest", "--projects", "my-project"],
|
|
212
|
+
"env": {
|
|
213
|
+
"PPM_API_KEY": "api_key_xxx",
|
|
214
|
+
"PPM_AGENT": "claude-code-agent"
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
```
|
|
279
220
|
|
|
280
|
-
|
|
221
|
+
### Codex CLI (TOML)
|
|
281
222
|
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
223
|
+
```toml
|
|
224
|
+
[mcp_servers.ppm]
|
|
225
|
+
command = "npx"
|
|
226
|
+
args = ["@promptprojectmanager/mcp-server@latest"]
|
|
286
227
|
|
|
287
|
-
|
|
228
|
+
[mcp_servers.ppm.env]
|
|
229
|
+
PPM_PROJECT_TOKEN = "wst_your_token"
|
|
230
|
+
```
|
|
288
231
|
|
|
289
|
-
|
|
232
|
+
### Gemini CLI (JSON)
|
|
290
233
|
|
|
291
|
-
|
|
234
|
+
Same format as Claude Code.
|
|
292
235
|
|
|
293
|
-
|
|
236
|
+
## Caching Modes
|
|
294
237
|
|
|
295
|
-
|
|
238
|
+
### Cached Mode (Default)
|
|
296
239
|
|
|
297
|
-
**
|
|
298
|
-
-
|
|
240
|
+
- Prompts fetched **once** at startup
|
|
241
|
+
- Fast execution, minimal network
|
|
242
|
+
- Restart required after editing prompts
|
|
299
243
|
|
|
300
|
-
|
|
244
|
+
### Lazy Loading Mode
|
|
301
245
|
|
|
302
|
-
|
|
303
|
-
# List all available prompts
|
|
304
|
-
User: "Use list_prompts to see what's available"
|
|
246
|
+
Add `--lazy-loading` to args:
|
|
305
247
|
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
User: "Use list_prompts with search 'documentation'"
|
|
248
|
+
```json
|
|
249
|
+
"args": ["@promptprojectmanager/mcp-server@latest", "--lazy-loading"]
|
|
309
250
|
```
|
|
310
251
|
|
|
311
|
-
**
|
|
312
|
-
-
|
|
313
|
-
-
|
|
314
|
-
- Sorts results alphabetically by tool name
|
|
252
|
+
- Prompts fetched **fresh on each invocation**
|
|
253
|
+
- Changes appear immediately
|
|
254
|
+
- ~50-100ms overhead per call
|
|
315
255
|
|
|
316
256
|
## Environment Variables
|
|
317
257
|
|
|
318
258
|
| Variable | Required | Description |
|
|
319
259
|
|----------|----------|-------------|
|
|
320
|
-
| `PPM_API_KEY` |
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
Once configured, your prompts appear as tools in Claude Code:
|
|
325
|
-
|
|
326
|
-
```
|
|
327
|
-
User: "Use the code-reviewer tool to review my changes"
|
|
328
|
-
|
|
329
|
-
Claude Code: [Invokes development/code-reviewer tool]
|
|
330
|
-
Tool Response: [Returns flattened prompt with all embedded resources]
|
|
331
|
-
```
|
|
260
|
+
| `PPM_API_KEY` | One of these | Full account access (prompts + tickets) |
|
|
261
|
+
| `PPM_PROJECT_TOKEN` | required | Scoped project access (tickets only) |
|
|
262
|
+
| `PPM_AGENT` | No | Agent identity for ticket operations (API key mode) |
|
|
263
|
+
| `THEPROMPTEDITOR_API_KEY` | No | Legacy alias for `PPM_API_KEY` |
|
|
332
264
|
|
|
333
265
|
## Troubleshooting
|
|
334
266
|
|
|
335
267
|
### No Tools Available
|
|
336
268
|
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
1. Verify at least one prompt has "Expose to MCP" enabled
|
|
341
|
-
2. Check that your API key is correct in `.mcp.json`
|
|
342
|
-
3. Restart Claude Code to refresh the tool list
|
|
343
|
-
4. Check MCP server logs for authentication errors
|
|
344
|
-
|
|
345
|
-
### Invalid API Key
|
|
346
|
-
|
|
347
|
-
**Problem**: Server fails to start with "Invalid API key" error
|
|
348
|
-
|
|
349
|
-
**Solutions**:
|
|
350
|
-
1. Copy your API key exactly from Settings page
|
|
351
|
-
2. Ensure no extra spaces or quotes around the key
|
|
352
|
-
3. Regenerate your API key if it was recently changed
|
|
353
|
-
4. Verify the key is set in the `PPM_API_KEY` environment variable
|
|
354
|
-
|
|
355
|
-
### Missing Flattened Content
|
|
356
|
-
|
|
357
|
-
**Problem**: Tool execution fails with "no flattened content" error
|
|
358
|
-
|
|
359
|
-
**Solutions**:
|
|
360
|
-
1. Open the affected prompt in ContextFS
|
|
361
|
-
2. Make a minor edit (add a space, then remove it)
|
|
362
|
-
3. Save the prompt to trigger re-flattening
|
|
363
|
-
4. Restart the MCP server
|
|
364
|
-
|
|
365
|
-
### Stale Prompt Content
|
|
269
|
+
1. Verify authentication: `PPM_API_KEY` or `PPM_PROJECT_TOKEN` is set
|
|
270
|
+
2. For prompts: Ensure "Expose to MCP" is enabled
|
|
271
|
+
3. Restart your CLI tool to refresh tools
|
|
366
272
|
|
|
367
|
-
|
|
273
|
+
### Wrong Project Scope
|
|
368
274
|
|
|
369
|
-
**
|
|
370
|
-
|
|
371
|
-
2. **Or restart Claude Code**: If using cached mode, restart Claude Code to refresh the cached prompts
|
|
372
|
-
3. **Verify mode**: Check MCP server logs to see which caching mode is active (look for "Lazy loading: ENABLED" or "DISABLED")
|
|
275
|
+
- **Project token**: Token is pre-scoped, `--projects` is ignored
|
|
276
|
+
- **API key**: Use `--projects` flag to filter
|
|
373
277
|
|
|
374
|
-
|
|
278
|
+
### Stale Content
|
|
375
279
|
|
|
376
|
-
1.
|
|
377
|
-
2.
|
|
378
|
-
3. **Tool Creation**: Builds MCP tool schemas with bundle-aware naming
|
|
379
|
-
4. **Execution**: Returns `flattenedPrompt` content when tools are invoked
|
|
380
|
-
5. **Logging**: Outputs diagnostic info to stderr (visible in Claude Code logs)
|
|
381
|
-
|
|
382
|
-
## Development
|
|
383
|
-
|
|
384
|
-
### Building from Source
|
|
385
|
-
|
|
386
|
-
```bash
|
|
387
|
-
# Clone the repository
|
|
388
|
-
git clone https://github.com/promptprojectmanager/promptprojectmanager
|
|
389
|
-
cd promptprojectmanager/packages/mcp-server
|
|
390
|
-
|
|
391
|
-
# Install dependencies
|
|
392
|
-
npm install
|
|
393
|
-
|
|
394
|
-
# Build the package
|
|
395
|
-
npm run build
|
|
396
|
-
|
|
397
|
-
# Test locally
|
|
398
|
-
npm link
|
|
399
|
-
PPM_API_KEY=your_key npx @promptprojectmanager/mcp-server
|
|
400
|
-
```
|
|
401
|
-
|
|
402
|
-
### Package Structure
|
|
403
|
-
|
|
404
|
-
```
|
|
405
|
-
packages/mcp-server/
|
|
406
|
-
├── src/
|
|
407
|
-
│ ├── index.ts # CLI entry point with argument parsing
|
|
408
|
-
│ ├── server.ts # MCP server logic and tool registration
|
|
409
|
-
│ ├── convex-client.ts # Convex HTTP client initialization
|
|
410
|
-
│ ├── tool-builder.ts # Tool naming and schema generation
|
|
411
|
-
│ └── types.ts # TypeScript type definitions
|
|
412
|
-
├── dist/ # Compiled output (generated)
|
|
413
|
-
├── package.json
|
|
414
|
-
├── tsconfig.json
|
|
415
|
-
├── tsup.config.ts # Build configuration
|
|
416
|
-
└── README.md
|
|
417
|
-
```
|
|
280
|
+
1. Enable `--lazy-loading` for immediate updates
|
|
281
|
+
2. Or restart CLI tool to refresh cache
|
|
418
282
|
|
|
419
283
|
## Version History
|
|
420
284
|
|
|
421
|
-
###
|
|
422
|
-
|
|
423
|
-
**Bug Fixes:**
|
|
424
|
-
- Fixed field name mismatch (`folderPath` vs `folder`) preventing proper data flow from backend
|
|
425
|
-
- Removed folder-based command scoping (folders only used for ZIP downloads now)
|
|
426
|
-
- Simplified to clean `workspace-prompt` format for all slash commands
|
|
427
|
-
|
|
428
|
-
**Documentation Updates:**
|
|
429
|
-
- Clarified that folders are NOT included in slash command names
|
|
430
|
-
- Updated all examples to show simple `workspace-prompt` format
|
|
431
|
-
- Added warning about slug uniqueness requirement across workspace
|
|
432
|
-
|
|
433
|
-
**Impact:**
|
|
434
|
-
- Simple, predictable command names
|
|
435
|
-
- No breaking changes for existing users (folder scoping never actually worked)
|
|
436
|
-
|
|
437
|
-
### 2.0.2 (2025-11-06) - Character Sanitization Fix (DEPRECATED)
|
|
438
|
-
|
|
439
|
-
**Note:** Folder-based scoping was never functional due to field name bug. See v2.0.6 for correct implementation.
|
|
440
|
-
|
|
441
|
-
- Attempted to fix period (`.`) handling in folder paths
|
|
442
|
-
- Example: `.claude/commands` → `claude-commands`
|
|
443
|
-
|
|
444
|
-
### 2.0.1 (2025-11-06) - MCP Validation Fix (DEPRECATED)
|
|
445
|
-
|
|
446
|
-
**Note:** Folder-based scoping was never functional due to field name bug. See v2.0.6 for correct implementation.
|
|
447
|
-
|
|
448
|
-
- Changed separators for MCP protocol compliance: colon (`:`) → underscore (`_`), slash (`/`) → hyphen (`-`)
|
|
449
|
-
- Tool name pattern: `[a-zA-Z0-9_-]`
|
|
450
|
-
|
|
451
|
-
### 2.0.0 (2025-11-06) - Dual Interface Release (DEPRECATED)
|
|
452
|
-
|
|
453
|
-
**Note:** Folder-based scoping was never functional due to field name bug. See v2.0.6 for correct implementation.
|
|
454
|
-
|
|
455
|
-
**Working Feature:**
|
|
456
|
-
- **Dual Interface Architecture** - Added Tools interface alongside Prompts interface
|
|
457
|
-
- Each prompt appears as both a slash command AND an AI-discoverable tool
|
|
285
|
+
### 4.1.0 (2025-01-15) - Documentation Update
|
|
458
286
|
|
|
459
|
-
**
|
|
460
|
-
-
|
|
461
|
-
-
|
|
287
|
+
**Documentation:**
|
|
288
|
+
- Added comprehensive documentation for project token authentication
|
|
289
|
+
- Documented `--projects` flag behavior (ignored for project tokens)
|
|
290
|
+
- Added ticket tools reference
|
|
291
|
+
- Added `PPM_AGENT` environment variable documentation
|
|
292
|
+
- Updated examples for both auth modes
|
|
462
293
|
|
|
463
|
-
|
|
464
|
-
- **Breaking Change**: Namespace shortened from `theprompteditor` to `ppm`
|
|
465
|
-
- Users must update `.mcp.json` server key to `"ppm"`
|
|
466
|
-
- All slash commands now use `/ppm:workspace:prompt` format
|
|
467
|
-
- Migration: One-line config change, see README for details
|
|
294
|
+
**No Code Changes** - Server already handled both auth modes correctly.
|
|
468
295
|
|
|
469
|
-
###
|
|
470
|
-
- **Breaking Change**: Removed `ppm:` prefix - tools now appear as `promptprojectmanager:workspace:prompt`
|
|
471
|
-
- Simplified naming pattern to avoid double prefixing with MCP server name
|
|
296
|
+
### 4.0.3 (2025-01-08) - Prompt Folders
|
|
472
297
|
|
|
473
|
-
|
|
474
|
-
- **Breaking Change**: Environment variable renamed from `CONTEXTFS_API_KEY` to `PPM_API_KEY`
|
|
475
|
-
- Updated all documentation and error messages with new branding
|
|
298
|
+
- Added prompt folder support for organization
|
|
476
299
|
|
|
477
|
-
###
|
|
478
|
-
- **Breaking Change**: Tool naming pattern changed from `bundle/prompt` to workspace-scoped format
|
|
479
|
-
- **New Feature**: Workspace scoping - prompts are now namespaced by workspace
|
|
480
|
-
- Folders are now ignored in tool names (UI organization only)
|
|
481
|
-
- Fixed lazy loading to match prompts by both slug AND workspace slug
|
|
482
|
-
- Backend now includes workspace metadata in MCP prompt responses
|
|
483
|
-
- Updated Convex backend URLs to current deployments
|
|
300
|
+
### 4.0.0 (2024-12-XX) - Project Tokens & Tickets
|
|
484
301
|
|
|
485
|
-
|
|
486
|
-
-
|
|
487
|
-
-
|
|
488
|
-
-
|
|
489
|
-
- Enhanced Settings page UI with two-option configuration
|
|
490
|
-
- Updated documentation with user-centric caching mode guidance
|
|
302
|
+
- Added `PPM_PROJECT_TOKEN` authentication mode
|
|
303
|
+
- Added ticket management tools per project
|
|
304
|
+
- Added `--projects` flag for API key filtering
|
|
305
|
+
- Added `PPM_AGENT` for agent identity
|
|
491
306
|
|
|
492
|
-
###
|
|
493
|
-
- Documentation improvements
|
|
494
|
-
- Bug fixes
|
|
307
|
+
### 3.x - Earlier Versions
|
|
495
308
|
|
|
496
|
-
|
|
497
|
-
- Initial release
|
|
498
|
-
- Production and development deployment support
|
|
499
|
-
- Secure API key authentication
|
|
500
|
-
- Bundle-aware tool naming
|
|
501
|
-
- Flattened prompt execution
|
|
502
|
-
- Comprehensive error handling
|
|
309
|
+
See git history for earlier changelog.
|
|
503
310
|
|
|
504
311
|
## Support
|
|
505
312
|
|
|
506
|
-
- **Issues**: https://github.com/
|
|
507
|
-
- **
|
|
508
|
-
- **Email**: support@contextfs.com
|
|
313
|
+
- **Issues**: https://github.com/promptprojectmanager/promptprojectmanager/issues
|
|
314
|
+
- **Website**: https://promptprojectmanager.com
|
|
509
315
|
|
|
510
316
|
## License
|
|
511
317
|
|
|
@@ -513,4 +319,4 @@ MIT License - See LICENSE file for details
|
|
|
513
319
|
|
|
514
320
|
---
|
|
515
321
|
|
|
516
|
-
**Made with ❤️ by the
|
|
322
|
+
**Made with ❤️ by the Prompt Project Manager team**
|
package/package.json
CHANGED