@servers.com/mcp_linux_amd64 0.0.0-SNAPSHOT-none

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 ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 Servers.com
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
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,229 @@
1
+ # serverscom-mcp
2
+
3
+ MCP (Model Context Protocol) server for managing [Servers.com](https://servers.com) dedicated server infrastructure. Enables AI assistants (Claude, etc.) to interact with the Servers.com API directly — query servers, manage SSH keys, configure networks, reinstall operating systems, and more.
4
+
5
+ ## Quick Start
6
+
7
+ ```bash
8
+ # run directly with npx (no install required)
9
+ npx @servers.com/mcp --token your-api-token
10
+
11
+ # or via env var
12
+ SC_TOKEN=your-api-token npx @servers.com/mcp
13
+ ```
14
+
15
+ ## Requirements
16
+
17
+ - Servers.com API token
18
+
19
+ ## Releasing
20
+
21
+ Releases are fully automated via [GoReleaser](https://goreleaser.com) and GitHub Actions.
22
+
23
+ Push a version tag to trigger the pipeline:
24
+
25
+ ```bash
26
+ git tag v1.2.3
27
+ git push origin v1.2.3
28
+ ```
29
+
30
+ The workflow (`.github/workflows/release.yml`) will:
31
+ 1. Build binaries for Linux, macOS, Windows (amd64 + arm64)
32
+ 2. Create a GitHub Release with archives and checksums
33
+ 3. Publish `@servers.com/mcp` and platform packages to npm via [`goreleaser-npm-publisher`](https://github.com/evg4b/goreleaser-npm-publisher)
34
+
35
+ **Required repository secrets:**
36
+ - `NPM_TOKEN` — npm automation token with publish access
37
+
38
+ ## Building from source
39
+
40
+ ```bash
41
+ go build -o serverscom-mcp .
42
+ ```
43
+
44
+ ## Configuration
45
+
46
+ Flags can be set via CLI flags or environment variables:
47
+
48
+ | Flag | Env var | Required | Default | Description |
49
+ |---|---|---|---|---|
50
+ | `--token`, `-t` | `SC_TOKEN` | yes | — | Servers.com API token |
51
+ | `--endpoint`, `-e` | `SC_ENDPOINT` | no | `https://api.servers.com/v1` | Custom API endpoint |
52
+
53
+ ```bash
54
+ # via env vars
55
+ SC_TOKEN=your-token ./serverscom-mcp
56
+
57
+ # via flags
58
+ ./serverscom-mcp --token your-token --endpoint https://api.servers.com/v1
59
+ ```
60
+
61
+ ## Usage with Claude Desktop
62
+
63
+ ### via npx (recommended)
64
+
65
+ ```json
66
+ {
67
+ "mcpServers": {
68
+ "serverscom": {
69
+ "command": "npx",
70
+ "args": ["-y", "@servers.com/mcp"],
71
+ "env": {
72
+ "SC_TOKEN": "your-api-token"
73
+ }
74
+ }
75
+ }
76
+ }
77
+ ```
78
+
79
+ ### via local binary
80
+
81
+ ```json
82
+ {
83
+ "mcpServers": {
84
+ "serverscom": {
85
+ "command": "/path/to/serverscom-mcp",
86
+ "env": {
87
+ "SC_TOKEN": "your-api-token"
88
+ }
89
+ }
90
+ }
91
+ }
92
+ ```
93
+
94
+ ## Available Tools
95
+
96
+ ### Hosts
97
+
98
+ | Tool | Description |
99
+ |---|---|
100
+ | `list_hosts` | List all hosts (dedicated servers, K8s baremetal nodes, SBM) with optional filtering by search pattern, location, type, and labels |
101
+
102
+ ### Dedicated Servers
103
+
104
+ | Tool | Description |
105
+ |---|---|
106
+ | `get_dedicated_server` | Get detailed server info: configuration, status, `operational_status`, `power_status` |
107
+ | `update_dedicated_server` | Update title, labels, `user_data` (cloud-init), or `ipxe_config` |
108
+ | `list_dedicated_server_features` | List features and their status for a server |
109
+
110
+ #### Features
111
+
112
+ Each feature supports `activate_*` and `deactivate_*` operations. All feature changes are **asynchronous** — poll `list_dedicated_server_features` until the desired status is reached.
113
+
114
+ | Feature | Description |
115
+ |---|---|
116
+ | `disaggregated_public_ports` | Disaggregated public ports |
117
+ | `disaggregated_private_ports` | Disaggregated private ports |
118
+ | `no_public_ip_address` | No default public IP; restricts rescue mode, OOB access, additional public networks |
119
+ | `no_private_ip` | No default private IP |
120
+ | `no_public_network` | Public interface is not configured at all (more restrictive than `no_public_ip_address`) |
121
+ | `host_rescue_mode` | Rescue mode (requires `auth_methods` and optionally `ssh_key_fingerprints`) |
122
+ | `oob_public_access` | Out-of-band public access |
123
+ | `private_ipxe_boot` | Private iPXE boot (requires `ipxe_config`) |
124
+
125
+ ### SSH Keys
126
+
127
+ | Tool | Description |
128
+ |---|---|
129
+ | `list_ssh_keys` | List all SSH keys in the account |
130
+ | `get_ssh_key` | Get key details by fingerprint |
131
+ | `create_ssh_key` | Create a new SSH key |
132
+ | `update_ssh_key` | Update key name or labels |
133
+ | `delete_ssh_key` | Delete an SSH key |
134
+ | `list_dedicated_server_ssh_keys` | List keys attached to a server |
135
+ | `attach_ssh_keys_to_dedicated_server` | Attach SSH keys to a server |
136
+ | `detach_ssh_key_from_dedicated_server` | Detach an SSH key from a server |
137
+
138
+ ### Power Management
139
+
140
+ All power operations are **asynchronous** — poll `get_dedicated_server` and check `power_status`.
141
+
142
+ | Tool | Description |
143
+ |---|---|
144
+ | `power_on_dedicated_server` | Power on |
145
+ | `power_off_dedicated_server` | Power off |
146
+ | `power_cycle_dedicated_server` | Hard reboot |
147
+
148
+ ### OS Reinstallation
149
+
150
+ | Tool | Description |
151
+ |---|---|
152
+ | `reinstall_dedicated_server` | Reinstall OS with custom partition layout, RAID config, and SSH key injection. **Async** — `operational_status` transitions to `installation`, then back to `normal` |
153
+
154
+ Supports custom partition layouts and RAID configuration. Max 1 SSH key per reinstall.
155
+
156
+ ### Networks
157
+
158
+ | Tool | Description |
159
+ |---|---|
160
+ | `list_dedicated_server_networks` | List all networks (public/private, IPv4/IPv6) attached to a server |
161
+ | `get_dedicated_server_network` | Get network details: CIDR, family, interface type, distribution method, status |
162
+ | `get_dedicated_server_network_usage` | Check current and committed bandwidth utilization |
163
+ | `add_dedicated_server_public_ipv4_network` | Add additional public IPv4 network (`gateway` or `route`) |
164
+ | `add_dedicated_server_private_ipv4_network` | Add additional private IPv4 network (`gateway` or `route`) |
165
+ | `activate_dedicated_server_public_ipv6_network` | Activate IPv6 (one allocation per server) |
166
+ | `delete_dedicated_server_network` | Remove an additional network (default network cannot be deleted) |
167
+
168
+ #### Network Quotas
169
+
170
+ - **Route (alias) networks**: max 32 IPs per server
171
+ - **Additional gateway networks per family** (public/private IPv4): max 2 additional
172
+ - **Total IPs across all gateway networks per family**: max 72 (e.g. if default is /29 = 8 IPs, only 64 remain)
173
+ - **IPv6**: max 1 allocation per server (either a single /64 or a /125 + /64 depending on location)
174
+
175
+ ### Locations & Infrastructure Options
176
+
177
+ | Tool | Description |
178
+ |---|---|
179
+ | `list_locations` / `get_location` | Data center locations |
180
+ | `list_server_model_options` / `get_server_model_option` | Available server models per location |
181
+ | `list_ram_options` | RAM upgrade options |
182
+ | `list_os_options` / `get_os_option` | Available operating systems |
183
+ | `list_drive_model_options` / `get_drive_model_option` | Available drive models |
184
+ | `list_uplink_options` / `get_uplink_option` | Network uplink options |
185
+ | `list_bandwidth_options` / `get_bandwidth_option` | Bandwidth plans |
186
+ | `list_sbm_flavor_options` / `get_sbm_flavor_option` | Scalable Bare Metal (SBM) flavors |
187
+ | `list_sbm_os_options` | OS options for SBM servers |
188
+
189
+ ### Storage
190
+
191
+ | Tool | Description |
192
+ |---|---|
193
+ | `list_dedicated_server_drive_slots` | List all drive slots and installed drives for a server |
194
+
195
+ ## Async Operations
196
+
197
+ Many operations are asynchronous. After calling them, poll the relevant status field:
198
+
199
+ | Operation | Poll with | Field to watch |
200
+ |---|---|---|
201
+ | Feature changes | `list_dedicated_server_features` | feature `status` |
202
+ | Rescue mode | `get_dedicated_server` | `operational_status` |
203
+ | OS reinstallation | `get_dedicated_server` | `operational_status` |
204
+ | Power changes | `get_dedicated_server` | `power_status` |
205
+
206
+ ### `operational_status` values
207
+
208
+ `normal` → `provisioning` → `installation` → `entering_rescue_mode` → `rescue_mode` → `exiting_rescue_mode` → `maintenance`
209
+
210
+ ## Project Structure
211
+
212
+ ```
213
+ serverscom-mcp/
214
+ ├── main.go # Entry point: MCP server setup, env config
215
+ └── internal/tools/
216
+ ├── tools.go # Tool registration hub, shared helpers
217
+ ├── hosts.go # list_hosts
218
+ ├── dedicated_servers.go # Server CRUD and feature management
219
+ ├── ssh_keys.go # SSH key operations
220
+ ├── locations.go # Location and infrastructure options
221
+ ├── power.go # Power management
222
+ ├── drives.go # Drive slot listing
223
+ ├── reinstall.go # OS reinstallation
224
+ └── networks.go # Network management
225
+ ```
226
+
227
+ ## License
228
+
229
+ See [LICENSE](LICENSE).
package/package.json ADDED
@@ -0,0 +1,22 @@
1
+ {
2
+ "name": "@servers.com/mcp_linux_amd64",
3
+ "version": "0.0.0-SNAPSHOT-none",
4
+ "bin": {
5
+ "mcp_linux_amd64": "serverscom-mcp"
6
+ },
7
+ "os": [
8
+ "linux"
9
+ ],
10
+ "cpu": [
11
+ "x64"
12
+ ],
13
+ "files": [
14
+ "README.md",
15
+ "LICENSE"
16
+ ],
17
+ "keywords": [
18
+ "mcp,serverscom,dedicated-servers,infrastructure"
19
+ ],
20
+ "license": "MIT",
21
+ "description": "MCP server for Servers.com infrastructure management"
22
+ }
package/serverscom-mcp ADDED
Binary file