veeam-ports-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| VEEAM_PORTS_API_BASE | No | API base URL | https://magicports.veeambp.com/ports_server |
| VEEAM_PORTS_OUTPUT_DIR | No | Directory for generated import files | ~/Documents/veeam-ports-exports |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_productsA | List all Veeam products that have port requirement data available. Call this first to discover valid product names before using other tools. Returns product names like 'VBR v13', 'VB365', etc. |
| get_product_portsA | Get all network port requirements for a specific Veeam product. Returns every port entry including source service, target service, port number, protocol, and description. Use list_products first to find valid product names. Args: product_name: Exact product name (e.g. 'VBR v13', 'VB365', 'VONE') |
| get_product_subheadingsA | Get the section headings that organise a product's port requirements. Each subheading represents a component or role within the product (e.g. 'Backup Server', 'Proxy Server'). Useful for understanding the product architecture before diving into specific ports. Args: product_name: Exact product name (e.g. 'VBR v13', 'VB365') |
| search_portsA | Search across all Veeam products for port requirements matching a query. Searches product names, source/target services, port numbers, protocols, descriptions, and section headings. Useful for questions like 'which products use SMTP' or 'what needs port 443'. Args: query: Search text (e.g. 'SMTP', 'backup server', 'cloud gateway') |
| search_by_port_numberB | Find all Veeam product entries that use a specific port number. Searches the port field across all products. Useful for firewall audits or checking which Veeam services need a particular port opened. Args: port: Port number to search for (e.g. '443', '9392', '6180') |
| get_source_detailsA | Get the source services for a product, grouped by section. Shows which components/roles (source services) exist within each section of a product's port requirements. Useful for understanding the network topology before querying specific port details. Args: product_name: Exact product name (e.g. 'VBR v13', 'VB365') |
| semantic_searchA | Search port requirements using natural language (vector similarity). Understands synonyms and related concepts — e.g. 'firewall rules for backup to NAS' matches NFS/SMB repository entries even if those exact words don't appear in the data. Falls back to keyword search if vector embeddings are unavailable. Args: query: Natural language search query (e.g. 'what ports does the proxy need for VMware', 'cloud connectivity', 'database ports') product_name: Optional product to filter results (e.g. 'VBR v13'). If omitted, searches across all products. limit: Max results to return (1-100, default 20) |
| get_enriched_portsA | Get port data with LLM-parsed service metadata for a product. Returns the same port entries as get_product_ports, plus enriched metadata for each source and target service (canonical name, roles, OS, hypervisor, storage type). Useful for understanding service relationships and filtering by role. Returns 404 if enrichment hasn't been run for this product. Args: product_name: Exact product name (e.g. 'VBR v13', 'VB365') |
| generate_topologyA | Resolve server topology — given named servers and their services, returns all port mappings between them as human-readable text. Use this when the user describes their server layout and wants to know what firewall rules are needed between servers. Args: product_name: Exact product name (e.g. 'VBR v13', 'VB365') servers_json: JSON array of server definitions. Each object must have 'name' (server label) and 'services' (list of service names this server provides). Example: [ {"name": "VBR", "services": ["Backup server"]}, {"name": "Proxy", "services": ["Backup proxy"]}, {"name": "ESXi", "services": ["ESXi host"]} ] include_loopback: Include ports where source and target are the same server (default: false) exclude_subsections: Subsection names to exclude from results (e.g. ["CDP Components"]). Accepts a list or JSON string. exclude_ports: Port numbers to exclude from results (e.g. ["33035"]). Accepts a list or JSON string. format: Output format — 'json' (default), 'csv', or 'markdown'. csv and markdown return the raw content as text. |
| list_servicesA | List all known service roles for a product from the knowledge graph. Returns canonical service names with their original name variants and any OS/hypervisor/storage qualifiers. Useful for discovering valid service names before calling generate_topology or generate_app_import. Args: product_name: Exact product name (e.g. 'VBR v13', 'VB365') |
| generate_app_importA | Generate a JSON file for importing into the Magic Ports frontend app. Resolves the port mapping topology between user-defined servers using the enriched knowledge graph on the API server. The full JSON is written to a file on disk and a compact summary is returned. Workflow:
Args: product_name: Exact product name (e.g. 'VBR v13', 'VB365') servers_json: JSON array of server definitions. Each object must have 'name' (server label) and 'services' (list of service names this server provides). Example: [ {"name": "VBR", "services": ["Backup server"]}, {"name": "Proxy", "services": ["Backup proxy"]}, {"name": "Repo", "services": ["Backup repository"]}, {"name": "ESXi", "services": ["ESXi host", "vCenter Server"]} ] output_dir: Optional directory to write the file to. Defaults to ~/Documents/veeam-ports-exports or VEEAM_PORTS_OUTPUT_DIR env var. exclude_subsections: Subsection names to exclude from results (e.g. ["CDP Components"]). Accepts a list or JSON string. exclude_ports: Port numbers to exclude from results (e.g. ["33035"]). Accepts a list or JSON string. format: Output format — 'json' (default), 'csv', or 'markdown'. csv and markdown return the raw content as text (no file written). |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/shapedthought/veeam-ports-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server