mcp-perforce-server 2.1.1 → 3.0.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/LICENSE +20 -20
- package/MCP_CONFIG_EXAMPLES.md +73 -82
- package/README.md +116 -31
- package/dist/p4/config.d.ts.map +1 -1
- package/dist/p4/config.js +25 -22
- package/dist/p4/config.js.map +1 -1
- package/dist/p4/parse.d.ts +18 -2
- package/dist/p4/parse.d.ts.map +1 -1
- package/dist/p4/parse.js +162 -1
- package/dist/p4/parse.js.map +1 -1
- package/dist/server.d.ts +17 -0
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +524 -46
- package/dist/server.js.map +1 -1
- package/dist/tools/basic.d.ts +41 -0
- package/dist/tools/basic.d.ts.map +1 -1
- package/dist/tools/basic.js +285 -0
- package/dist/tools/basic.js.map +1 -1
- package/dist/tools/changelist.d.ts +2 -0
- package/dist/tools/changelist.d.ts.map +1 -1
- package/dist/tools/changelist.js +19 -1
- package/dist/tools/changelist.js.map +1 -1
- package/dist/tools/index.d.ts +2 -1
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +11 -1
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/workflows.d.ts +40 -0
- package/dist/tools/workflows.d.ts.map +1 -0
- package/dist/tools/workflows.js +475 -0
- package/dist/tools/workflows.js.map +1 -0
- package/package.json +114 -114
package/LICENSE
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
MIT License
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2026 iPraBhu
|
|
4
|
-
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
-
in the Software without restriction, including without limitation the rights
|
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
-
furnished to do so, subject to the following conditions:
|
|
11
|
-
|
|
12
|
-
The above copyright notice and this permission notice shall be included in all
|
|
13
|
-
copies or substantial portions of the Software.
|
|
14
|
-
|
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 iPraBhu
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
21
|
SOFTWARE.
|
package/MCP_CONFIG_EXAMPLES.md
CHANGED
|
@@ -1,34 +1,52 @@
|
|
|
1
1
|
# MCP Perforce Server Configuration Examples
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
All examples in this document use the default safe profile: read-only enabled and delete disabled.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
## Client Config Fields
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
7
|
+
| Field | Required | Example | Description |
|
|
8
|
+
|---|---|---|---|
|
|
9
|
+
| `command` | Yes | `"mcp-perforce-server"` | Executable to start the MCP server. |
|
|
10
|
+
| `args` | No | `[]` or `["/path/to/dist/server.js"]` | Command arguments (use for local build path). |
|
|
11
|
+
| `env` | No | `{ "P4_READONLY_MODE": "true" }` | Server environment variables. |
|
|
12
|
+
| `alwaysAllow` | Client-specific | `["p4.*"]` or `true` | Auto-approve tool calls to reduce prompts. |
|
|
13
|
+
| `disabled` | Client-specific | `false` | Enables/disables the server entry. |
|
|
11
14
|
|
|
12
|
-
## Authentication
|
|
15
|
+
## Authentication Options
|
|
13
16
|
|
|
14
|
-
|
|
17
|
+
| Method | Recommended | How it works |
|
|
18
|
+
|---|---|---|
|
|
19
|
+
| `.p4config` file | Yes | Place Perforce variables in a `.p4config` file in your project/workspace root. |
|
|
20
|
+
| MCP `env` variables | Optional | Put Perforce variables directly in the MCP server config JSON. |
|
|
15
21
|
|
|
16
|
-
|
|
17
|
-
```
|
|
18
|
-
P4PORT=perforce-server:1666
|
|
19
|
-
P4USER=your-username
|
|
20
|
-
P4CLIENT=your-workspace-name
|
|
21
|
-
P4PASSWD=your-password
|
|
22
|
-
```
|
|
22
|
+
`.p4config` example:
|
|
23
23
|
|
|
24
|
-
|
|
24
|
+
```ini
|
|
25
|
+
P4PORT=perforce-server:1666
|
|
26
|
+
P4USER=your-username
|
|
27
|
+
P4CLIENT=your-workspace-name
|
|
28
|
+
P4PASSWD=your-password
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## Environment Variables Used In Examples
|
|
25
32
|
|
|
26
|
-
|
|
33
|
+
| Variable | Example Value | Default | Purpose |
|
|
34
|
+
|---|---|---|---|
|
|
35
|
+
| `P4_READONLY_MODE` | `"true"` | `true` | Keeps server in read-only mode. |
|
|
36
|
+
| `P4_DISABLE_DELETE` | `"true"` | `true` | Keeps delete operations disabled. |
|
|
37
|
+
| `LOG_LEVEL` | `"error"` | `warn` | Keeps console output minimal. |
|
|
38
|
+
| `P4PORT` | `"perforce-server:1666"` | unset | Perforce server address (required if not in `.p4config`). |
|
|
39
|
+
| `P4USER` | `"your-username"` | unset | Perforce user (required if not in `.p4config`). |
|
|
40
|
+
| `P4CLIENT` | `"your-workspace-name"` | unset | Perforce client/workspace (required if not in `.p4config`). |
|
|
41
|
+
| `P4PASSWD` | `"your-password"` | unset | Password/ticket (optional depending on server auth). |
|
|
42
|
+
| `P4CHARSET` | `"utf8"` | unset | Optional Perforce charset. |
|
|
43
|
+
|
|
44
|
+
For the complete server configuration table (all supported env vars), see [README.md](README.md#server-configuration-reference).
|
|
27
45
|
|
|
28
46
|
## VS Code with Claude Dev/Cline
|
|
29
47
|
|
|
30
|
-
### Option 1: Using
|
|
31
|
-
|
|
48
|
+
### Option 1: Using `.p4config` (Recommended)
|
|
49
|
+
|
|
32
50
|
```json
|
|
33
51
|
{
|
|
34
52
|
"mcpServers": {
|
|
@@ -36,7 +54,7 @@ Create a `.p4config` file in your project root, then:
|
|
|
36
54
|
"command": "mcp-perforce-server",
|
|
37
55
|
"args": [],
|
|
38
56
|
"env": {
|
|
39
|
-
"P4_READONLY_MODE": "
|
|
57
|
+
"P4_READONLY_MODE": "true",
|
|
40
58
|
"P4_DISABLE_DELETE": "true",
|
|
41
59
|
"LOG_LEVEL": "error"
|
|
42
60
|
},
|
|
@@ -47,7 +65,8 @@ Create a `.p4config` file in your project root, then:
|
|
|
47
65
|
}
|
|
48
66
|
```
|
|
49
67
|
|
|
50
|
-
### Option 2: Direct
|
|
68
|
+
### Option 2: Direct MCP Env Configuration
|
|
69
|
+
|
|
51
70
|
```json
|
|
52
71
|
{
|
|
53
72
|
"mcpServers": {
|
|
@@ -60,7 +79,7 @@ Create a `.p4config` file in your project root, then:
|
|
|
60
79
|
"P4CLIENT": "your-workspace-name",
|
|
61
80
|
"P4PASSWD": "your-password",
|
|
62
81
|
"P4CHARSET": "utf8",
|
|
63
|
-
"P4_READONLY_MODE": "
|
|
82
|
+
"P4_READONLY_MODE": "true",
|
|
64
83
|
"P4_DISABLE_DELETE": "true",
|
|
65
84
|
"LOG_LEVEL": "error"
|
|
66
85
|
},
|
|
@@ -73,7 +92,8 @@ Create a `.p4config` file in your project root, then:
|
|
|
73
92
|
|
|
74
93
|
## Cursor IDE
|
|
75
94
|
|
|
76
|
-
### Option 1: Using
|
|
95
|
+
### Option 1: Using `.p4config` (Recommended)
|
|
96
|
+
|
|
77
97
|
```json
|
|
78
98
|
{
|
|
79
99
|
"mcp": {
|
|
@@ -82,7 +102,7 @@ Create a `.p4config` file in your project root, then:
|
|
|
82
102
|
"command": "mcp-perforce-server",
|
|
83
103
|
"args": [],
|
|
84
104
|
"env": {
|
|
85
|
-
"P4_READONLY_MODE": "
|
|
105
|
+
"P4_READONLY_MODE": "true",
|
|
86
106
|
"P4_DISABLE_DELETE": "true",
|
|
87
107
|
"LOG_LEVEL": "error"
|
|
88
108
|
},
|
|
@@ -93,7 +113,8 @@ Create a `.p4config` file in your project root, then:
|
|
|
93
113
|
}
|
|
94
114
|
```
|
|
95
115
|
|
|
96
|
-
### Option 2: Direct
|
|
116
|
+
### Option 2: Direct MCP Env Configuration
|
|
117
|
+
|
|
97
118
|
```json
|
|
98
119
|
{
|
|
99
120
|
"mcp": {
|
|
@@ -103,10 +124,10 @@ Create a `.p4config` file in your project root, then:
|
|
|
103
124
|
"args": [],
|
|
104
125
|
"env": {
|
|
105
126
|
"P4PORT": "perforce-server:1666",
|
|
106
|
-
"P4USER": "your-username",
|
|
127
|
+
"P4USER": "your-username",
|
|
107
128
|
"P4CLIENT": "your-workspace-name",
|
|
108
129
|
"P4PASSWD": "your-password",
|
|
109
|
-
"P4_READONLY_MODE": "
|
|
130
|
+
"P4_READONLY_MODE": "true",
|
|
110
131
|
"P4_DISABLE_DELETE": "true",
|
|
111
132
|
"LOG_LEVEL": "error"
|
|
112
133
|
},
|
|
@@ -119,10 +140,15 @@ Create a `.p4config` file in your project root, then:
|
|
|
119
140
|
|
|
120
141
|
## Claude Desktop
|
|
121
142
|
|
|
122
|
-
|
|
123
|
-
|
|
143
|
+
Config file paths:
|
|
144
|
+
|
|
145
|
+
| Platform | Path |
|
|
146
|
+
|---|---|
|
|
147
|
+
| macOS | `~/Library/Application Support/Claude/claude_desktop_config.json` |
|
|
148
|
+
| Windows | `%APPDATA%\Claude\claude_desktop_config.json` |
|
|
149
|
+
|
|
150
|
+
### Option 1: Using `.p4config` (Recommended)
|
|
124
151
|
|
|
125
|
-
### Option 1: Using .p4config file (Recommended)
|
|
126
152
|
```json
|
|
127
153
|
{
|
|
128
154
|
"mcpServers": {
|
|
@@ -130,7 +156,7 @@ Create a `.p4config` file in your project root, then:
|
|
|
130
156
|
"command": "mcp-perforce-server",
|
|
131
157
|
"args": [],
|
|
132
158
|
"env": {
|
|
133
|
-
"P4_READONLY_MODE": "
|
|
159
|
+
"P4_READONLY_MODE": "true",
|
|
134
160
|
"P4_DISABLE_DELETE": "true",
|
|
135
161
|
"LOG_LEVEL": "error"
|
|
136
162
|
},
|
|
@@ -140,7 +166,8 @@ Create a `.p4config` file in your project root, then:
|
|
|
140
166
|
}
|
|
141
167
|
```
|
|
142
168
|
|
|
143
|
-
### Option 2: Direct
|
|
169
|
+
### Option 2: Direct MCP Env Configuration
|
|
170
|
+
|
|
144
171
|
```json
|
|
145
172
|
{
|
|
146
173
|
"mcpServers": {
|
|
@@ -150,8 +177,8 @@ Create a `.p4config` file in your project root, then:
|
|
|
150
177
|
"env": {
|
|
151
178
|
"P4PORT": "perforce-server:1666",
|
|
152
179
|
"P4USER": "your-username",
|
|
153
|
-
"P4CLIENT": "your-workspace-name",
|
|
154
|
-
"P4_READONLY_MODE": "
|
|
180
|
+
"P4CLIENT": "your-workspace-name",
|
|
181
|
+
"P4_READONLY_MODE": "true",
|
|
155
182
|
"P4_DISABLE_DELETE": "true",
|
|
156
183
|
"LOG_LEVEL": "error"
|
|
157
184
|
},
|
|
@@ -161,9 +188,9 @@ Create a `.p4config` file in your project root, then:
|
|
|
161
188
|
}
|
|
162
189
|
```
|
|
163
190
|
|
|
164
|
-
## Local Development Setup (
|
|
191
|
+
## Local Development Setup (If Not Globally Installed)
|
|
165
192
|
|
|
166
|
-
Replace
|
|
193
|
+
Replace `command` with `node` and point `args` at your built server:
|
|
167
194
|
|
|
168
195
|
```json
|
|
169
196
|
{
|
|
@@ -172,52 +199,16 @@ Replace the "command" field with the full path to your built server:
|
|
|
172
199
|
}
|
|
173
200
|
```
|
|
174
201
|
|
|
175
|
-
## Safety
|
|
202
|
+
## Safety Profile Used In This Document
|
|
176
203
|
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
"env": {
|
|
181
|
-
"P4_READONLY_MODE": "true",
|
|
182
|
-
"P4_DISABLE_DELETE": "true"
|
|
183
|
-
}
|
|
184
|
-
}
|
|
185
|
-
```
|
|
186
|
-
|
|
187
|
-
### Write-enabled, Delete Protected
|
|
188
|
-
```json
|
|
189
|
-
{
|
|
190
|
-
"env": {
|
|
191
|
-
"P4_READONLY_MODE": "false",
|
|
192
|
-
"P4_DISABLE_DELETE": "true"
|
|
193
|
-
}
|
|
194
|
-
}
|
|
195
|
-
```
|
|
204
|
+
| Profile | `P4_READONLY_MODE` | `P4_DISABLE_DELETE` | Behavior |
|
|
205
|
+
|---|---|---|---|
|
|
206
|
+
| Default safe profile | `true` | `true` | Read-only; write tools and delete operations blocked by default. |
|
|
196
207
|
|
|
197
|
-
##
|
|
208
|
+
## Troubleshooting
|
|
198
209
|
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
### Security Levels
|
|
206
|
-
- **Safe**: `P4_READONLY_MODE=true, P4_DISABLE_DELETE=true` (read-only)
|
|
207
|
-
- **Recommended**: `P4_READONLY_MODE=false, P4_DISABLE_DELETE=true` (write, no delete)
|
|
208
|
-
- **Full Access**: `P4_READONLY_MODE=false, P4_DISABLE_DELETE=false` (use with caution)
|
|
209
|
-
|
|
210
|
-
### Troubleshooting
|
|
211
|
-
- If commands still show approval prompts, ensure `alwaysAllow` is configured
|
|
212
|
-
- If you see terminal output, set `LOG_LEVEL` to `"error"`
|
|
213
|
-
- Commands execute silently in the background without terminal windows
|
|
214
|
-
|
|
215
|
-
### Full Access (Use with Caution)
|
|
216
|
-
```json
|
|
217
|
-
{
|
|
218
|
-
"env": {
|
|
219
|
-
"P4_READONLY_MODE": "false",
|
|
220
|
-
"P4_DISABLE_DELETE": "false"
|
|
221
|
-
}
|
|
222
|
-
}
|
|
223
|
-
```
|
|
210
|
+
| Symptom | Check |
|
|
211
|
+
|---|---|
|
|
212
|
+
| Approval prompts still appear | Ensure `alwaysAllow` is configured for your client. |
|
|
213
|
+
| Too much terminal output | Set `LOG_LEVEL` to `"error"`. |
|
|
214
|
+
| Perforce auth/config errors | Verify `P4PORT`, `P4USER`, `P4CLIENT` are set via `.p4config` or MCP `env`. |
|
package/README.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
# MCP Perforce Server
|
|
2
2
|
|
|
3
3
|
[](https://www.npmjs.com/package/mcp-perforce-server)
|
|
4
4
|
[](https://opensource.org/licenses/MIT)
|
|
@@ -9,6 +9,21 @@ MCP server for Perforce (P4) with safe defaults, fast execution, and structured
|
|
|
9
9
|
|
|
10
10
|
> Developed with vibe coding for practical Perforce automation workflows.
|
|
11
11
|
|
|
12
|
+
New to MCP servers? See [What is MCP (Model Context Protocol)?](https://adevguide.com/ai-engineering/llm-agents/what-is-mcp-model-context-protocol/).
|
|
13
|
+
|
|
14
|
+
## Workflow Speed
|
|
15
|
+
|
|
16
|
+
This server includes composite tools that combine multiple Perforce calls into one request so review and sync workflows complete faster with fewer MCP round trips.
|
|
17
|
+
|
|
18
|
+
- `p4.review.bundle`: pending review changelists with optional details and reviewers in one call
|
|
19
|
+
- `p4.change.inspect`: changelist inspection bundle (`describe` + `fixes` + `reviews` + optional diff + optional `filelog`)
|
|
20
|
+
- `p4.path.synccheck`: branch/path sync drift analysis (`interchanges` + optional `integrated`)
|
|
21
|
+
|
|
22
|
+
To return actual changelist diff content via MCP:
|
|
23
|
+
|
|
24
|
+
- `p4.describe` with `includeDiff=true` (optional `diffFormat`: `u`, `c`, `n`, `s`)
|
|
25
|
+
- `p4.change.inspect` with `includeDiff=true`
|
|
26
|
+
|
|
12
27
|
## Install
|
|
13
28
|
|
|
14
29
|
```bash
|
|
@@ -18,9 +33,7 @@ npm install -g mcp-perforce-server
|
|
|
18
33
|
## Quick Start
|
|
19
34
|
|
|
20
35
|
1. Make sure `p4` is installed and available in `PATH`.
|
|
21
|
-
2. Configure Perforce credentials using either
|
|
22
|
-
- `.p4config` in your workspace/project root, or
|
|
23
|
-
- MCP `env` variables.
|
|
36
|
+
2. Configure Perforce credentials using either `.p4config` in your workspace/project root, or MCP `env` variables.
|
|
24
37
|
3. Add MCP server config in your IDE/client.
|
|
25
38
|
|
|
26
39
|
### Example `.p4config`
|
|
@@ -32,7 +45,32 @@ P4CLIENT=your-workspace-name
|
|
|
32
45
|
P4PASSWD=your-password
|
|
33
46
|
```
|
|
34
47
|
|
|
35
|
-
### Global Install MCP Config
|
|
48
|
+
### Global Install MCP Config (Default Safe Profile)
|
|
49
|
+
|
|
50
|
+
```json
|
|
51
|
+
{
|
|
52
|
+
"mcpServers": {
|
|
53
|
+
"perforce": {
|
|
54
|
+
"command": "mcp-perforce-server"
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
### Local Repo MCP Config (Default Safe Profile)
|
|
61
|
+
|
|
62
|
+
```json
|
|
63
|
+
{
|
|
64
|
+
"mcpServers": {
|
|
65
|
+
"perforce": {
|
|
66
|
+
"command": "node",
|
|
67
|
+
"args": ["/absolute/path/to/mcp-perforce-server/dist/server.js"]
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
### MCP Config (Default Safe Profile + Credentials in `env`)
|
|
36
74
|
|
|
37
75
|
```json
|
|
38
76
|
{
|
|
@@ -40,25 +78,27 @@ P4PASSWD=your-password
|
|
|
40
78
|
"perforce": {
|
|
41
79
|
"command": "mcp-perforce-server",
|
|
42
80
|
"env": {
|
|
43
|
-
"
|
|
44
|
-
"
|
|
45
|
-
"
|
|
81
|
+
"P4PORT": "ssl:perforce.example.com:1666",
|
|
82
|
+
"P4USER": "your-username",
|
|
83
|
+
"P4CLIENT": "your-workspace-name",
|
|
84
|
+
"P4PASSWD": "your-password-or-ticket"
|
|
46
85
|
}
|
|
47
86
|
}
|
|
48
87
|
}
|
|
49
88
|
}
|
|
50
89
|
```
|
|
51
90
|
|
|
52
|
-
|
|
91
|
+
Defaults are already safe: `P4_READONLY_MODE=true` and `P4_DISABLE_DELETE=true` unless explicitly set to `false`.
|
|
92
|
+
|
|
93
|
+
If you want to pin these explicitly in your client config:
|
|
53
94
|
|
|
54
95
|
```json
|
|
55
96
|
{
|
|
56
97
|
"mcpServers": {
|
|
57
98
|
"perforce": {
|
|
58
|
-
"command": "
|
|
59
|
-
"args": ["/absolute/path/to/mcp-perforce-server/dist/server.js"],
|
|
99
|
+
"command": "mcp-perforce-server",
|
|
60
100
|
"env": {
|
|
61
|
-
"P4_READONLY_MODE": "
|
|
101
|
+
"P4_READONLY_MODE": "true",
|
|
62
102
|
"P4_DISABLE_DELETE": "true",
|
|
63
103
|
"LOG_LEVEL": "error"
|
|
64
104
|
}
|
|
@@ -80,28 +120,76 @@ Windows `args` example:
|
|
|
80
120
|
}
|
|
81
121
|
```
|
|
82
122
|
|
|
83
|
-
##
|
|
123
|
+
## Default Access Model
|
|
124
|
+
|
|
125
|
+
| Setting | Default | Effect |
|
|
126
|
+
|---|---|---|
|
|
127
|
+
| `P4_READONLY_MODE` | `true` | Blocks all write-capable tools. |
|
|
128
|
+
| `P4_DISABLE_DELETE` | `true` | Blocks `p4.delete` even when write mode is enabled. |
|
|
129
|
+
|
|
130
|
+
Write-capable tools blocked when `P4_READONLY_MODE=true`:
|
|
84
131
|
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
132
|
+
| Tool |
|
|
133
|
+
|---|
|
|
134
|
+
| `p4.add`, `p4.edit`, `p4.delete`, `p4.revert`, `p4.sync` |
|
|
135
|
+
| `p4.changelist.create`, `p4.changelist.update`, `p4.changelist.submit`, `p4.submit` |
|
|
136
|
+
| `p4.resolve`, `p4.shelve`, `p4.unshelve` |
|
|
137
|
+
| `p4.copy`, `p4.move`, `p4.integrate`, `p4.merge` |
|
|
88
138
|
|
|
89
|
-
##
|
|
139
|
+
## Server Configuration Reference
|
|
90
140
|
|
|
91
|
-
|
|
141
|
+
### Runtime, Safety, and Performance
|
|
142
|
+
|
|
143
|
+
| Variable | Default | Description |
|
|
144
|
+
|---|---|---|
|
|
145
|
+
| `P4_READONLY_MODE` | `true` | Read-only by default. Set to `false` to enable write-capable tools. |
|
|
146
|
+
| `P4_DISABLE_DELETE` | `true` | Delete operations are disabled by default. Set to `false` to allow `p4.delete`. |
|
|
147
|
+
| `P4_PATH` | `p4` / `p4.exe` | Custom path to Perforce CLI executable. |
|
|
148
|
+
| `P4CONFIG` | `.p4config` | `.p4config` file name used for upward discovery. |
|
|
149
|
+
| `LOG_LEVEL` | `warn` | Logging level: `error`, `warn`, `info`, `debug`. |
|
|
150
|
+
| `P4_PRETTY_JSON` | `false` | Pretty-print JSON responses when `true`. |
|
|
151
|
+
| `P4_PERFORMANCE_MODE` | `fast` | Preset: `fast`, `balanced`, `secure`. |
|
|
152
|
+
| `P4_TIMEOUT_MS` | `5000` / `10000` / `15000` | Command timeout in ms (`fast` / `balanced` / `secure`). |
|
|
153
|
+
| `P4_CONFIG_CACHE_TTL` | `600000` / `300000` / `300000` | `.p4config` cache TTL in ms (`fast` / `balanced` / `secure`). |
|
|
154
|
+
| `P4_RESPONSE_CACHE` | `true` | Enable/disable read-result response cache. |
|
|
155
|
+
| `P4_RESPONSE_CACHE_TTL_MS` | `5000` / `3000` / `1000` | Response cache TTL in ms (`fast` / `balanced` / `secure`). |
|
|
156
|
+
| `P4_RESPONSE_CACHE_TTL_MAP` | unset | Per-tool cache TTL overrides (for example `p4.info=30000,p4.review=2000`). |
|
|
157
|
+
| `P4_RESPONSE_CACHE_MAX_ENTRIES` | `400` / `250` / `100` | Max cached read responses (`fast` / `balanced` / `secure`). |
|
|
158
|
+
| `P4_NEGATIVE_CACHE` | `true` | Cache predictable read errors for a short TTL to avoid repeated retries. |
|
|
159
|
+
| `P4_NEGATIVE_CACHE_TTL_MS` | `5000` | Negative-cache TTL in milliseconds. |
|
|
160
|
+
| `P4_WORKFLOW_CONCURRENCY` | `6` | Max concurrent subcalls used by composite workflow tools. |
|
|
161
|
+
| `P4_LOG_PERF_METRICS` | `false` | Enable periodic performance snapshots (cache hit rate, p50/p95 latency, subcall totals). |
|
|
162
|
+
| `P4_LOG_PERF_METRICS_INTERVAL_MS` | `60000` | Interval for performance snapshot logs in milliseconds. |
|
|
163
|
+
| `P4_PERF_METRICS_SAMPLE_SIZE` | `200` | Rolling sample size per tool used to compute p50/p95 latency. |
|
|
164
|
+
| `P4_ENABLE_AUDIT_LOGGING` | `false` / `false` / `true` | Override audit logging (`fast` / `balanced` / `secure`). |
|
|
165
|
+
| `P4_ENABLE_RATE_LIMITING` | `false` / `false` / `true` | Override rate limiting (`fast` / `balanced` / `secure`). |
|
|
166
|
+
| `P4_ENABLE_MEMORY_LIMITS` | `false` / `true` / `true` | Override memory-limit checks (`fast` / `balanced` / `secure`). |
|
|
167
|
+
| `P4_ENABLE_INPUT_SANITIZATION` | `true` | Input sanitization is enabled unless set to `false`. |
|
|
168
|
+
| `P4_MAX_MEMORY_MB` | `512` | Memory limit for command execution and checks. |
|
|
169
|
+
| `P4_AUDIT_RETENTION_DAYS` | `90` | Number of days audit entries are retained. |
|
|
170
|
+
| `P4_RATE_LIMIT_REQUESTS` | `100` | Max requests per rate-limit window. |
|
|
171
|
+
| `P4_RATE_LIMIT_WINDOW_MS` | `600000` | Rate-limit window in milliseconds. |
|
|
172
|
+
| `P4_RATE_LIMIT_BLOCK_MS` | `3600000` | Block duration in milliseconds after exceeding limit. |
|
|
173
|
+
|
|
174
|
+
### Perforce Connection Variables
|
|
175
|
+
|
|
176
|
+
| Variable | Required | Description |
|
|
92
177
|
|---|---|---|
|
|
93
|
-
| `
|
|
94
|
-
| `
|
|
95
|
-
| `
|
|
96
|
-
| `
|
|
97
|
-
| `
|
|
98
|
-
| `
|
|
99
|
-
| `
|
|
100
|
-
| `
|
|
178
|
+
| `P4PORT` | Yes | Perforce server address (for example `ssl:perforce.example.com:1666`). |
|
|
179
|
+
| `P4USER` | Yes | Perforce username. |
|
|
180
|
+
| `P4CLIENT` | Yes | Perforce client/workspace name. |
|
|
181
|
+
| `P4PASSWD` | No | Password or ticket (masked in server output). |
|
|
182
|
+
| `P4CHARSET` | No | Character set (for example `utf8`). |
|
|
183
|
+
| `P4COMMANDCHARSET` | No | Command charset override. |
|
|
184
|
+
| `P4LANGUAGE` | No | Localized language setting. |
|
|
185
|
+
| `P4DIFF` | No | Custom diff tool command. |
|
|
186
|
+
| `P4MERGE` | No | Custom merge tool command. |
|
|
187
|
+
| `P4EDITOR` | No | Editor for changelist descriptions/spec forms. |
|
|
101
188
|
|
|
102
189
|
## Tool Coverage
|
|
103
190
|
|
|
104
|
-
-
|
|
191
|
+
- 55 MCP tools covering repository info, file operations, changelists, merge/resolve, review workflows, workflow composites, search, users/clients, jobs, labels/streams, analytics, and compliance.
|
|
192
|
+
- Composite workflow tools are included to reduce request count and speed up common review/sync flows.
|
|
105
193
|
- Includes both:
|
|
106
194
|
- `p4.diff` for workspace/local vs depot diff.
|
|
107
195
|
- `p4.diff2` for depot-to-depot server-side diff.
|
|
@@ -124,7 +212,4 @@ npm run test:integration
|
|
|
124
212
|
|
|
125
213
|
## License
|
|
126
214
|
|
|
127
|
-
MIT
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
215
|
+
MIT
|
package/dist/p4/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/p4/config.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/p4/config.ts"],"names":[],"mappings":"AAmBA,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,OAAO,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACrC;AAED,MAAM,WAAW,cAAc;IAC7B,YAAY,EAAE,OAAO,CAAC;IACtB,aAAa,EAAE,OAAO,CAAC;CACxB;AAED,qBAAa,QAAQ;IACnB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAe;IAC1D,OAAO,CAAC,WAAW,CAAoE;IACvF,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA2E;IAErG;;OAEG;IACG,UAAU,CAAC,SAAS,GAAE,MAAsB,GAAG,OAAO,CAAC,cAAc,CAAC;IA+C5E;;OAEG;YACW,YAAY;IAgC1B;;OAEG;YACW,eAAe;IA4B7B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA+BxB;;OAEG;IACG,cAAc,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAW7D;;OAEG;IACG,eAAe,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;QACrD,GAAG,EAAE,MAAM,CAAC;QACZ,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC5B,YAAY,EAAE,cAAc,CAAC;KAC9B,CAAC;IAgBF;;OAEG;IACH,mBAAmB,CAAC,YAAY,EAAE,cAAc,GAAG;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE;IA4BvF;;OAEG;IACH,eAAe,IAAI,cAAc;IAOjC;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAkBzB;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,OAAO,GAAE;QAC7B,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,OAAO,CAAC,EAAE,MAAM,CAAC;KACb,GAAG,MAAM;CAyBhB"}
|
package/dist/p4/config.js
CHANGED
|
@@ -47,6 +47,9 @@ function getDefaultConfigCacheTtl() {
|
|
|
47
47
|
return '600000'; // 10 min
|
|
48
48
|
}
|
|
49
49
|
}
|
|
50
|
+
function isExplicitFalse(value) {
|
|
51
|
+
return typeof value === 'string' && value.trim().toLowerCase() === 'false';
|
|
52
|
+
}
|
|
50
53
|
class P4Config {
|
|
51
54
|
constructor() {
|
|
52
55
|
this.configCache = new Map();
|
|
@@ -234,8 +237,8 @@ class P4Config {
|
|
|
234
237
|
*/
|
|
235
238
|
getServerConfig() {
|
|
236
239
|
return {
|
|
237
|
-
readOnlyMode: process.env.P4_READONLY_MODE
|
|
238
|
-
disableDelete: process.env.P4_DISABLE_DELETE
|
|
240
|
+
readOnlyMode: !isExplicitFalse(process.env.P4_READONLY_MODE), // Default: true
|
|
241
|
+
disableDelete: !isExplicitFalse(process.env.P4_DISABLE_DELETE), // Default: true
|
|
239
242
|
};
|
|
240
243
|
}
|
|
241
244
|
/**
|
|
@@ -259,26 +262,26 @@ class P4Config {
|
|
|
259
262
|
* Create a minimal .p4config file template
|
|
260
263
|
*/
|
|
261
264
|
static createTemplate(options = {}) {
|
|
262
|
-
const template = `# Perforce Configuration
|
|
263
|
-
# This file should be placed in your project root directory
|
|
264
|
-
|
|
265
|
-
# Server connection
|
|
266
|
-
P4PORT=${options.port || 'your-perforce-server:1666'}
|
|
267
|
-
|
|
268
|
-
# User credentials
|
|
269
|
-
P4USER=${options.user || 'your-username'}
|
|
270
|
-
|
|
271
|
-
# Client/workspace name
|
|
272
|
-
P4CLIENT=${options.client || 'your-client-name'}
|
|
273
|
-
|
|
274
|
-
# Character set (optional)
|
|
275
|
-
${options.charset ? `P4CHARSET=${options.charset}` : '# P4CHARSET=utf8'}
|
|
276
|
-
|
|
277
|
-
# Optional: Editor for change descriptions
|
|
278
|
-
# P4EDITOR=notepad
|
|
279
|
-
|
|
280
|
-
# Optional: Diff tool
|
|
281
|
-
# P4DIFF=diff
|
|
265
|
+
const template = `# Perforce Configuration
|
|
266
|
+
# This file should be placed in your project root directory
|
|
267
|
+
|
|
268
|
+
# Server connection
|
|
269
|
+
P4PORT=${options.port || 'your-perforce-server:1666'}
|
|
270
|
+
|
|
271
|
+
# User credentials
|
|
272
|
+
P4USER=${options.user || 'your-username'}
|
|
273
|
+
|
|
274
|
+
# Client/workspace name
|
|
275
|
+
P4CLIENT=${options.client || 'your-client-name'}
|
|
276
|
+
|
|
277
|
+
# Character set (optional)
|
|
278
|
+
${options.charset ? `P4CHARSET=${options.charset}` : '# P4CHARSET=utf8'}
|
|
279
|
+
|
|
280
|
+
# Optional: Editor for change descriptions
|
|
281
|
+
# P4EDITOR=notepad
|
|
282
|
+
|
|
283
|
+
# Optional: Diff tool
|
|
284
|
+
# P4DIFF=diff
|
|
282
285
|
`;
|
|
283
286
|
return template;
|
|
284
287
|
}
|
package/dist/p4/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/p4/config.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/p4/config.ts"],"names":[],"mappings":"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"}
|