Skip to main content
PUT
/
servers
/
:name
Update Server
curl --request PUT \
  --url https://api.example.com/servers/:name \
  --header 'Content-Type: application/json' \
  --data '
{
  "version": "<string>",
  "description": "<string>",
  "license": "<string>",
  "repository": {
    "type": "<string>",
    "url": "<string>"
  },
  "pricing": {
    "currency": "<string>",
    "amount": 123
  },
  "metadata": {
    "tags": [
      {}
    ],
    "homepage": "<string>"
  }
}
'
{
  "success": true,
  "data": {
    "name": "weather-mcp",
    "version": "1.3.0",
    "updated_at": "2025-12-09T10:30:00Z",
    "changes": ["version", "description", "metadata"],
    "rescanRequired": false,
    "message": "Server updated successfully"
  },
  "meta": {
    "timestamp": "2025-12-09T10:30:00Z",
    "version": "v1",
    "requestId": "req_xyz789"
  }
}

Endpoint

Authentication

This endpoint requires authentication. You must be the server owner.
Only the server owner can update server metadata

Path Parameters

name
string
required
Unique server identifier to update Example: weather-mcp, database-query-mcp

Request Body

All fields are optional. Only include fields you want to update.
version
string
New semantic version number Format: MAJOR.MINOR.PATCH Rules: - Must be greater than current version - Follow semantic versioning Example: 1.2.01.3.0
description
string
Updated description Length: 20-500 characters
license
string
Updated software license Examples: MIT, Apache-2.0, GPL-3.0
repository
object
Updated repository information
Changing repository URL will trigger a new security scan
pricing
object
Updated pricing configuration
Pricing changes take effect immediately for new users
metadata
object
Optional metadata updates

Response

success
boolean
Indicates if update was successful
data
object
Updated server information

Examples

cURL
# Update version and description
curl -X PUT "https://api.superbox.ai/api/v1/servers/weather-mcp" \
  -H "Authorization: Bearer $SUPERBOX_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "version": "1.3.0",
    "description": "Enhanced weather server with 10-day forecasts"
  }'

# Update pricing

curl -X PUT "https://api.superbox.ai/api/v1/servers/weather-mcp" \
 -H "Authorization: Bearer $SUPERBOX_API_TOKEN" \
 -H "Content-Type: application/json" \
 -d '{
"pricing": {
"currency": "USD",
"amount": 4.99
}
}'

# Update multiple fields

curl -X PUT "https://api.superbox.ai/api/v1/servers/weather-mcp" \
 -H "Authorization: Bearer $SUPERBOX_API_TOKEN" \
 -H "Content-Type: application/json" \
 -d '{
"version": "2.0.0",
"description": "Major update with new features",
"metadata": {
"tags": ["weather", "forecast", "climate"],
"homepage": "https://weather-mcp.dev"
}
}'

Response Examples

{
  "success": true,
  "data": {
    "name": "weather-mcp",
    "version": "1.3.0",
    "updated_at": "2025-12-09T10:30:00Z",
    "changes": ["version", "description", "metadata"],
    "rescanRequired": false,
    "message": "Server updated successfully"
  },
  "meta": {
    "timestamp": "2025-12-09T10:30:00Z",
    "version": "v1",
    "requestId": "req_xyz789"
  }
}

Update Scenarios

When to bump versions:
  • Patch (1.0.0 → 1.0.1): Bug fixes, minor changes
  • Minor (1.0.0 → 1.1.0): New features, backward compatible
  • Major (1.0.0 → 2.0.0): Breaking changes
// Patch version
await fetch(url, {
  method: 'PUT',
  headers,
  body: JSON.stringify({ version: '1.0.1' })
});
Common scenarios:
  • Making a paid server free
  • Adding premium pricing
  • Adjusting based on features
// Make server free
await fetch(url, {
  method: 'PUT',
  headers,
  body: JSON.stringify({
    pricing: { currency: 'USD', amount: 0 }
  })
});
Existing users keep their current pricing
Best practices:
  • Keep it clear and concise
  • Highlight new features
  • Update for major versions
requests.put(url, headers=headers, json={
    'description': 'Now with 10-day forecasts and weather alerts!'
})
When migrating repositories:
  • Set up repository redirects
  • Update documentation
  • Notify users
  • Triggers new security scan
await fetch(url, {
  method: 'PUT',
  headers,
  body: JSON.stringify({
    repository: {
      type: 'git',
      url: 'https://github.com/new-org/weather-mcp'
    }
  })
});
Repository changes trigger a new security scan

Field-Specific Rules

Rules: - Must follow semver format - Must be greater than current version - Cannot downgrade Valid: - 1.0.01.0.1 - 1.0.01.1.0 - 1.9.92.0.0 Invalid: - 1.1.01.0.0 (downgrade) - 1.0.01.0 (invalid format)

Best Practices

Semantic Versioning

Follow semver strictly to communicate changes clearly to users

Document Changes

Update your README and changelog when making updates

Test Before Update

Test changes in your repository before updating the server

Notify Users

For breaking changes, notify users through your communication channels

Gradual Pricing

If adding pricing, consider a gradual introduction

Backup First

Keep backups of working versions before major updates

Update Strategies

Update incrementally for minimal disruption:
// Week 1: Update description
await updateServer({ description: 'New features coming!' });

// Week 2: Bump version after testing
await updateServer({ version: '1.1.0' });

// Week 3: Adjust pricing if needed
await updateServer({
  pricing: { currency: 'USD', amount: 4.99 }
});

Monitoring Updates

Track update status:
JavaScript
async function monitorUpdate(serverName) {
  const response = await fetch(
    `https://api.superbox.ai/api/v1/servers/${serverName}`,
    {
      headers: {
        'Authorization': `Bearer ${process.env.SUPERBOX_API_TOKEN}`
      }
    }
  );
  
  const { data } = await response.json();
  
  console.log(`Current version: ${data.version}`);
  console.log(`Last updated: ${data.updated_at}`);
  
  if (data.security_report?.metadata.scan_date) {
    console.log(`Last scanned: ${data.security_report.metadata.scan_date}`);
  }
}

Common Errors

Error: New version must be greater than current version Solution: Check current version first, then increment appropriately javascript const current = await getCurrentVersion('weather-mcp'); const [major, minor, patch] = current.split('.').map(Number); const newVersion = `${major}.$ {minor}.${patch + 1}`;
Error: You don’t have permission to update this server Solution: Ensure you’re the server owner and using the correct token
Error: Unable to access new repository URL Solution: Verify the repository is public and URL is correct
Keep your servers up-to-date with regular version bumps and improvements!