npm @agentmetal/mcpstdioMITupdated 2mo ago
MCP server that exposes AgentMetal as tools, so an agent can discover → pay → provision → SSH in → run commands → manage → renew its own Linux server (VPS / cloud instance) with no human signup. Paid tools sign USDC payments over x402 v2 (or pay by card); the rest are plain HTTP.
What can you do with agentmetal?
@agentmetal/mcp
MCP server that exposes AgentMetal as tools, so an agent can discover → pay → provision → SSH in → run commands → manage → renew its own Linux server (VPS / cloud instance) with no human signup. Paid tools sign USDC payments over x402 v2 (or pay by card); the rest are plain HTTP.
Tools
13 tools. Paid tools sign a USDC/x402 payment; account-gated tools need
AGENTMETAL_API_KEY (am_live_…) and ownership of the server.
| Tool | Pays? | Account key? | What it does |
|---|---|---|---|
get_catalog |
— | — | List plans, locations, and add-on pricing (bandwidth, storage). The free discovery hook. |
provision_server |
✅ USDC | — | Provision a VPS (plan, days, optional ssh_key/via, managed_key) → id, IPv4, SSH. With managed_key:true, a server-side keypair is generated, authorized, and the private key returned once (stored only encrypted) to enable exec_command. |
get_server |
— | — | Status, IPv4, expiry, bandwidth, storage for a server id |
list_servers |
— | — | Fleet for a wallet/account |
extend_server |
✅ USDC | — | Extend a lease by N days |
destroy_server |
— | ✅ | Destroy now |
reboot_server |
— | ✅ | Soft-reboot an owned server |
server_logs |
— | ✅ | Hypervisor-level diagnostics without logging in: status, recent provider actions, a VNC console URL, and live CPU/disk/net metrics (no text boot log exists provider-side) |
exec_command |
— | ✅ | Run a shell command as root over SSH → exit_code/stdout/stderr. Requires a server provisioned with managed_key:true. Bounded: 1–120 s timeout, 256 KB output cap. |
get_firewall |
— | — | Read a box's edge-firewall rules. Callable from the box itself (source-IP identity) or with an account key. |
manage_firewall |
— | — | Open/close inbound ports on a box's edge firewall (protocol/port/source_ips). From the box itself or with an account key; SSH-lockout guarded. |
claim_account |
— | — | Email a one-time claim code (via AWS SES) |
verify_claim |
— | — | Redeem the code for an account API key. Link a wallet by also passing wallet + wallet_signature. |
Add-ons (currently API endpoints, not yet separate MCP tools): extra storage
($0.01/GB/day, attached block volume) via POST /v1/servers/{id}/storage and extra
bandwidth ($2/TB beyond the 20 TB included) via POST /v1/servers/{id}/bandwidth.
Configuration (env)
| Var | Default | Purpose |
|---|---|---|
AGENTMETAL_BASE_URL |
https://api.agentmetal.dev |
API base URL |
WALLET_PRIVATE_KEY |
— | 0x… EVM key used to pay 402s. Omit and paid tools fail with a clear message. |
AGENTMETAL_NETWORK |
eip155:8453 |
CAIP-2 network (Base mainnet) |
AGENTMETAL_MAX_USDC |
50 |
Per-request spend cap, in USDC |
AGENTMETAL_API_KEY |
— | am_live_… account key, required for destroy_server / reboot_server / server_logs / exec_command |
Use with Claude Code
// .mcp.json (or claude mcp add)
{
"mcpServers": {
"agentmetal": {
"command": "node",
"args": ["packages/mcp/src/index.ts"],
"env": {
"WALLET_PRIVATE_KEY": "0x…",
"AGENTMETAL_MAX_USDC": "50"
}
}
}
}
The wallet must hold USDC on Base. The spend cap (AGENTMETAL_MAX_USDC) bounds what any
single tool call can pay; a 402 above the cap is refused before signing.
Status: client + server are unit-tested and the stdio handshake is verified. Live USDC settlement needs a funded wallet + an x402 facilitator that supports the
exact/eip155:8453kind.
Install
Add agentmetal to your client. Pick the one you use.
claude mcp add mcp -- npx -y @agentmetal/mcpcodex mcp add mcp -- npx -y @agentmetal/mcpamp mcp add mcp -- npx -y @agentmetal/mcp{
"mcpServers": {
"mcp": {
"command": "npx",
"args": [
"-y",
"@agentmetal/mcp"
]
}
}
}Add to `claude_desktop_config.json`, then restart Claude Desktop.
{
"mcpServers": {
"mcp": {
"command": "npx",
"args": [
"-y",
"@agentmetal/mcp"
]
}
}
}Add to `~/.cursor/mcp.json`, or `.cursor/mcp.json` for a single project.
code --add-mcp '{"name":"mcp","command":"npx","args":["-y","@agentmetal/mcp"]}'Or add the block manually to `.vscode/mcp.json` under `servers`.
{
"mcpServers": {
"mcp": {
"command": "npx",
"args": [
"-y",
"@agentmetal/mcp"
]
}
}
}Add to `~/.codeium/windsurf/mcp_config.json`.
{
"mcpServers": {
"mcp": {
"command": "npx",
"args": [
"-y",
"@agentmetal/mcp"
]
}
}
}Add to `cline_mcp_settings.json` via the MCP Servers panel.
{
"mcpServers": {
"mcp": {
"command": "npx",
"args": [
"-y",
"@agentmetal/mcp"
]
}
}
}Add to `~/.gemini/settings.json`.
{
"mcpServers": {
"mcp": {
"type": "local",
"command": "npx",
"args": [
"-y",
"@agentmetal/mcp"
],
"tools": [
"*"
]
}
}
}Add to `~/.copilot/mcp-config.json`, or run `/mcp add` inside the CLI.
{
"context_servers": {
"mcp": {
"command": {
"path": "npx",
"args": [
"-y",
"@agentmetal/mcp"
]
}
}
}
}Add to your Zed `settings.json`.
npx -y @agentmetal/mcpRun `goose configure`, choose **Add Extension → Command-line Extension**, and paste this command.
13 tools
agentmetal exposes 13 tools to a connected agent.
- get_catalog
- —
- provision_server
- ✅ USDC
- get_server
- —
- list_servers
- —
- extend_server
- ✅ USDC
- destroy_server
- —
- reboot_server
- —
- server_logs
- —
- exec_command
- —
- get_firewall
- —
- manage_firewall
- —
- claim_account
- —
- verify_claim
- —
Score
83 / 100
Excellent
- Documentation25/25
- Maintenance22/25
- Trust16/20
- Capability8/15
- Install experience12/15
- Documents what it does and how to connect
- Has a resolvable package or endpoint
- Exposes at least one tool, prompt or resource
- README has substantive content
- Includes a code example
- Documents its configuration
- Mentions credentials or security posture
- Last commit 61 days ago
- Has a release history
- Repository is not archived
- Licensed MIT
- Namespace verified in the official MCP registry
- Claimed by its owner
- Published under an organisation
- 13 tool(s) documented
- Provides prompt templates
- Provides resources
- 12 documented install method(s)
- Published to a package registry
- Offers a hosted endpoint — no local install
Version history
| Versions | Published |
|---|---|
| 0.3.2Latest | Jul 2, 2026 |
| 0.3.1 | Jun 30, 2026 |
| 0.3.0 | Jun 24, 2026 |
| 0.2.1 | Jun 15, 2026 |
| 0.2.0 | Jun 15, 2026 |
| 0.1.2 | Jun 15, 2026 |
| 0.1.1 | Jun 14, 2026 |