coding-tools-mcp 0.1.6__tar.gz → 0.1.7__tar.gz
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.
- {coding_tools_mcp-0.1.6 → coding_tools_mcp-0.1.7}/PKG-INFO +38 -11
- {coding_tools_mcp-0.1.6 → coding_tools_mcp-0.1.7}/README.md +37 -10
- {coding_tools_mcp-0.1.6 → coding_tools_mcp-0.1.7}/coding_tools_mcp/__init__.py +1 -1
- {coding_tools_mcp-0.1.6 → coding_tools_mcp-0.1.7}/coding_tools_mcp/server.py +1054 -271
- {coding_tools_mcp-0.1.6 → coding_tools_mcp-0.1.7}/coding_tools_mcp.egg-info/PKG-INFO +38 -11
- {coding_tools_mcp-0.1.6 → coding_tools_mcp-0.1.7}/pyproject.toml +1 -1
- {coding_tools_mcp-0.1.6 → coding_tools_mcp-0.1.7}/LICENSE +0 -0
- {coding_tools_mcp-0.1.6 → coding_tools_mcp-0.1.7}/coding_tools_mcp/__main__.py +0 -0
- {coding_tools_mcp-0.1.6 → coding_tools_mcp-0.1.7}/coding_tools_mcp/landlock_exec.py +0 -0
- {coding_tools_mcp-0.1.6 → coding_tools_mcp-0.1.7}/coding_tools_mcp.egg-info/SOURCES.txt +0 -0
- {coding_tools_mcp-0.1.6 → coding_tools_mcp-0.1.7}/coding_tools_mcp.egg-info/dependency_links.txt +0 -0
- {coding_tools_mcp-0.1.6 → coding_tools_mcp-0.1.7}/coding_tools_mcp.egg-info/entry_points.txt +0 -0
- {coding_tools_mcp-0.1.6 → coding_tools_mcp-0.1.7}/coding_tools_mcp.egg-info/requires.txt +0 -0
- {coding_tools_mcp-0.1.6 → coding_tools_mcp-0.1.7}/coding_tools_mcp.egg-info/top_level.txt +0 -0
- {coding_tools_mcp-0.1.6 → coding_tools_mcp-0.1.7}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.2
|
|
2
2
|
Name: coding-tools-mcp
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.7
|
|
4
4
|
Summary: Workspace-confined coding tools exposed as an MCP server.
|
|
5
5
|
Author: Coding Tools MCP Contributors
|
|
6
6
|
License: Coding Tools MCP Source-Available License v1.0
|
|
@@ -73,12 +73,17 @@ It is not a prompt wrapper. It does not expose external agent accounts, memory,
|
|
|
73
73
|
- [MCP client configuration](docs/mcp-client-config.md)
|
|
74
74
|
- [Remote MCP](docs/remote-mcp.md)
|
|
75
75
|
- [Tools and schemas](docs/tools-and-schemas.md)
|
|
76
|
+
- [Permission modes](docs/permission-modes.md)
|
|
77
|
+
- [Exec command recipes](docs/exec-command-recipes.md)
|
|
78
|
+
- [Docker sandbox](docs/docker.md)
|
|
76
79
|
- [Security policy](SECURITY.md)
|
|
80
|
+
- [Security boundary](docs/security-boundary.md)
|
|
77
81
|
- [CI and test commands](docs/ci-and-tests.md)
|
|
78
82
|
- [Dogfood](docs/dogfood.md)
|
|
79
83
|
- [SWE-bench evaluation](docs/swe-bench.md)
|
|
80
84
|
- [Known limitations](docs/limitations.md)
|
|
81
85
|
- [Troubleshooting](docs/troubleshooting.md)
|
|
86
|
+
- [Exec troubleshooting](docs/troubleshooting-exec.md)
|
|
82
87
|
- [Competitive analysis](docs/competitive-analysis.md)
|
|
83
88
|
- Normative MCP runtime profile: [docs/profile-v0.1.md](docs/profile-v0.1.md)
|
|
84
89
|
|
|
@@ -125,15 +130,19 @@ uvx coding-tools-mcp --stdio --workspace /path/to/repo
|
|
|
125
130
|
If you are working from this checkout instead of a published package:
|
|
126
131
|
|
|
127
132
|
```bash
|
|
128
|
-
|
|
129
|
-
python -m pip install -e ".[dev]"
|
|
130
|
-
coding-tools-mcp --workspace /path/to/repo --host 127.0.0.1 --port 8765
|
|
133
|
+
make start
|
|
131
134
|
```
|
|
132
135
|
|
|
133
|
-
|
|
136
|
+
Pass a different workspace, host, port, or extra server flags with Make variables:
|
|
134
137
|
|
|
135
138
|
```bash
|
|
136
|
-
|
|
139
|
+
make start MCP_WORKSPACE=/path/to/repo MCP_PORT=8000 MCP_ARGS="--permission-mode trusted"
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
If dependencies are missing, install the runtime in editable mode:
|
|
143
|
+
|
|
144
|
+
```bash
|
|
145
|
+
python -m pip install -e ".[dev]"
|
|
137
146
|
```
|
|
138
147
|
|
|
139
148
|
HTTP endpoint:
|
|
@@ -142,6 +151,12 @@ HTTP endpoint:
|
|
|
142
151
|
http://127.0.0.1:8765/mcp
|
|
143
152
|
```
|
|
144
153
|
|
|
154
|
+
Install the optional image extra when you want `view_image` auto-resize support:
|
|
155
|
+
|
|
156
|
+
```bash
|
|
157
|
+
python -m pip install -e ".[image]"
|
|
158
|
+
```
|
|
159
|
+
|
|
145
160
|
Stdio:
|
|
146
161
|
|
|
147
162
|
```bash
|
|
@@ -150,13 +165,25 @@ coding-tools-mcp --stdio --workspace /path/to/repo
|
|
|
150
165
|
|
|
151
166
|
Set `CODING_TOOLS_MCP_TRACE=1` to emit redacted JSON tool-call trace events to stderr for local debugging. Logs stay off stdout so stdio JSON-RPC remains clean.
|
|
152
167
|
|
|
153
|
-
|
|
168
|
+
By default, `exec_command` passes a core shell environment only. For local toolchains that depend on inherited environment variables, such as MSVC developer prompts, start with:
|
|
169
|
+
|
|
170
|
+
```bash
|
|
171
|
+
CODING_TOOLS_MCP_SHELL_ENV_INHERIT=all coding-tools-mcp --workspace /path/to/repo
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
`inherit=all` still filters secret-looking and loader/startup variables unless dangerous mode is also enabled. For local development with dependency downloads, shell expansion, and inline interpreter snippets, use:
|
|
175
|
+
|
|
176
|
+
```bash
|
|
177
|
+
coding-tools-mcp --permission-mode trusted --workspace /path/to/repo
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
`--allow-network` remains available as a compatibility flag when you only want to open network-looking commands. If your MCP client does not support permission elicitation and you explicitly want to disable `exec_command` permission gates inside an isolated container or VM, start with:
|
|
154
181
|
|
|
155
182
|
```bash
|
|
156
|
-
coding-tools-mcp --
|
|
183
|
+
coding-tools-mcp --permission-mode dangerous --workspace /path/to/repo
|
|
157
184
|
```
|
|
158
185
|
|
|
159
|
-
This
|
|
186
|
+
This disables `exec_command` permission gates such as network-looking commands, destructive command checks, shell expansion, inline scripts, and sensitive env checks. Workspace path boundaries for direct file tools still apply. `--dangerously-skip-all-permissions` remains as a compatibility alias.
|
|
160
187
|
|
|
161
188
|
## MCP Client Examples
|
|
162
189
|
|
|
@@ -262,9 +289,9 @@ For input/output schemas and result envelopes, see [docs/tools-and-schemas.md](d
|
|
|
262
289
|
|
|
263
290
|
The runtime binds one workspace root per server process. Paths are workspace-relative by default. Absolute paths, `..` traversal, and symlink escapes are rejected. Recursive listing/search excludes `.git`, `.reference`, `node_modules`, `target`, `dist`, build outputs, virtualenvs, and common caches by default.
|
|
264
291
|
|
|
265
|
-
`exec_command` runs under policy controls with workspace-bound cwd, timeout, output caps, sensitive-value and loader/startup environment rejection, destructive command checks, network-looking command checks, shell-expansion permission gates, indirect absolute-path checks, cancellation/kill cleanup, session deadline watchdogs, and bounded session buffers. On Linux hosts with Landlock support it also applies filesystem confinement; on Windows, macOS, or Linux hosts without Landlock, command results include a warning and external sandboxing is required before running untrusted commands. This is still not a complete OS/container sandbox; see [SECURITY.md](SECURITY.md).
|
|
292
|
+
`exec_command` runs under policy controls with workspace-bound cwd, configurable shell environment inheritance, timeout, output caps, sensitive-value and loader/startup environment rejection, destructive command checks, network-looking command checks, shell-expansion permission gates, indirect absolute-path checks, cancellation/kill cleanup, session deadline watchdogs, and bounded session buffers. On Linux hosts with Landlock support it also applies filesystem confinement; on Windows, macOS, or Linux hosts without Landlock, command results include a warning and external sandboxing is required before running untrusted commands. This is still not a complete OS/container sandbox; see [SECURITY.md](SECURITY.md).
|
|
266
293
|
|
|
267
|
-
`--
|
|
294
|
+
`--permission-mode safe` is the default. `--permission-mode trusted` opens local-development gates while keeping secret filtering and destructive-command checks. `--permission-mode dangerous` disables `exec_command` permission gates for operators who accept that risk inside an isolated runner. Do not use dangerous mode for untrusted workspaces or untrusted MCP clients.
|
|
268
295
|
|
|
269
296
|
## Compliance
|
|
270
297
|
|
|
@@ -15,12 +15,17 @@ It is not a prompt wrapper. It does not expose external agent accounts, memory,
|
|
|
15
15
|
- [MCP client configuration](docs/mcp-client-config.md)
|
|
16
16
|
- [Remote MCP](docs/remote-mcp.md)
|
|
17
17
|
- [Tools and schemas](docs/tools-and-schemas.md)
|
|
18
|
+
- [Permission modes](docs/permission-modes.md)
|
|
19
|
+
- [Exec command recipes](docs/exec-command-recipes.md)
|
|
20
|
+
- [Docker sandbox](docs/docker.md)
|
|
18
21
|
- [Security policy](SECURITY.md)
|
|
22
|
+
- [Security boundary](docs/security-boundary.md)
|
|
19
23
|
- [CI and test commands](docs/ci-and-tests.md)
|
|
20
24
|
- [Dogfood](docs/dogfood.md)
|
|
21
25
|
- [SWE-bench evaluation](docs/swe-bench.md)
|
|
22
26
|
- [Known limitations](docs/limitations.md)
|
|
23
27
|
- [Troubleshooting](docs/troubleshooting.md)
|
|
28
|
+
- [Exec troubleshooting](docs/troubleshooting-exec.md)
|
|
24
29
|
- [Competitive analysis](docs/competitive-analysis.md)
|
|
25
30
|
- Normative MCP runtime profile: [docs/profile-v0.1.md](docs/profile-v0.1.md)
|
|
26
31
|
|
|
@@ -67,15 +72,19 @@ uvx coding-tools-mcp --stdio --workspace /path/to/repo
|
|
|
67
72
|
If you are working from this checkout instead of a published package:
|
|
68
73
|
|
|
69
74
|
```bash
|
|
70
|
-
|
|
71
|
-
python -m pip install -e ".[dev]"
|
|
72
|
-
coding-tools-mcp --workspace /path/to/repo --host 127.0.0.1 --port 8765
|
|
75
|
+
make start
|
|
73
76
|
```
|
|
74
77
|
|
|
75
|
-
|
|
78
|
+
Pass a different workspace, host, port, or extra server flags with Make variables:
|
|
76
79
|
|
|
77
80
|
```bash
|
|
78
|
-
|
|
81
|
+
make start MCP_WORKSPACE=/path/to/repo MCP_PORT=8000 MCP_ARGS="--permission-mode trusted"
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
If dependencies are missing, install the runtime in editable mode:
|
|
85
|
+
|
|
86
|
+
```bash
|
|
87
|
+
python -m pip install -e ".[dev]"
|
|
79
88
|
```
|
|
80
89
|
|
|
81
90
|
HTTP endpoint:
|
|
@@ -84,6 +93,12 @@ HTTP endpoint:
|
|
|
84
93
|
http://127.0.0.1:8765/mcp
|
|
85
94
|
```
|
|
86
95
|
|
|
96
|
+
Install the optional image extra when you want `view_image` auto-resize support:
|
|
97
|
+
|
|
98
|
+
```bash
|
|
99
|
+
python -m pip install -e ".[image]"
|
|
100
|
+
```
|
|
101
|
+
|
|
87
102
|
Stdio:
|
|
88
103
|
|
|
89
104
|
```bash
|
|
@@ -92,13 +107,25 @@ coding-tools-mcp --stdio --workspace /path/to/repo
|
|
|
92
107
|
|
|
93
108
|
Set `CODING_TOOLS_MCP_TRACE=1` to emit redacted JSON tool-call trace events to stderr for local debugging. Logs stay off stdout so stdio JSON-RPC remains clean.
|
|
94
109
|
|
|
95
|
-
|
|
110
|
+
By default, `exec_command` passes a core shell environment only. For local toolchains that depend on inherited environment variables, such as MSVC developer prompts, start with:
|
|
111
|
+
|
|
112
|
+
```bash
|
|
113
|
+
CODING_TOOLS_MCP_SHELL_ENV_INHERIT=all coding-tools-mcp --workspace /path/to/repo
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
`inherit=all` still filters secret-looking and loader/startup variables unless dangerous mode is also enabled. For local development with dependency downloads, shell expansion, and inline interpreter snippets, use:
|
|
117
|
+
|
|
118
|
+
```bash
|
|
119
|
+
coding-tools-mcp --permission-mode trusted --workspace /path/to/repo
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
`--allow-network` remains available as a compatibility flag when you only want to open network-looking commands. If your MCP client does not support permission elicitation and you explicitly want to disable `exec_command` permission gates inside an isolated container or VM, start with:
|
|
96
123
|
|
|
97
124
|
```bash
|
|
98
|
-
coding-tools-mcp --
|
|
125
|
+
coding-tools-mcp --permission-mode dangerous --workspace /path/to/repo
|
|
99
126
|
```
|
|
100
127
|
|
|
101
|
-
This
|
|
128
|
+
This disables `exec_command` permission gates such as network-looking commands, destructive command checks, shell expansion, inline scripts, and sensitive env checks. Workspace path boundaries for direct file tools still apply. `--dangerously-skip-all-permissions` remains as a compatibility alias.
|
|
102
129
|
|
|
103
130
|
## MCP Client Examples
|
|
104
131
|
|
|
@@ -204,9 +231,9 @@ For input/output schemas and result envelopes, see [docs/tools-and-schemas.md](d
|
|
|
204
231
|
|
|
205
232
|
The runtime binds one workspace root per server process. Paths are workspace-relative by default. Absolute paths, `..` traversal, and symlink escapes are rejected. Recursive listing/search excludes `.git`, `.reference`, `node_modules`, `target`, `dist`, build outputs, virtualenvs, and common caches by default.
|
|
206
233
|
|
|
207
|
-
`exec_command` runs under policy controls with workspace-bound cwd, timeout, output caps, sensitive-value and loader/startup environment rejection, destructive command checks, network-looking command checks, shell-expansion permission gates, indirect absolute-path checks, cancellation/kill cleanup, session deadline watchdogs, and bounded session buffers. On Linux hosts with Landlock support it also applies filesystem confinement; on Windows, macOS, or Linux hosts without Landlock, command results include a warning and external sandboxing is required before running untrusted commands. This is still not a complete OS/container sandbox; see [SECURITY.md](SECURITY.md).
|
|
234
|
+
`exec_command` runs under policy controls with workspace-bound cwd, configurable shell environment inheritance, timeout, output caps, sensitive-value and loader/startup environment rejection, destructive command checks, network-looking command checks, shell-expansion permission gates, indirect absolute-path checks, cancellation/kill cleanup, session deadline watchdogs, and bounded session buffers. On Linux hosts with Landlock support it also applies filesystem confinement; on Windows, macOS, or Linux hosts without Landlock, command results include a warning and external sandboxing is required before running untrusted commands. This is still not a complete OS/container sandbox; see [SECURITY.md](SECURITY.md).
|
|
208
235
|
|
|
209
|
-
`--
|
|
236
|
+
`--permission-mode safe` is the default. `--permission-mode trusted` opens local-development gates while keeping secret filtering and destructive-command checks. `--permission-mode dangerous` disables `exec_command` permission gates for operators who accept that risk inside an isolated runner. Do not use dangerous mode for untrusted workspaces or untrusted MCP clients.
|
|
210
237
|
|
|
211
238
|
## Compliance
|
|
212
239
|
|