@remcp/runtime 0.2.35 → 0.2.37
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/CHANGELOG.md +10 -0
- package/README.md +24 -18
- package/package.json +1 -1
- package/src/catalog.mjs +1 -1
- package/src/tools/stats.mjs +3 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.2.36 — 2026-09-18
|
|
4
|
+
|
|
5
|
+
- Documentation and runtime introspection now describe the current 44-tool local surface instead of
|
|
6
|
+
older 35/43-tool snapshots.
|
|
7
|
+
- `get_runtime_info` explicitly distinguishes its read-only report from the four preferences that
|
|
8
|
+
`set_config_value` may change. Access roots, blocked commands, the command guardrail, shell,
|
|
9
|
+
write limit, runtime name and unrestricted mode remain local to the computer.
|
|
10
|
+
- Package/review documentation now matches the published runtime dependencies and the current
|
|
11
|
+
trusted-publishing release flow.
|
|
12
|
+
|
|
3
13
|
## 0.2.34 — 2026-09-18
|
|
4
14
|
|
|
5
15
|
- Lockstep security release with the ReMCP client. Runtime behavior is unchanged from 0.2.33.
|
package/README.md
CHANGED
|
@@ -27,27 +27,32 @@ npx @remcp/runtime # MCP server over stdio
|
|
|
27
27
|
|
|
28
28
|
## Tools
|
|
29
29
|
|
|
30
|
-
|
|
30
|
+
44 tools, all implemented in this repository. Nothing is gated behind an approval step: a tool call
|
|
31
31
|
executes.
|
|
32
32
|
|
|
33
33
|
| Area | Tools |
|
|
34
34
|
| --- | --- |
|
|
35
|
-
| Read | `read_file`, `read_multiple_files`, `read_image`, `read_binary`, `list_directory
|
|
36
|
-
| Write | `write_file`, `write_binary`, `
|
|
37
|
-
| Organise | `create_directory`, `move_file`, `copy_file`, `move_to_trash`, `create_archive`, `extract_archive` |
|
|
35
|
+
| Read | `read_file`, `read_files`, `read_multiple_files`, `read_image`, `read_binary`, `list_directory`, `get_file_info`, `hash_file`, `diff_files` |
|
|
36
|
+
| Write / edit | `write_file`, `write_files`, `write_binary`, `apply_patch`, `set_permissions`, `edit_block`, `replace_lines`, `replace_in_files` |
|
|
37
|
+
| Organise | `create_directory`, `move_file`, `copy_file`, `copy_paths`, `move_paths`, `move_to_trash`, `create_archive`, `extract_archive` |
|
|
38
|
+
| Delete | `delete_path`, `delete_paths` |
|
|
38
39
|
| Transfer | `read_binary` / `write_binary` stream any file as base64 chunks in both directions; `create_archive` / `extract_archive` move whole trees |
|
|
39
40
|
| Screen | `take_screenshot` returns the desktop as an image on Linux, macOS, and Windows |
|
|
40
41
|
| Search | `start_search`, `get_more_search_results`, `stop_search`, `list_searches` |
|
|
41
42
|
| Processes | `start_process`, `read_process_output`, `wait_for_process_output`, `interact_with_process`, `force_terminate`, `list_sessions`, `list_processes`, `kill_process` |
|
|
42
|
-
|
|
|
43
|
+
| Runtime | `get_system_info`, `get_runtime_info`, `get_runtime_stats`, `set_config_value` |
|
|
43
44
|
|
|
44
|
-
The hosted ReMCP endpoint adds
|
|
45
|
-
|
|
46
|
-
`
|
|
45
|
+
The hosted ReMCP endpoint adds eight account/relay tools — `list_devices`, `ping_device`,
|
|
46
|
+
`who_am_i`, `create_pairing_command`, `get_recent_tool_calls`, `get_usage_statistics`,
|
|
47
|
+
`get_configuration`, and `rename_device` — for a 52-tool public surface. Everything else the
|
|
48
|
+
agent may need, including service management, package installs, git and docker, runs through
|
|
49
|
+
`start_process` with the permissions of the account running the agent.
|
|
47
50
|
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
+
`set_config_value` is deliberately narrow: it can change only `telemetryEnabled`,
|
|
52
|
+
`maxReadLines`, `maxBufferedLines`, and `maxOutputBytes`. Access roots, blocked commands,
|
|
53
|
+
the command guardrail, shell, write limit, runtime name, and unrestricted mode stay with the person
|
|
54
|
+
at the computer. There is no `write_pdf`/spreadsheet/DOCX tooling; use `start_process` with the
|
|
55
|
+
document tools already installed on your machine.
|
|
51
56
|
|
|
52
57
|
`--print-tools` prints the exact JSON contract (schemas and annotations) the runtime advertises, and
|
|
53
58
|
`src/catalog.mjs` is the single source of truth for it.
|
|
@@ -187,13 +192,13 @@ This runtime is an independent implementation written for ReMCP. It is not a for
|
|
|
187
192
|
code with, [DesktopCommanderMCP](https://github.com/wonderwhy-er/DesktopCommanderMCP) or any other
|
|
188
193
|
MCP server.
|
|
189
194
|
|
|
190
|
-
| | Desktop Commander 0.2.50 | ReMCP runtime
|
|
195
|
+
| | Desktop Commander 0.2.50 | ReMCP runtime |
|
|
191
196
|
| --- | --- | --- |
|
|
192
|
-
| Tools | 26, including config mutators and document tooling |
|
|
197
|
+
| Tools | 26, including config mutators and document tooling | 44, including binary transfer, bulk file operations, archives, screenshots, search, process control, and narrowly scoped runtime preferences |
|
|
193
198
|
| Runtime dependencies | 34 (Supabase, Puppeteer/md-to-pdf, `sharp`, `exceljs`, Tiptap, ripgrep download) | 2 direct (`@modelcontextprotocol/sdk`, `@jellybrick/dbus-next`) |
|
|
194
199
|
| Install scripts | `postinstall` posts an install payload that ignores the telemetry setting | none |
|
|
195
200
|
| Telemetry | opt-out, 51 event names, remote feature flags, A/B assignment, third-party processor | opt-out, whitelisted event schema, no endpoint, no flags |
|
|
196
|
-
|
|
|
201
|
+
| Package footprint | 3.78 MB unpacked, 249 files | small first-party runtime package; no bundled browser or document-rendering stack |
|
|
197
202
|
| `read_file` | also fetches arbitrary URLs (SSRF surface) | local files only; `read_binary` transfers any file as base64 |
|
|
198
203
|
| Command guardrails | always on, 32 substring-blocked commands, advisory; also refuses read-only mentions | `warn` by default (never blocks), `allow`/`block` opt-in, command-word matching |
|
|
199
204
|
| Confinement | always on, checked against the lexical path | opt-in, checked against the resolved real path |
|
|
@@ -202,10 +207,11 @@ MCP server.
|
|
|
202
207
|
| Termination | session kill only | whole process group, plus runtime supervision and restart |
|
|
203
208
|
|
|
204
209
|
What ReMCP deliberately does not implement, and why: document rendering (`write_pdf`) and spreadsheet
|
|
205
|
-
handling would put Puppeteer, `sharp`, and `exceljs` on your computer;
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
210
|
+
handling would put Puppeteer, `sharp`, and `exceljs` on your computer; unrestricted configuration
|
|
211
|
+
mutation is intentionally absent — `set_config_value` is limited to four non-security preferences,
|
|
212
|
+
while access roots and command security remain local; local usage history would write your arguments
|
|
213
|
+
to disk; URL reads in `read_file` would add an SSRF surface. Everything else the upstream server can
|
|
214
|
+
do has an equivalent here, and the tool count is higher.
|
|
209
215
|
|
|
210
216
|
## License
|
|
211
217
|
|
package/package.json
CHANGED
package/src/catalog.mjs
CHANGED
|
@@ -725,7 +725,7 @@ export const toolDefinitions = [
|
|
|
725
725
|
{
|
|
726
726
|
name: 'get_runtime_info',
|
|
727
727
|
title: 'Get runtime info',
|
|
728
|
-
description: 'Report this device runtime: version,
|
|
728
|
+
description: 'Report this device runtime: version, allowed roots, command policy, output limits, settable preferences, and whether usage metrics are enabled. Read-only; use set_config_value only for telemetryEnabled, maxReadLines, maxBufferedLines, or maxOutputBytes. Access roots and command security stay local to the computer.',
|
|
729
729
|
inputSchema: { type: 'object', properties: {}, additionalProperties: false },
|
|
730
730
|
annotations: readOnly,
|
|
731
731
|
handler: statsToolHandlers.get_runtime_info,
|
package/src/tools/stats.mjs
CHANGED
|
@@ -6,8 +6,9 @@ import { telemetryStatus } from '../telemetry.mjs';
|
|
|
6
6
|
import { VERSION } from '../version.mjs';
|
|
7
7
|
import { text } from '../util.mjs';
|
|
8
8
|
|
|
9
|
-
// Read-only introspection.
|
|
10
|
-
//
|
|
9
|
+
// Read-only introspection. Mutating configuration is a separate, deliberately narrow tool:
|
|
10
|
+
// set_config_value can change only telemetry and context/output preferences; access roots,
|
|
11
|
+
// command security, the shell, write limit, name, and unrestricted mode remain local-only.
|
|
11
12
|
export async function getRuntimeInfoTool() {
|
|
12
13
|
const telemetry = telemetryStatus();
|
|
13
14
|
return text(JSON.stringify({
|