MCP
Model Context Protocol server for searching the marketplace and operating resources with a service-account token
NodeRings ships a Model Context Protocol server so an assistant can call the API with a service-account token. The repository is not public. This page is the contract.
Writes are off by default. A caller bearer token is checked and stripped. Outbound calls use the service-account token the process holds, not the token the assistant presented.
Who gets which tools
The organization type is detected at startup. A client organization and a provider organization do not see each other's tools.
| Tool | Who |
|---|---|
get_identity, list_organizations, get_organization | Client and provider |
list_tickets, get_ticket, create_ticket | Client and provider |
list_plans, list_distros | Client and provider |
list_marketplace_offerings, get_marketplace_plan | Client |
list_virtual_machines, get_virtual_machine | Client |
create_virtual_machine, update_virtual_machine_power | Client, and only when writes are enabled |
create_snapshot, list_snapshots, list_backups | Client |
list_firewall_rulesets, get_firewall_ruleset | Client |
list_dns_zones, get_dns_zone, list_dns_records | Client |
upsert_dns_record, delete_dns_record | Client, and only when writes are enabled |
list_ssh_keys | Client |
list_nodes, get_node, list_platforms, list_regions | Provider |
Buying a virtual machine is create_virtual_machine. That tool is registered only when writes are turned on for that process. Search (list_marketplace_offerings, get_marketplace_plan) is read-only and is available to a client service account without that switch.
Auth
The process needs a NodeRings service-account JWT (TOKEN or TOKEN_FILE) and a backend address. On HTTP, it also needs a separate caller secret of at least 32 characters. The caller secret is what the assistant sends as Authorization: Bearer. It is not the service-account JWT.
stdio trusts the operating system user who can run the binary. Prefer TOKEN_FILE over putting the JWT in the environment.
Create the service account in the console under Access Control, then point the assistant at the server. The same service account's permissions are the permissions the tools have. The MCP process does not grant a role the account lacks.
