@deslop/gateway 0.1.1222 → 0.1.1227
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 +8 -25
- package/dist/server.js +7 -4
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -1,31 +1,14 @@
|
|
|
1
1
|
# Deslop Gateway
|
|
2
2
|
|
|
3
|
-
One MCP endpoint
|
|
3
|
+
One MCP endpoint for every MCP server you connect; add servers on its page.
|
|
4
4
|
|
|
5
|
-
```
|
|
6
|
-
|
|
7
|
-
url
|
|
5
|
+
```bash
|
|
6
|
+
npm install --global @deslop/gateway
|
|
7
|
+
gateway service install --url https://gateway.mp281x.xyz --auth https://auth.mp281x.xyz --admins <github-id>
|
|
8
8
|
```
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
- **Register** only `https://<gateway>/mcp` in each harness; tools are named `<server>__<tool>`.
|
|
11
|
+
- **Admins** (`--admins`) add and connect servers; everyone signed in shares them.
|
|
12
|
+
- **Own tool**: `list_mcp_connections` explains a missing or failing server.
|
|
11
13
|
|
|
12
|
-
|
|
13
|
-
- **Names**: a stable namespace from the hostname, a suffix on collision; tools are `<server>__<tool>`.
|
|
14
|
-
- **Who**: only the `--admins` (Auth's setting) manage servers; every allowed account, machine and harness shares the upstream grants.
|
|
15
|
-
- **Disconnect** deletes local provider tokens, keeps the URL; **Remove** deletes the definition too; neither revokes the provider's grant.
|
|
16
|
-
- **Tools** menu: uncheck tools agents should neither see nor call.
|
|
17
|
-
- **Failures**: a row shows why its last connection or discovery failed, as `list_mcp_connections` does.
|
|
18
|
-
|
|
19
|
-
## OAuth
|
|
20
|
-
|
|
21
|
-
- **Discovery** from the server's standard metadata.
|
|
22
|
-
- **Registration**: public-client Dynamic Client Registration with the server's own callback, `/oauth/callback/<id>`, on each connection; otherwise its Client ID Metadata Document, only with a provider naming itself in its answers (RFC 9207 `iss`). Any other provider is refused; never pre-registered clients.
|
|
23
|
-
- **Deslop servers**, Auth's own included, connect the same way with Auth as provider; the gateway's sign-ins show among the admin's signed-in apps.
|
|
24
|
-
- **Credentials** in its data directory.
|
|
25
|
-
|
|
26
|
-
## MCP
|
|
27
|
-
|
|
28
|
-
- **Own tool**: `list_mcp_connections`; `({server})` returns that server's instructions whole. The gateway's instructions, read at its start, name each server by its instructions' first sentence. Upstream tools are listed without output schemas.
|
|
29
|
-
- **Protocols**: stateless `2026-07-28` and session-based `2025-11-25`/`2025-06-18`. Each upstream negotiates through the official MCP client SDK, one session per discovery or call. Streamable HTTP only.
|
|
30
|
-
- **Removed servers**: Effect's `McpServer` can't remove tools, so theirs stay registered and a visibility check keeps them out of lists and calls.
|
|
31
|
-
- **Network**: upstream URLs, metadata and token endpoints use HTTPS, refuse redirects and private addresses, validate DNS answers at socket creation.
|
|
14
|
+
Common flags and service commands: [Deslop app runtime](https://github.com/MP281X/deslop/blob/main/packages/runtime/README.md).
|
package/dist/server.js
CHANGED
|
@@ -87906,7 +87906,7 @@ function layerKeyValueStore(directory) {
|
|
|
87906
87906
|
const layerDataStore = unwrap$7(map$5(dataDirectory, layerKeyValueStore));
|
|
87907
87907
|
const layerProtocol = mergeAll$1(layerSchemaBinary(), succeed$6(MaxBodySize)(mebibytes(10)));
|
|
87908
87908
|
const layerTelemetry = unwrap$7(gen(function* () {
|
|
87909
|
-
const name = yield*
|
|
87909
|
+
const name = (yield* packageMetadata).name;
|
|
87910
87910
|
return match$8(yield* option(String$5("OTEL_URL")), {
|
|
87911
87911
|
onNone: () => empty$12,
|
|
87912
87912
|
onSome: (url) => layerOtlp(`${name}-server`, url, "server")
|
|
@@ -88052,17 +88052,20 @@ function systemctl(...args) {
|
|
|
88052
88052
|
const unitDirectory = gen(function* () {
|
|
88053
88053
|
return (yield* Path$1).join(yield* String$5("HOME"), ".config", "systemd", "user");
|
|
88054
88054
|
});
|
|
88055
|
-
const install = fnUntraced(function* (name, command) {
|
|
88055
|
+
const install = fnUntraced(function* (name, command, options) {
|
|
88056
88056
|
const fs = yield* FileSystem;
|
|
88057
88057
|
const path = yield* Path$1;
|
|
88058
88058
|
const home = yield* String$5("HOME");
|
|
88059
88059
|
const directory = yield* unitDirectory;
|
|
88060
88060
|
const unit = `deslop-${name}.service`;
|
|
88061
88061
|
yield* fs.makeDirectory(directory, { recursive: true });
|
|
88062
|
-
yield* fs.writeFileString(path.join(directory, unit), `[Unit]\nDescription=Deslop ${name}\nAfter=network-online.target\n\n[Service]\nType=simple\nEnvironment=NODE_ENV=production\nEnvironment=${systemdArgument(`PATH=${home}/.vite-plus/bin:/usr/local/bin:/usr/bin:/bin`)}\nEnvironmentFile=-${
|
|
88062
|
+
yield* fs.writeFileString(path.join(directory, unit), `[Unit]\nDescription=Deslop ${name}\nAfter=network-online.target\n\n[Service]\nType=simple\nEnvironment=NODE_ENV=production\nEnvironment=${systemdArgument(`PATH=${home}/.vite-plus/bin:/usr/local/bin:/usr/bin:/bin`)}\nEnvironmentFile=-${replaceAll("%", "%%")(`${home}/.deslop/${name}.env`)}\nExecStart=${join$2(map$8(command, systemdArgument), " ")}\nRestart=on-failure\nRestartSec=3\nUMask=0077\n\n[Install]\nWantedBy=default.target\n`, { mode: 384 });
|
|
88063
88063
|
yield* systemctl("daemon-reload");
|
|
88064
88064
|
yield* systemctl("enable", unit);
|
|
88065
|
-
yield* systemctl(
|
|
88065
|
+
yield* systemctl(match$1(options?.restart === false, {
|
|
88066
|
+
onFalse: () => "restart",
|
|
88067
|
+
onTrue: () => "start"
|
|
88068
|
+
}), unit);
|
|
88066
88069
|
return `${unit} installed\n`;
|
|
88067
88070
|
});
|
|
88068
88071
|
const installUpdates = fnUntraced(function* (name, command) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@deslop/gateway",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.1227",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "https://github.com/MP281X/deslop",
|
|
@@ -32,5 +32,5 @@
|
|
|
32
32
|
"engines": {
|
|
33
33
|
"node": ">=26"
|
|
34
34
|
},
|
|
35
|
-
"fingerprint": "
|
|
35
|
+
"fingerprint": "597187977bf016b9194966c09b59ee797c5b75fd6c56ad35f76106ac243bc992"
|
|
36
36
|
}
|