@akms/mcp 0.3.1 → 0.4.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/CHANGELOG.md +24 -0
- package/README.md +79 -88
- package/lib/cli.js +804 -668
- package/lib/cli.js.map +1 -0
- package/lib/db.js +8423 -0
- package/lib/db.js.map +1 -0
- package/lib/s3.js +4339 -0
- package/lib/s3.js.map +1 -0
- package/lib/ssh.js +7854 -0
- package/lib/ssh.js.map +1 -0
- package/lib/wsl.js +7256 -0
- package/lib/wsl.js.map +1 -0
- package/package.json +45 -6
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,30 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to `@akms/mcp`.
|
|
4
4
|
|
|
5
|
+
## [0.4.0] - 2026-10-27
|
|
6
|
+
|
|
7
|
+
### Changed
|
|
8
|
+
|
|
9
|
+
- Ship setup and the Database, SSH, WSL and S3 servers as one `@akms/mcp` package. The only command is `akms-mcp`; server entries use `lib/db.js`, `lib/ssh.js`, `lib/wsl.js` and `lib/s3.js`.
|
|
10
|
+
- Add a reviewed Migrate registry step that moves old direct paths and standard npx entries to `@akms/mcp`. Preserve launches waiting for the unified runtime; keep registry version 2.
|
|
11
|
+
- Group every kind: each AI service gets one `akms_<kind>` entry per kind. Remove the per-connection layout and the switch between layouts; Migrate registry groups kinds an older setup listed one entry per connection, and a per-connection default.
|
|
12
|
+
- Combine installation, updates and migration in Runtime. Show migration only when it can apply and display old/new package versions, list the upgrade steps while one is unfinished, offer **Update launch commands** only when a grouped entry no longer starts the installed runtime, and offer removal of unused legacy packages after checking client references; removal defaults to No.
|
|
13
|
+
- Each kind's screen lists only its connections; Register, Sync and Runtime are in the main menu, which marks Runtime when an update or registry migration is available.
|
|
14
|
+
- Consolidate user installation, security and upgrade guidance in README, with kind-specific configuration and tool guides under `docs/`.
|
|
15
|
+
- The separate `@akms/mcp-db`, `@akms/mcp-ssh`, `@akms/mcp-wsl` and `@akms/mcp-s3` packages are superseded and will be deprecated. Existing legacy entries remain migration sources.
|
|
16
|
+
|
|
17
|
+
Earlier kind-specific release histories: [Database](docs/db/CHANGELOG.md), [SSH](docs/ssh/CHANGELOG.md), [WSL](docs/wsl/CHANGELOG.md), [S3](docs/s3/CHANGELOG.md).
|
|
18
|
+
|
|
19
|
+
## [0.3.2] - 2026-10-26
|
|
20
|
+
|
|
21
|
+
### Changed
|
|
22
|
+
|
|
23
|
+
- Point Sync review instructions to its current menu and name the services retaining old connection entries, grouping only identical retained lists.
|
|
24
|
+
- Separate runtime waits from failed changes in Register and Sync. Group retained connection names, count saved connections separately from service entries, and show semantic colors only on interactive terminals without NO_COLOR.
|
|
25
|
+
- Offer unimported connections directly from Sync and compare both saved and external settings before resolving an individual entry during session migration. Wide terminals show versions side by side; narrow terminals keep wrapped values.
|
|
26
|
+
- Preserve existing terminal symbols and keep status words visible when colors are disabled.
|
|
27
|
+
- Document the upgrade path from 0.2.x, including pending runtimes, differing imported settings, reconnecting clients, rollback and registry migration.
|
|
28
|
+
|
|
5
29
|
## [0.3.1] - 2026-10-26
|
|
6
30
|
|
|
7
31
|
### Verification
|
package/README.md
CHANGED
|
@@ -1,148 +1,139 @@
|
|
|
1
1
|
# @akms/mcp
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
MCP servers for PostgreSQL databases, SSH hosts, Windows Subsystem for Linux (WSL) and S3 buckets, with one setup menu and one shared connection catalog.
|
|
4
|
+
|
|
5
|
+
Choose Claude Code, Codex, Claude Desktop and/or Cursor once. Connections you save are applied to every registered AI service. Each connection keeps its own credentials and access policy.
|
|
6
|
+
|
|
7
|
+
Requires **Node.js 22+ and npm**. WSL runs on Windows with an installed Linux distribution.
|
|
8
|
+
|
|
9
|
+
## Install and set up
|
|
4
10
|
|
|
5
11
|
```sh
|
|
6
|
-
npx -y
|
|
12
|
+
npx -y @akms/mcp@latest
|
|
7
13
|
```
|
|
8
14
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
WSL Local Linux distros · Windows
|
|
16
|
-
S3 AWS S3 and S3-compatible buckets
|
|
17
|
-
────────────────────────
|
|
18
|
-
Register Choose AI services once
|
|
19
|
-
Sync Review and retry shared settings
|
|
20
|
-
Runtime AKMS installation and direct launches
|
|
21
|
-
Updates Check installed MCP releases
|
|
22
|
-
Quit
|
|
23
|
-
|
|
24
|
-
↑↓ move · enter select · esc back
|
|
25
|
-
```
|
|
15
|
+
1. Open **Runtime** and choose **Install AKMS MCP**. This installs one runtime for all four kinds.
|
|
16
|
+
2. Open **Register**, select the AI services you use, then choose **Apply registration** and confirm the review.
|
|
17
|
+
3. Open **Database**, **SSH**, **WSL** or **S3**, add a connection and save it. The kind's screen contains its connections and a Back action; shared settings are in the main menu.
|
|
18
|
+
4. Restart or reconnect your AI clients to load the saved connections.
|
|
19
|
+
|
|
20
|
+
Add requires at least one registered service. Existing matching connections are imported when you apply registration; differing versions remain available for review in **Sync > Import existing connections**.
|
|
26
21
|
|
|
27
|
-
|
|
22
|
+
You can open a kind's setup directly:
|
|
28
23
|
|
|
29
|
-
|
|
24
|
+
```sh
|
|
25
|
+
npx -y @akms/mcp@latest db
|
|
26
|
+
npx -y @akms/mcp@latest ssh
|
|
27
|
+
npx -y @akms/mcp@latest wsl
|
|
28
|
+
npx -y @akms/mcp@latest s3
|
|
29
|
+
```
|
|
30
30
|
|
|
31
|
-
|
|
31
|
+
To install the setup command globally instead:
|
|
32
32
|
|
|
33
33
|
```sh
|
|
34
34
|
npm install -g @akms/mcp@latest
|
|
35
35
|
akms-mcp
|
|
36
36
|
```
|
|
37
37
|
|
|
38
|
-
`akms-mcp
|
|
38
|
+
`akms-mcp setup` and `akms-mcp config` open the same main menu. `akms-mcp register` and `akms-mcp sync` open the shared registration and comparison screens. `--target codex` preselects Codex in Register; saves still apply to all registered services. Run `akms-mcp --help` for the command reference.
|
|
39
39
|
|
|
40
|
-
|
|
41
|
-
akms-mcp register
|
|
42
|
-
akms-mcp db
|
|
43
|
-
akms-mcp ssh
|
|
44
|
-
akms-mcp wsl
|
|
45
|
-
akms-mcp s3
|
|
46
|
-
akms-mcp sync
|
|
47
|
-
```
|
|
40
|
+
The package exposes **one command, `akms-mcp`**. Database, SSH, WSL and S3 servers have separate entry files inside the same package; they do not need separate npm installations.
|
|
48
41
|
|
|
49
|
-
|
|
42
|
+
## Choose a connection kind
|
|
50
43
|
|
|
51
|
-
|
|
44
|
+
### Database
|
|
52
45
|
|
|
53
|
-
|
|
46
|
+
Query PostgreSQL directly or through an SSH tunnel. SQL goes through a PostgreSQL parser, with optional read-only mode, DDL restrictions, statement timeouts and result limits. See [Database connections, configuration and tools](docs/db.md).
|
|
54
47
|
|
|
55
|
-
|
|
48
|
+
### SSH
|
|
56
49
|
|
|
57
|
-
|
|
50
|
+
Run commands, keep working-directory sessions, and transfer files over SFTP. Configure a private key, password or SSH agent, optional jump hosts, host-key pinning and per-host command/path rules. See [SSH connections, configuration and tools](docs/ssh.md).
|
|
58
51
|
|
|
59
|
-
|
|
52
|
+
### WSL
|
|
60
53
|
|
|
61
|
-
|
|
54
|
+
Run commands and work with files in a registered Linux distribution and user on Windows. Command and file policies include additional protection for Windows paths mounted under `/mnt`. See [WSL connections, configuration and tools](docs/wsl.md).
|
|
62
55
|
|
|
63
|
-
|
|
56
|
+
### S3
|
|
64
57
|
|
|
65
|
-
|
|
58
|
+
List objects, inspect and edit UTF-8 content, and upload or download files in one bucket and optional key prefix. Supports AWS S3 and explicitly configured S3-compatible endpoints. See [S3 connections, configuration and tools](docs/s3.md).
|
|
66
59
|
|
|
67
|
-
|
|
60
|
+
## Runtime and updates
|
|
68
61
|
|
|
69
|
-
**Runtime
|
|
62
|
+
**Runtime** installs and updates the single `@akms/mcp` runtime. Choose **Check for updates**, then **Update to <version>** when a newer release is available. Opening the main menu does not query npm: **Update available <version>** means the installed runtime is older than the setup version already running. A linked development installation is shown as such and is never offered an update.
|
|
70
63
|
|
|
71
|
-
|
|
64
|
+
Runtime also contains **Migrate registry** when changes are ready to apply, **Update launch commands** when an `akms_<kind>` entry no longer starts the installed runtime (for example after Node moved), and **Remove old packages** when unused legacy installations can be removed. While an upgrade from the separate packages is unfinished, Runtime lists its steps (install, migrate, remove old packages) and marks each done, next or blocked.
|
|
72
65
|
|
|
73
|
-
|
|
66
|
+
The catalog directory is `~/.akms/mcp`, or `$AKMS_MCP_HOME` when set. Runtime installs below that directory:
|
|
74
67
|
|
|
75
|
-
|
|
68
|
+
| Platform | Runtime prefix | Package directory |
|
|
69
|
+
| --- | --- | --- |
|
|
70
|
+
| Windows | `<catalog>/runtime` | `<catalog>/runtime/node_modules/@akms/mcp` |
|
|
71
|
+
| macOS / Linux | `<catalog>/runtime` | `<catalog>/runtime/lib/node_modules/@akms/mcp` |
|
|
76
72
|
|
|
77
|
-
|
|
73
|
+
Saved MCP entries start Node directly with `lib/db.js`, `lib/ssh.js`, `lib/wsl.js` or `lib/s3.js`. npm installation runs during setup; an AI client's server connection does not keep an npm/npx wrapper running.
|
|
78
74
|
|
|
79
|
-
|
|
75
|
+
After saving changed settings or updating the runtime, setup checks MCP startup using `initialize` and `tools/list`. This check does not execute database, SSH, WSL or S3 tools. Fix any startup failures before reconnecting clients. Running processes keep their loaded code until restarted.
|
|
80
76
|
|
|
81
|
-
|
|
77
|
+
## How connections appear in AI services
|
|
82
78
|
|
|
83
|
-
|
|
79
|
+
Connections are grouped by kind: each AI service gets one entry per kind. Six database connections appear as one `akms_db` entry and four SSH hosts as one `akms_ssh` entry. Each AI client session starts one process per kind. Passwords stay in the AKMS catalog; a service entry holds only the command that starts its server.
|
|
84
80
|
|
|
85
|
-
|
|
81
|
+
Each server reads a catalog snapshot at startup. Tools include the saved connection name, such as `pg_main__db_query` or `remote_main__ssh_exec`. Connections open lazily; listing tools does not connect to remote services. Call `db_catalog_status`, `ssh_catalog_status`, `wsl_catalog_status` or `s3_catalog_status` to inspect loaded and skipped connections without printing credentials. If the catalog is missing or invalid, a newly started server exposes its status tool so the problem remains visible.
|
|
86
82
|
|
|
87
|
-
|
|
83
|
+
Connection names use ASCII letters, digits, underscores or hyphens: Database up to 35 characters, SSH/WSL up to 30, and S3 up to 37. The names `akms_db`, `akms_ssh`, `akms_wsl` and `akms_s3` are reserved.
|
|
88
84
|
|
|
89
|
-
|
|
85
|
+
## Register, compare and import
|
|
90
86
|
|
|
91
|
-
|
|
87
|
+
**Register** shares the service selection across all kinds. Newly registered services receive saved connections. Unregistering removes only AKMS-managed entries from that service and keeps the catalog.
|
|
92
88
|
|
|
93
|
-
|
|
89
|
+
**Sync** compares saved settings with client settings and retries unfinished changes. Select an item to see the AKMS version beside the current service version, then choose which one to use. Secret values stay hidden in comparisons. Changes made outside setup remain intact until you approve a version.
|
|
94
90
|
|
|
95
|
-
|
|
91
|
+
When Sync shows **Not yet imported**, choose **Import existing connections** on that screen. Review the versions and choose one, or use a new connection name to keep both. A runtime wait is shown separately from a failed write; retained entries identify the services in which they remain.
|
|
96
92
|
|
|
97
|
-
|
|
93
|
+
## Upgrading from 0.3.x to 0.4.0
|
|
98
94
|
|
|
99
|
-
|
|
95
|
+
Versions 0.3.x and earlier used the separate `@akms/mcp-db`, `@akms/mcp-ssh`, `@akms/mcp-wsl` and `@akms/mcp-s3` packages. Version 0.4.0 includes these servers in `@akms/mcp`.
|
|
100
96
|
|
|
101
|
-
|
|
97
|
+
1. Run `npx -y @akms/mcp@latest` to open the current setup.
|
|
98
|
+
2. Open **Runtime**. The main menu marks it **Not installed** until the unified runtime is installed, then **Registry update available**. Choose **Install AKMS MCP** first when it is offered.
|
|
99
|
+
3. Choose **Migrate registry** in Runtime when it is available. Review the old/new package versions, launch paths and proposed replacements, then approve the migration; its apply confirmation defaults to **No**.
|
|
100
|
+
4. Applying the migration runs synchronization to rewrite managed client entries. Open **Sync** to resolve retained external edits or retry unfinished writes. A kind still listed one entry per connection is grouped into `akms_<kind>`, and the registry remains version 2.
|
|
101
|
+
5. Open **Runtime > Remove old packages** when it is offered. It lists legacy packages only when the catalog and inspected client settings no longer use them. Removal is optional and defaults to **No**; finish migration and Sync before removing packages still in use.
|
|
102
|
+
6. Restart or reconnect your AI clients to replace running servers.
|
|
103
|
+
7. Call each kind's `*_catalog_status` tool and confirm its loaded connections.
|
|
102
104
|
|
|
103
|
-
The
|
|
105
|
+
The new target is `node .../node_modules/@akms/mcp/lib/<kind>.js --catalog`. Migrate registry moves old direct paths and standard npx entries, and groups connections still listed one entry each. A connection saved with a custom command is not started on its own any more; its settings load in the grouped entry. Externally edited entries require review. If installation is deferred or fails, old launches are kept; install from **Runtime**, then choose **Migrate registry** there.
|
|
104
106
|
|
|
105
|
-
|
|
106
|
-
npx -y --prefer-online @akms/mcp@latest
|
|
107
|
-
```
|
|
107
|
+
## Upgrading from 0.2.x
|
|
108
108
|
|
|
109
|
-
|
|
109
|
+
For clients with individual npx entries and no shared catalog:
|
|
110
110
|
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
| AWS S3 | `S3_BUCKET`, `S3_REGION`, `S3_AUTH=static`, `S3_ACCESS_KEY_ID`, `S3_SECRET_ACCESS_KEY` | Existing bucket and credentials permitted to access it; temporary credentials also need `S3_SESSION_TOKEN`. With an available AWS credential provider, omit the three static-auth fields. |
|
|
117
|
-
| S3-compatible | `S3_BACKEND=compatible`, `S3_BUCKET`, `S3_ENDPOINT`, `S3_REGION`, `S3_AUTH=static`, `S3_ACCESS_KEY_ID`, `S3_SECRET_ACCESS_KEY` | Existing bucket, service endpoint, signing region and credentials. |
|
|
111
|
+
1. Run `npx -y @akms/mcp@latest`, open **Runtime** and choose **Install AKMS MCP**.
|
|
112
|
+
2. Open **Register**, select your services and apply. Matching copies become one shared connection; differing copies stay unchanged until you choose a version.
|
|
113
|
+
3. Complete the offered comparison, or use **Sync > Import existing connections**. Review description-only differences too. Keep the connection name to replace its old entries, or choose a new name to keep both.
|
|
114
|
+
4. Run **Sync** to finish pending changes. If **Registry update available** appears, review **Runtime > Migrate registry** as described above.
|
|
115
|
+
5. Restart or reconnect clients, then check the appropriate `*_catalog_status` tools.
|
|
118
116
|
|
|
119
|
-
|
|
117
|
+
If you register before installing the runtime, **Waiting for runtime** is a normal pending state. Existing entries stay until the replacement is ready. Install from **Runtime**, then use **Runtime > Migrate registry** if offered and **Sync** to finish. Installing the runtime alone does not finish the conversion.
|
|
120
118
|
|
|
121
|
-
|
|
119
|
+
Each client session owns its MCP processes. Start a fresh session or thread after upgrading, and close old sessions whose servers you want to stop.
|
|
122
120
|
|
|
123
|
-
|
|
121
|
+
## Catalog security and recovery
|
|
124
122
|
|
|
125
|
-
|
|
123
|
+
The shared catalog is `~/.akms/mcp/registry.json`, or `$AKMS_MCP_HOME/registry.json`. It contains complete connection settings, including passwords and secret values **in plaintext**. Grouped AI client entries hold no connection credentials; manual or older entries that have not been imported still hold their own values. The previous revision, `registry.previous.json`, also contains saved credentials. SSH private-key settings store file paths, not the key files themselves.
|
|
126
124
|
|
|
127
|
-
|
|
125
|
+
On POSIX, new catalog files request mode `0600` and new catalog directories `0700`; existing permissions are not tightened. Windows uses inherited parent-directory ACLs. Check access permissions when choosing a custom location.
|
|
128
126
|
|
|
129
|
-
|
|
130
|
-
|---|---|---|
|
|
131
|
-
| Database | `@akms/mcp-db` | `config` |
|
|
132
|
-
| SSH | `@akms/mcp-ssh` | `config` |
|
|
133
|
-
| WSL | `@akms/mcp-wsl` | `config` |
|
|
134
|
-
| S3 | `@akms/mcp-s3` | `config` |
|
|
127
|
+
**Keep both catalog files private:** do not commit them, share them, copy them to another person or PC, paste their contents into chats/issues/AI conversations, or ask an AI agent to print them. Exclude them from cloud sync and shared backups, or protect those copies. If exposed, change the affected passwords or rotate the affected keys/tokens, then update the saved connections.
|
|
135
128
|
|
|
136
|
-
|
|
129
|
+
SSH local-transfer guards block the standard `.akms/mcp` catalog tree and also protect the two catalog files at a custom `AKMS_MCP_HOME` when available to the process. WSL's Windows-path checks apply through `/mnt/<drive>/`; remote SSH paths and native Linux paths have no catalog-specific block. These guards do not replace filesystem permissions or private storage.
|
|
137
130
|
|
|
138
|
-
|
|
131
|
+
Each successful catalog-changing operation atomically keeps one pre-operation revision in **`registry.previous.json`**. Internal bookkeeping and a no-op Sync do not replace that revision. This is one previous revision, not a backup history.
|
|
139
132
|
|
|
140
|
-
|
|
133
|
+
To recover, close setup commands, preserve the current file if needed, then copy `registry.previous.json` over `registry.json`. Reopen setup, review **Sync** and reconnect clients. Restoring the catalog does not automatically restore client files. A session entry contains no connection credentials, so Import cannot reconstruct a missing catalog from that entry alone.
|
|
141
134
|
|
|
142
135
|
## Terminal controls
|
|
143
136
|
|
|
144
|
-
Use arrow keys and Enter
|
|
145
|
-
|
|
146
|
-
Outside an interactive terminal, menus show numbers and accept a number, key or label. For scripted setup, the direct command is easiest: `akms-mcp db` passes stdin to the database setup screen.
|
|
137
|
+
Use arrow keys and Enter to select; Esc goes back one level. Colors are disabled with `NO_COLOR` or when output is piped. Piped prompts use the same choices as numbered lists and accept a number, action key or label.
|
|
147
138
|
|
|
148
|
-
See [
|
|
139
|
+
See [CHANGELOG.md](CHANGELOG.md) for release changes and [README_DEV.md](README_DEV.md) for contribution notes. Licensed under [MIT](LICENSE.md).
|