@servers.com/mcp_linux_arm64 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 +21 -0
- package/README.md +229 -0
- package/package.json +22 -0
- package/serverscom-mcp +0 -0
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_arm64",
|
|
3
|
+
"version": "0.0.0-SNAPSHOT-none",
|
|
4
|
+
"bin": {
|
|
5
|
+
"mcp_linux_arm64": "serverscom-mcp"
|
|
6
|
+
},
|
|
7
|
+
"os": [
|
|
8
|
+
"linux"
|
|
9
|
+
],
|
|
10
|
+
"cpu": [
|
|
11
|
+
"arm64"
|
|
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
|