linode-mcp-server
Linode MCP Server connects AI Assistants to Linode cloud infrastructure for conversational management of cloud resources. It supports SSE and StreamableHTTP transport and integrates with AI tools for seamless cloud operations. Key features include extensive tooling for Linode services and natural language interactions.
Linode MCP Server
An MCP (Model Context Protocol) server that connects your AI Assistant or Agent to your Linode cloud infrastructure allowing you to manage your cloud resources through natural conversation. Now both SSE and StreamableHTTP transport support !
What Can You Do With This?
Ask Claude Desktop or VSCode Copilot Agent to help you with tasks like:
- "Show me all my instances in the Frankfurt region"
- "Create a new instance in Osaka"
- "Create a load balancer for my web servers"
- "Set up a managed MySQL database" etc
This server provides tools for the following Linode service categories:
- π₯οΈ instances - Linode compute instances
- πΎ volumes - Block storage volumes
- π networking - IP addresses, firewalls, VLANs
- βοΈ nodebalancers - Load balancers for distributing traffic
- π regions - Data center locations
- π placement - Instance placement policies
- π vpcs - Virtual Private Cloud networks
- π¦ objectStorage - S3-compatible object storage
- π€ domains - DNS management
- ποΈ databases - Managed MySQL/PostgreSQL databases
- βΈοΈ kubernetes - Kubernetes container orchestration (LKE)
- πΏ images - Custom disk images for instances
- π stackScripts - Deployment automation scripts
- π·οΈ tags - Resource organization labels
- π« support - Support tickets and requests
- π longview - System metrics and monitoring
- π€ profile - User profile and security settings
- π’ account - Account management, users, and billing
Getting Started
Quick Start with npx
You'll need a Linode API token to use this server. Create one in your Linode Cloud Manager profile settings.
# Start the server with your API token
npx @takashito/linode-mcp-server --token YOUR_LINODE_API_TOKEN
Setting Your API Token
You can provide your token in several ways:
-
Command line option:
npx @takashito/linode-mcp-server --token YOUR_LINODE_API_TOKEN
-
Environment variable:
export LINODE_API_TOKEN=your_token_here npx @takashito/linode-mcp-server
-
Environment file: Create a
.env
file in your project directory with:LINODE_API_TOKEN=your_token_here
Then run:
npx @takashito/linode-mcp-server
Connecting to Claude Desktop
To add this MCP server to Claude Desktop:
- Open Claude settings > Developer > Edit Config
- Add following lines to configure the MCP server:
{
"mcpServers": {
"linode": {
"command": "npx",
"args": [
"-y",
"@takashito/linode-mcp-server",
"--token",
"YOUR_LINODE_API_TOKEN"
]
}
}
}
Or with environment variables:
{
"mcpServers": {
"linode": {
"command": "npx",
"args": [
"-y",
"@takashito/linode-mcp-server"
],
"env": {
"LINODE_API_TOKEN": "YOUR_LINODE_API_TOKEN"
}
}
}
}
Connecting to VSCode Copilot Agent
Add this MCP server to VSCode Copilot Agent in your VSCode settings (setting.json):
{
"mcpServers": {
"linode": {
"command": "npx",
"args": [
"-y",
"@takashito/linode-mcp-server",
"--token",
"YOUR_LINODE_API_TOKEN",
"--categories",
"instances,volumes,regions"
]
}
}
}
β οΈ Important for GPT-4o users: When using this server with GPT-4o, use the --categories
parameter to limit the number of tools. Otherwise, you might get a 400 error in your chat responses.
Automatic Installation via Smithery to Claude Desktop
For the easiest setup, use Smithery:
npx -y @smithery/cli install @takashito/linode-mcp-server --client claude
Tools Category Selection
You can selectively enabled tools with --categories parameter:
# Enable only instances and volumes tools
npx @takashito/linode-mcp-server --token YOUR_TOKEN --categories instances,volumes
Or in Claude Desktop config:
{
"mcpServers": {
"linode": {
"command": "npx",
"args": [
"-y",
"@takashito/linode-mcp-server",
"--token",
"YOUR_LINODE_API_TOKEN",
"--categories",
"instances,volumes,regions"
]
}
}
}
Available categories: instances, volumes, networking, nodebalancers, regions, placement, vpcs, objectStorage, domains, databases, kubernetes, images, stackScripts, tags, support, longview, profile, account
To see all available categories:
npx @takashito/linode-mcp-server --list-categories
Transport Options
By default, the server uses stdio transport which is compatible with Claude Desktop. The server now supports multiple transport options:
-
stdio transport - Default transport compatible with Claude Desktop
# Default stdio transport npx @takashito/linode-mcp-server --token YOUR_TOKEN
-
SSE transport - Server-Sent Events transport
# Start with SSE transport on port 3000 with /sse npx @takashito/linode-mcp-server --token YOUR_TOKEN --transport sse
-
StreamableHTTP transport - StreamableHTTP transport for web clients
# Start with HTTP streaming transport on port 8080 with /mcp npx @takashito/linode-mcp-server --token YOUR_TOKEN --transport http
You can customize port and endpoint for both SSE and HTTP streaming transport:
--port
: HTTP/SSE server port (default: 8080 for HTTP, 3000 for SSE)--endpoint
: HTTP/SSE server endpoint path (default: /mcp for HTTP, /sse for SSE)--host
: HTTP/SSE server host (default: 127.0.0.1, SSE only)
Available Tools
This MCP server provides the following tools for interacting with Linode API services:
π₯οΈ Instances
Manage Linode compute instances, including creation, deletion, and power operations.
Instance Operations
list_instances
- Get a list of all Linode instancesget_instance
- Get details for a specific Linode instancecreate_instance
- Create a new Linode instanceupdate_instance
- Update a Linode instancedelete_instance
- Delete a Linode instancereboot_instance
- Reboot a Linode instanceboot_instance
- Power on a Linode instanceshutdown_instance
- Power off a Linode instanceresize_instance
- Resize a Linode instanceclone_instance
- Clone a Linode instance to a new Linoderebuild_instance
- Rebuild a Linode instance with a new imagerescue_instance
- Boot a Linode instance into rescue modereset_root_password
- Reset the root password for a Linode instanceinitiate_migration
- Initiate a DC migration for a Linode instanceupgrade_linode
- Upgrade a Linode instance
Instance Configuration
list_instance_configs
- Get all configuration profiles for a Linode instanceget_instance_config
- Get a specific configuration profile for a Linode instancecreate_instance_config
- Create a new configuration profile for a Linode instanceupdate_instance_config
- Update a configuration profile for a Linode instancedelete_instance_config
- Delete a configuration profile for a Linode instance
Configuration Profile Interfaces
list_config_interfaces
- List all interfaces for a configuration profileget_config_interface
- Get details for a specific configuration profile interfacecreate_config_interface
- Create a new interface for a configuration profileupdate_config_interface
- Update an interface for a configuration profiledelete_config_interface
- Delete an interface from a configuration profilereorder_config_interfaces
- Reorder interfaces for a configuration profile
Instance Disks
list_instance_disks
- Get all disks for a Linode instanceget_instance_disk
- Get a specific disk for a Linode instancecreate_instance_disk
- Create a new disk for a Linode instanceupdate_instance_disk
- Update a disk for a Linode instancedelete_instance_disk
- Delete a disk for a Linode instanceresize_instance_disk
- Resize a disk for a Linode instanceclone_disk
- Clone a disk to a new diskreset_disk_root_password
- Reset a disk root password
Instance Backups
list_backups
- Get a list of all backups for a Linode instanceget_backup
- Get details for a specific backupcreate_snapshot
- Create a snapshot for a Linode instancecancel_backups
- Cancel backups for a Linode instanceenable_backups
- Enable backups for a Linode instancerestore_backup
- Restore a backup to a Linode instance
IP Management
get_networking_information
- Get networking information for a Linode instanceallocate_ipv4_address
- Allocate an IPv4 address for a Linode instanceget_ip_address
- Get details for a specific IP addressupdate_ip_address_rdns
- Update reverse DNS for an IP addressdelete_ipv4_address
- Delete an IPv4 address
Firewall Management
list_linode_firewalls
- List firewalls for a Linode instanceapply_linode_firewalls
- Apply firewalls to a Linode instance
Instance Stats and Transfer
get_instance_stats
- Get current statistics for a Linode instanceget_instance_stats_by_date
- Get statistics for a Linode instance for a specific monthget_network_transfer
- Get network transfer information for a Linode instanceget_monthly_network_transfer
- Get monthly network transfer stats for a Linode instance
Related Resources
list_instance_nodebalancers
- List NodeBalancers attached to a Linode instancelist_instance_volumes
- List volumes attached to a Linode instance
Kernels and Instance Types
list_kernels
- Get a list of all available kernelsget_kernel
- Get details for a specific kernellist_instance_types
- Get a list of all available Linode typesget_instance_type
- Get details for a specific Linode type
πΎ Volumes
Manage block storage volumes that can be attached to Linode instances.
list_volumes
- Get a list of all volumesget_volume
- Get details for a specific volumecreate_volume
- Create a new volumedelete_volume
- Delete a volumeattach_volume
- Attach a volume to a Linode instancedetach_volume
- Detach a volume from a Linode instanceresize_volume
- Resize a volume
π Networking
Manage IP addresses, firewalls, and network infrastructure.
IP Address Management
get_ip_addresses
- Get all IP addressesget_ip_address
- Get details for a specific IP addressupdate_ip_address
- Update reverse DNS for an IP addressallocate_ip
- Allocate a new IP addressshare_ips
- Share IP addresses between Linodes
IPv6 Management
get_ipv6_ranges
- Get all IPv6 rangesget_ipv6_range
- Get a specific IPv6 rangeget_ipv6_pools
- Get all IPv6 pools
Firewall Management
get_firewalls
- Get all firewallsget_firewall
- Get details for a specific firewallcreate_firewall
- Create a new firewallupdate_firewall
- Update a firewalldelete_firewall
- Delete a firewall
Firewall Rules
get_firewall_rules
- Get all rules for a specific firewallupdate_firewall_rules
- Update rules for a specific firewall
Firewall Devices
get_firewall_devices
- Get all devices for a specific firewallcreate_firewall_device
- Create a new device for a specific firewalldelete_firewall_device
- Delete a device from a specific firewall
VLAN Management
get_vlans
- Get all VLANsget_vlan
- Get a specific VLAN
π€ Domains
Manage DNS domains and records hosted by Linode's DNS services.
list_domains
- Get a list of all domainsget_domain
- Get details for a specific domaincreate_domain
- Create a new domainupdate_domain
- Update an existing domaindelete_domain
- Delete a domainlist_domain_records
- Get a list of all domain records for a domainget_domain_record
- Get details for a specific domain recordcreate_domain_record
- Create a new domain recordupdate_domain_record
- Update a domain recorddelete_domain_record
- Delete a domain recordimport_domain_zone
- Import a domain zone from a remote nameserverclone_domain
- Clone an existing domain to a new domainget_zone_file
- Get DNS zone file for a domain
ποΈ Databases
Manage Linode Managed Database services for MySQL and PostgreSQL.
General Database Operations
list_database_engines
- Get a list of all available database engines (MySQL, PostgreSQL versions)get_database_engine
- Get details for a specific database engine versionlist_database_types
- Get a list of all available database instance types (sizes)get_database_type
- Get details for a specific database instance typelist_database_instances
- Get a list of all database instances (both MySQL and PostgreSQL)
MySQL Database Operations
list_mysql_instances
- Get a list of all MySQL database instancesget_mysql_instance
- Get details for a specific MySQL database instancecreate_mysql_instance
- Create a new MySQL database instanceupdate_mysql_instance
- Update an existing MySQL database instance settingsdelete_mysql_instance
- Delete a MySQL database instanceget_mysql_credentials
- Get admin credentials for a MySQL database instancereset_mysql_credentials
- Reset admin credentials for a MySQL database instanceget_mysql_ssl_certificate
- Get the SSL certificate for a MySQL database instancepatch_mysql_instance
- Apply the latest software updates to a MySQL database instancesuspend_mysql_instance
- Suspend a MySQL database instance (billing continues)resume_mysql_instance
- Resume a suspended MySQL database instance
PostgreSQL Database Operations
list_postgresql_instances
- Get a list of all PostgreSQL database instancesget_postgresql_instance
- Get details for a specific PostgreSQL database instancecreate_postgresql_instance
- Create a new PostgreSQL database instanceupdate_postgresql_instance
- Update an existing PostgreSQL database instance settingsdelete_postgresql_instance
- Delete a PostgreSQL database instanceget_postgresql_credentials
- Get admin credentials for a PostgreSQL database instancereset_postgresql_credentials
- Reset admin credentials for a PostgreSQL database instanceget_postgresql_ssl_certificate
- Get the SSL certificate for a PostgreSQL database instancepatch_postgresql_instance
- Apply the latest software updates to a PostgreSQL database instancesuspend_postgresql_instance
- Suspend a PostgreSQL database instance (billing continues)resume_postgresql_instance
- Resume a suspended PostgreSQL database instance
βοΈ NodeBalancers
Manage Linode's load balancing service to distribute traffic across multiple Linode instances.
list_nodebalancers
- Get a list of all NodeBalancersget_nodebalancer
- Get details for a specific NodeBalancercreate_nodebalancer
- Create a new NodeBalancerdelete_nodebalancer
- Delete a NodeBalancerlist_nodebalancer_configs
- Get a list of config nodes for a NodeBalancercreate_nodebalancer_config
- Create a new config for a NodeBalancerdelete_nodebalancer_config
- Delete a NodeBalancer configlist_nodebalancer_nodes
- Get a list of nodes for a NodeBalancer configcreate_nodebalancer_node
- Create a new node for a NodeBalancer configdelete_nodebalancer_node
- Delete a node from a NodeBalancer config
π¦ Object Storage
Manage S3-compatible object storage for storing and retrieving files.
Bucket Management
list_object_storage_clusters
- Get a list of all Object Storage clusterslist_object_storage_buckets
- Get a list of all Object Storage bucketsget_object_storage_bucket
- Get details for a specific Object Storage bucketcreate_object_storage_bucket
- Create a new Object Storage bucketdelete_object_storage_bucket
- Delete an Object Storage bucketget_object_storage_bucket_access
- Get access configuration for an Object Storage bucketupdate_object_storage_bucket_access
- Update access configuration for an Object Storage bucket
Object Operations
list_object_storage_objects
- List objects in an Object Storage bucketupload_object
- Upload a new object to a bucket from various sources (string, file, or URL)download_object
- Download an object from a bucket to your local file systemdelete_object
- Delete an object from a bucketupdate_object_acl
- Update access control level (ACL) for an object in a bucketgenerate_object_url
- Generate a pre-signed URL for an object in a bucket
Certificate Management
get_object_storage_bucket_certificate
- Get SSL/TLS certificate for an Object Storage bucketupload_object_storage_bucket_certificate
- Upload SSL/TLS certificate for an Object Storage bucketdelete_object_storage_bucket_certificate
- Delete SSL/TLS certificate for an Object Storage bucket
Access Key Management
list_object_storage_keys
- Get a list of all Object Storage keysget_object_storage_key
- Get details for a specific Object Storage keycreate_object_storage_key
- Create a new Object Storage keyupdate_object_storage_key
- Update an Object Storage keydelete_object_storage_key
- Delete an Object Storage keyget_object_storage_default_bucket_access
- Get default bucket access configurationupdate_object_storage_default_bucket_access
- Update default bucket access configuration
Usage and Service Information
get_object_storage_transfer
- Get Object Storage transfer statisticslist_object_storage_types
- Get a list of all available Object Storage types with pricingcancel_object_storage
- Cancel Object Storage service
π VPCs
Manage Virtual Private Cloud networks to isolate and connect Linode resources.
list_vpcs
- Get a list of all VPCsget_vpc
- Get details for a specific VPCcreate_vpc
- Create a new VPCupdate_vpc
- Update an existing VPCdelete_vpc
- Delete a VPClist_vpc_subnets
- List all subnets in a VPCget_vpc_subnet
- Get details for a specific subnet in a VPCcreate_vpc_subnet
- Create a new subnet in a VPCupdate_vpc_subnet
- Update an existing subnet in a VPCdelete_vpc_subnet
- Delete a subnet in a VPClist_vpc_ips
- List all IP addresses in a VPC
π Placement Groups
Manage instance placement policies to control how instances are distributed across physical hardware.
list_placement_groups
- List all placement groupsget_placement_group
- Get details for a specific placement groupcreate_placement_group
- Create a new placement groupupdate_placement_group
- Update an existing placement groupdelete_placement_group
- Delete a placement groupassign_instances
- Assign Linode instances to a placement groupunassign_instances
- Unassign Linode instances from a placement group
π Regions
Retrieve information about Linode's global data center locations.
list_regions
- Get a list of all available regionsget_region
- Get details for a specific region
βΈοΈ Kubernetes (LKE)
Manage Linode Kubernetes Engine clusters and node pools.
Cluster Operations
list_kubernetes_clusters
- List all Kubernetes clustersget_kubernetes_cluster
- Get details for a specific Kubernetes clustercreate_kubernetes_cluster
- Create a new Kubernetes clusterupdate_kubernetes_cluster
- Update an existing Kubernetes clusterdelete_kubernetes_cluster
- Delete a Kubernetes clusterget_kubernetes_kubeconfig
- Get the kubeconfig for a Kubernetes clusterget_kubernetes_api_endpoints
- Get the API endpoints for a Kubernetes clusterget_kubernetes_dashboard_url
- Get the dashboard URL for a Kubernetes clusterdelete_kubernetes_service_token
- Delete the service token for a Kubernetes clusterrecycle_kubernetes_cluster
- Recycle all nodes in a Kubernetes clusterupgrade_kubernetes_cluster
- Upgrade a Kubernetes cluster to the latest patch versionlist_kubernetes_versions
- List all available Kubernetes versionsget_kubernetes_version
- Get details for a specific Kubernetes versionlist_kubernetes_types
- List all available Kubernetes types
Node Pool Operations
list_kubernetes_node_pools
- List all node pools in a Kubernetes clusterget_kubernetes_node_pool
- Get details for a specific node poolcreate_kubernetes_node_pool
- Create a new node pool for a Kubernetes clusterupdate_kubernetes_node_pool
- Update an existing node pooldelete_kubernetes_node_pool
- Delete a node pool from a Kubernetes clusterrecycle_kubernetes_nodes
- Recycle specific nodes in a Kubernetes node pool
Node Operations
delete_kubernetes_node
- Delete a node from a Kubernetes clusterrecycle_kubernetes_node
- Recycle a node in a Kubernetes cluster
πΏ Images
Manage disk images that can be used to create Linode instances.
list_images
- Get a list of all available imagesget_image
- Get details for a specific imagecreate_image
- Create a new image from an existing diskupload_image
- Initialize an image uploadupdate_image
- Update an existing imagedelete_image
- Delete an imagereplicate_image
- Replicate an image to other regions
π StackScripts
Manage reusable scripts that automate the deployment of custom environments on Linode instances.
list_stackscripts
- Get a list of all StackScriptsget_stackscript
- Get details for a specific StackScriptcreate_stackscript
- Create a new StackScriptupdate_stackscript
- Update an existing StackScriptdelete_stackscript
- Delete a StackScript
π·οΈ Tags
Manage labels that help organize and categorize Linode resources.
list_tags
- Get a list of all Tagsget_tag
- Get details for a specific Tagcreate_tag
- Create a new Tagdelete_tag
- Delete a Tag
π« Support
Manage support tickets and requests with Linode's support team.
list_tickets
- List support tickets for your accountget_ticket
- Get details of a specific support ticketcreate_ticket
- Open a new support ticketclose_ticket
- Close a support ticketlist_replies
- List replies to a support ticketcreate_reply
- Reply to a support ticketupload_attachment
- Upload an attachment to a support ticket
π Longview
Manage Longview monitoring clients for collecting system metrics.
list_longview_clients
- Get a list of all Longview clientsget_longview_client
- Get details for a specific Longview clientcreate_longview_client
- Create a new Longview clientupdate_longview_client
- Update a Longview clientdelete_longview_client
- Delete a Longview clientlist_longview_subscriptions
- Get a list of all Longview subscription plansget_longview_subscription
- Get details for a specific Longview subscription planget_longview_data
- Get monitoring data from a Longview client
π€ Profile
Manage user profile information, SSH keys, API tokens, and security settings.
Profile Operations
get_profile
- Get your user profile informationupdate_profile
- Update your user profile information
SSH Key Operations
list_ssh_keys
- List SSH keys associated with your profileget_ssh_key
- Get details for a specific SSH keycreate_ssh_key
- Add a new SSH key to your profileupdate_ssh_key
- Update an existing SSH keydelete_ssh_key
- Delete an SSH key from your profile
API Token Operations
list_api_tokens
- List API tokens associated with your profileget_api_token
- Get details for a specific API tokencreate_personal_access_token
- Create a new personal access tokenupdate_api_token
- Update an existing API tokendelete_api_token
- Delete an API tokenlist_api_scopes
- List available API scopes for tokens and OAuth clients
Two-Factor Authentication
get_two_factor_secret
- Get a two-factor authentication secret and QR codeenable_two_factor
- Enable two-factor authentication for your accountdisable_two_factor
- Disable two-factor authentication for your account
Authorized Apps
list_authorized_apps
- List OAuth apps authorized to access your accountget_authorized_app
- Get details about a specific authorized OAuth apprevoke_authorized_app
- Revoke access for an authorized OAuth app
Trusted Devices
list_trusted_devices
- List devices trusted for two-factor authenticationget_trusted_device
- Get details about a specific trusted devicerevoke_trusted_device
- Revoke trusted status for a device
Grants
list_grants
- List grants for a restricted user
Login History
list_logins
- List login history for your accountget_login
- Get details about a specific login event
Phone Verification
delete_phone_number
- Delete the phone number associated with your accountsend_phone_verification
- Send a verification code to a phone numberverify_phone_number
- Verify a phone number with a received code
User Preferences
get_user_preferences
- Get user interface preferencesupdate_user_preferences
- Update user interface preferences
Security Questions
get_security_questions
- Get available security questionsanswer_security_questions
- Answer security questions for account recovery
π’ Account
Manage Linode account information, users, billing, and settings.
Account Operations
get_account
- Get your account informationupdate_account
- Update your account information
Agreements and Services
list_agreements
- List legal agreementsacknowledge_agreements
- Acknowledge legal agreementslist_available_services
- List available services by regionget_region_service_availability
- Get service availability for a specific region
Account Management
cancel_account
- Cancel your accountlist_child_accounts
- List child accountsget_child_account
- Get a child accountcreate_proxy_token
- Create a proxy user token for a child account
Events
list_events
- List account eventsget_event
- Get a specific eventmark_event_as_read
- Mark an event as readmark_event_as_seen
- Mark an event as seen
Billing
list_invoices
- List invoicesget_invoice
- Get a specific invoicelist_invoice_items
- List items for a specific invoiceget_account_network_transfer
- Get network transfer information for the entire account
Login & Maintenance
list_account_logins
- List account loginsget_account_login
- Get a specific account loginlist_maintenances
- List maintenance eventslist_notifications
- List notifications
OAuth Clients
list_oauth_clients
- List OAuth clientscreate_oauth_client
- Create an OAuth clientget_oauth_client
- Get an OAuth clientupdate_oauth_client
- Update an OAuth clientdelete_oauth_client
- Delete an OAuth clientreset_oauth_client_secret
- Reset an OAuth client secret
Account Settings
get_account_settings
- Get account settingsupdate_account_settings
- Update account settingsenable_managed_service
- Enable Linode Managed service
User Management
list_users
- List userscreate_user
- Create a userget_user
- Get a userupdate_user
- Update a userdelete_user
- Delete a userget_user_grants
- Get a user's grantsupdate_user_grants
- Update a user's grants
License
MIT