{"$schema":"https://verifymcp.io/schemas/trust-report.json","schemaVersion":1,"license":{"name":"CC BY-NC 4.0","url":"https://creativecommons.org/licenses/by-nc/4.0/"},"generatedAt":"2026-11-06T11:32:21.731Z","url":"https://verifymcp.io/servers/oomchiller-openstack-mcp-server/ghcr-io-oomchiller-openstack-mcp-server","markdownUrl":"https://verifymcp.io/servers/oomchiller-openstack-mcp-server/ghcr-io-oomchiller-openstack-mcp-server.md","server":{"slug":"oomchiller-openstack-mcp-server","name":"OpenStack","registryName":"io.github.oomchiller/openstack-mcp-server","description":"Read-only-first OpenStack inspection: servers, images, volumes, networks, Keystone catalog.","registryStatus":"active","deletedAt":null,"statusMessage":null,"liveness":"live","publisher":{"class":"unknown","claimed":false}},"component":{"slug":"ghcr-io-oomchiller-openstack-mcp-server","type":"oci","identifier":"ghcr.io/oomchiller/openstack-mcp-server","withdrawn":false,"url":"https://verifymcp.io/servers/oomchiller-openstack-mcp-server/ghcr-io-oomchiller-openstack-mcp-server","version":"0.1.2","transport":"stdio","scoredAt":"2026-11-06T07:43:25.489Z"},"score":{"total":44,"tier":"low","status":"scored","weekDelta":null,"history":[{"date":"2026-11-06","total":44},{"date":"2026-11-05","total":44},{"date":"2026-11-04","total":43},{"date":"2026-11-03","total":43}]},"categories":[{"name":"Supply Chain Security","score":0,"verdict":"unverified","reasons":["No malware scan is available for this kind of package: the supply-chain vendors we use do not cover it. This is a permanent gap in our coverage, not a finding about the package.","Known CVEs could not be checked: this artifact ships no SBOM or dependency manifest, so there is no dependency list to read.","Install-script risk not yet assessed.","Dependency health could not be checked: this artifact ships no SBOM or dependency manifest, so there is no dependency list to read."],"codes":[{"code":"supplychain.malware_inconclusive","args":{"reason":"ecosystem_unsupported"}},{"code":"cve.inconclusive","args":{"reason":"no_sbom_attached"}},{"code":"installscript.inconclusive","args":{"reason":"no_install_concept"}},{"code":"dephealth.inconclusive","args":{"reason":"no_sbom_attached"}}]},{"name":"Provenance & Transparency","score":48,"verdict":"fail","reasons":["Source repository is publicly reachable at the declared URL.","Provenance check failed: no build-provenance attestation is published.","Clear OSI-approved license (Apache-2.0).","Actively maintained (last published 2 days ago).","Publishes a security disclosure policy (SECURITY.md)."],"codes":[{"code":"provenance.repo_verified","args":{}},{"code":"provenance.none","args":{}},{"code":"license.osi","args":{"spdx":"Apache-2.0"}},{"code":"maintenance.recent","args":{"age_days":"2"}},{"code":"disclosure.present","args":{}}]},{"name":"Schema Quality & AI Usability","score":84,"verdict":"fail","reasons":["100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).","AI-judged instruction clarity (good).","Context-footprint check failed: tool/resource definitions use about 3542 tokens (~107/item across 33 items; 32 tools + 1 resources), over budget; trim descriptions and params.","Usage-examples check failed: none of the tools include examples."],"codes":[{"code":"schema.descriptions","args":{"pct":"100"}},{"code":"schema.ai_quality","args":{"band":"good"}},{"code":"schema.footprint_heavy","args":{"avg":"107","items":"33","tools":"32","tokens":"3542","resources":"1"}},{"code":"schema.examples_absent","args":{}}]},{"name":"Stability & Change Management","score":10,"verdict":"partial","reasons":["Stability observed for 3 of 30 days with no destabilising changes; credit accrues until the full window elapses."],"codes":[{"code":"stability.building_history","args":{"days":"3"}}]},{"name":"Tool Coverage","score":100,"verdict":"pass","reasons":["100% of tools have a non-trivial description (not blank, and not just the tool's name).","100% of tool parameters carry a description.","Structured output schemas are declared (100% of tools); any adoption earns full credit."],"codes":[{"code":"toolquality.descriptions","args":{"pct":"100"}},{"code":"toolquality.param_docs","args":{"pct":"100"}},{"code":"toolquality.output_present","args":{"pct":"100"}}]},{"name":"Tool Safety","score":100,"verdict":"pass","reasons":["No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.","We read all 32 captured tool definition(s), and no name or description among them implies an irreversible operation.","An AI judge read all 34 captured unit(s) of tool text and found none that tries to manipulate the model reading it."],"codes":[{"code":"toolsafety.injection_clean","args":{}},{"code":"toolsafety.destructive_none","args":{"tools":"32"}},{"code":"toolsafety.manipulation_clean","args":{"units":"34","judged":"34"}}]},{"name":"Capabilities","score":100,"verdict":"pass","reasons":["Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28."],"codes":[{"code":"protocol.supported","args":{"latest":"2026-07-28","version":"2025-11-25"}}]}],"inconclusive":["No malware scan is available for this kind of package: the supply-chain vendors we use do not cover it. This is a permanent gap in our coverage, not a finding about the package.","Known CVEs could not be checked: this artifact ships no SBOM or dependency manifest, so there is no dependency list to read.","Install-script risk not yet assessed.","Dependency health could not be checked: this artifact ships no SBOM or dependency manifest, so there is no dependency list to read."],"malware":[],"components":[{"slug":"ghcr-io-oomchiller-openstack-mcp-server","type":"oci","identifier":"ghcr.io/oomchiller/openstack-mcp-server","withdrawn":false,"score":44,"current":true,"url":"https://verifymcp.io/servers/oomchiller-openstack-mcp-server/ghcr-io-oomchiller-openstack-mcp-server","markdownUrl":"https://verifymcp.io/servers/oomchiller-openstack-mcp-server/ghcr-io-oomchiller-openstack-mcp-server.md"}],"facts":[{"label":"Registry","value":"oci"},{"label":"Package","value":"ghcr.io/oomchiller/openstack-mcp-server"},{"label":"Version","value":"0.1.2"},{"label":"Transport","value":"stdio"}],"install":{"available":true,"bundleSha256":null},"tools":[{"name":"get_scope","title":"Show server scope","description":"Show mode, allowed projects, limits and whether credentials are configured.\n\nDoes not contact the cloud. Call it first.","inputs":[],"outputs":[{"name":"cloud_access_verified","type":"boolean","required":true,"description":"Always false: get_scope does not contact the cloud."},{"name":"configured","type":"boolean","required":true,"description":null},{"name":"credential_source","type":"string","required":true,"description":null},{"name":"default_project_id","type":null,"required":true,"description":"Project used when project_id is omitted; null when the configuration names the project only by name."},{"name":"interface","type":null,"required":true,"description":null},{"name":"limits","type":null,"required":true,"description":null},{"name":"mode","type":"string","required":true,"description":null},{"name":"project_ids","type":"array","required":true,"description":"Allowlisted projects; empty if none."},{"name":"reason","type":null,"required":true,"description":"Why the cloud is not usable: missing_credentials, insecure_transport or invalid_cloud_config."},{"name":"region_name","type":null,"required":true,"description":null},{"name":"server_version","type":"string","required":true,"description":null},{"name":"tls","type":"string","required":true,"description":null},{"name":"write_tools_registered","type":"boolean","required":true,"description":null}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":31},{"name":"list_servers","title":"List servers","description":"List servers in the project with status, flavor, image, addresses and\nvolumes.\n\nPaged with limit and marker. Use get_server for one server by ID.","inputs":[{"name":"limit","type":"integer","required":false,"description":"Maximum items to return (1-100, default 50)."},{"name":"marker","type":null,"required":false,"description":"next_marker from the previous page; omit for the first page."},{"name":"name","type":null,"required":false,"description":"Name regex filter."},{"name":"project_id","type":null,"required":false,"description":"Project ID to work in; omit for the default project. Allowed values are listed by get_scope."},{"name":"status","type":null,"required":false,"description":"Server status filter, for example ACTIVE or SHUTOFF."}],"outputs":[{"name":"complete","type":"boolean","required":true,"description":"True when no more items exist beyond this page."},{"name":"items","type":"array","required":true,"description":null},{"name":"limit","type":"integer","required":true,"description":"Maximum number of items requested."},{"name":"next_marker","type":null,"required":false,"description":"Pass as marker to read the next page; null when complete or when the API has no marker paging."},{"name":"observed_at","type":"string","required":true,"description":"UTC time the list was read."},{"name":"project_id","type":null,"required":true,"description":"Project whose session produced the list."},{"name":"resource","type":"string","required":true,"description":"Resource type of the items."}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":126},{"name":"get_server","title":"Get server","description":"Get one server by ID: status, flavor, image, addresses, security groups and\nvolumes.\n\nUse list_servers to find IDs by name or status. Returns not_found if the\nID is not in the selected project.","inputs":[{"name":"project_id","type":null,"required":false,"description":"Project ID to work in; omit for the default project. Allowed values are listed by get_scope."},{"name":"server_id","type":"string","required":true,"description":"Server ID, as returned by list_servers."}],"outputs":[{"name":"addresses","type":null,"required":false,"description":null},{"name":"attached_volumes","type":null,"required":false,"description":null},{"name":"availability_zone","type":null,"required":false,"description":null},{"name":"created_at","type":null,"required":false,"description":null},{"name":"description","type":null,"required":false,"description":null},{"name":"flavor","type":null,"required":false,"description":null},{"name":"hostname","type":null,"required":false,"description":null},{"name":"id","type":"string","required":true,"description":null},{"name":"image","type":null,"required":false,"description":null},{"name":"key_name","type":null,"required":false,"description":null},{"name":"name","type":"string","required":true,"description":null},{"name":"security_groups","type":null,"required":false,"description":null},{"name":"status","type":null,"required":false,"description":null},{"name":"updated_at","type":null,"required":false,"description":null}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":95},{"name":"list_flavors","title":"List flavors","description":"List flavors visible to the project: vCPUs, RAM (MiB), disk (GiB).\n\nPaged with limit and marker. Use it to resolve the flavor of a server.","inputs":[{"name":"limit","type":"integer","required":false,"description":"Maximum items to return (1-100, default 50)."},{"name":"marker","type":null,"required":false,"description":"next_marker from the previous page; omit for the first page."},{"name":"project_id","type":null,"required":false,"description":"Project ID to work in; omit for the default project. Allowed values are listed by get_scope."}],"outputs":[{"name":"complete","type":"boolean","required":true,"description":"True when no more items exist beyond this page."},{"name":"items","type":"array","required":true,"description":null},{"name":"limit","type":"integer","required":true,"description":"Maximum number of items requested."},{"name":"next_marker","type":null,"required":false,"description":"Pass as marker to read the next page; null when complete or when the API has no marker paging."},{"name":"observed_at","type":"string","required":true,"description":"UTC time the list was read."},{"name":"project_id","type":null,"required":true,"description":"Project whose session produced the list."},{"name":"resource","type":"string","required":true,"description":"Resource type of the items."}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":107},{"name":"list_images","title":"List images","description":"List images visible to the project with status, visibility, formats and size.\n\nPaged with limit and marker. Use get_image for one image by ID.","inputs":[{"name":"limit","type":"integer","required":false,"description":"Maximum items to return (1-100, default 50)."},{"name":"marker","type":null,"required":false,"description":"next_marker from the previous page; omit for the first page."},{"name":"name","type":null,"required":false,"description":"Exact image name."},{"name":"project_id","type":null,"required":false,"description":"Project ID to work in; omit for the default project. Allowed values are listed by get_scope."},{"name":"status","type":null,"required":false,"description":"Image status filter, for example active."},{"name":"visibility","type":null,"required":false,"description":"Visibility filter: public, private, shared or community."}],"outputs":[{"name":"complete","type":"boolean","required":true,"description":"True when no more items exist beyond this page."},{"name":"items","type":"array","required":true,"description":null},{"name":"limit","type":"integer","required":true,"description":"Maximum number of items requested."},{"name":"next_marker","type":null,"required":false,"description":"Pass as marker to read the next page; null when complete or when the API has no marker paging."},{"name":"observed_at","type":"string","required":true,"description":"UTC time the list was read."},{"name":"project_id","type":null,"required":true,"description":"Project whose session produced the list."},{"name":"resource","type":"string","required":true,"description":"Resource type of the items."}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":134},{"name":"get_image","title":"Get image","description":"Get one image by ID: status, visibility, formats, size, minimum disk and RAM,\ntags.\n\nUse list_images to find IDs by name. Returns not_found if the image does\nnot exist or is not visible to the selected project.","inputs":[{"name":"image_id","type":"string","required":true,"description":"Image ID, as returned by list_images."},{"name":"project_id","type":null,"required":false,"description":"Project ID to work in; omit for the default project. Allowed values are listed by get_scope."}],"outputs":[{"name":"checksum","type":null,"required":false,"description":null},{"name":"container_format","type":null,"required":false,"description":null},{"name":"created_at","type":null,"required":false,"description":null},{"name":"disk_format","type":null,"required":false,"description":null},{"name":"hash_algo","type":null,"required":false,"description":null},{"name":"hash_value","type":null,"required":false,"description":null},{"name":"id","type":"string","required":true,"description":null},{"name":"is_hidden","type":null,"required":false,"description":null},{"name":"is_protected","type":null,"required":false,"description":null},{"name":"min_disk","type":null,"required":false,"description":null},{"name":"min_ram","type":null,"required":false,"description":null},{"name":"name","type":null,"required":false,"description":null},{"name":"owner","type":null,"required":false,"description":null},{"name":"size","type":null,"required":false,"description":null},{"name":"status","type":null,"required":false,"description":null},{"name":"tags","type":null,"required":false,"description":null},{"name":"updated_at","type":null,"required":false,"description":null},{"name":"virtual_size","type":null,"required":false,"description":null},{"name":"visibility","type":null,"required":false,"description":null}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":98},{"name":"list_volumes","title":"List volumes","description":"List volumes in the project with size (GiB), type, status and attachments.\n\nPaged with limit and marker. Use get_volume for one volume by ID.","inputs":[{"name":"limit","type":"integer","required":false,"description":"Maximum items to return (1-100, default 50)."},{"name":"marker","type":null,"required":false,"description":"next_marker from the previous page; omit for the first page."},{"name":"name","type":null,"required":false,"description":"Exact volume name."},{"name":"project_id","type":null,"required":false,"description":"Project ID to work in; omit for the default project. Allowed values are listed by get_scope."},{"name":"status","type":null,"required":false,"description":"Volume status filter, for example available or in-use."}],"outputs":[{"name":"complete","type":"boolean","required":true,"description":"True when no more items exist beyond this page."},{"name":"items","type":"array","required":true,"description":null},{"name":"limit","type":"integer","required":true,"description":"Maximum number of items requested."},{"name":"next_marker","type":null,"required":false,"description":"Pass as marker to read the next page; null when complete or when the API has no marker paging."},{"name":"observed_at","type":"string","required":true,"description":"UTC time the list was read."},{"name":"project_id","type":null,"required":true,"description":"Project whose session produced the list."},{"name":"resource","type":"string","required":true,"description":"Resource type of the items."}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":125},{"name":"get_volume","title":"Get volume","description":"Get one volume by ID: status, size (GiB), type, bootable, encrypted,\nattachments.\n\nUse list_volumes to find IDs by name or status. Returns not_found if the\nID is not in the selected project.","inputs":[{"name":"project_id","type":null,"required":false,"description":"Project ID to work in; omit for the default project. Allowed values are listed by get_scope."},{"name":"volume_id","type":"string","required":true,"description":"Volume ID, as returned by list_volumes."}],"outputs":[{"name":"attachments","type":"array","required":false,"description":null},{"name":"availability_zone","type":null,"required":false,"description":null},{"name":"created_at","type":null,"required":false,"description":null},{"name":"description","type":null,"required":false,"description":null},{"name":"id","type":"string","required":true,"description":null},{"name":"is_bootable","type":null,"required":false,"description":null},{"name":"is_encrypted","type":null,"required":false,"description":null},{"name":"name","type":null,"required":false,"description":null},{"name":"size","type":null,"required":false,"description":null},{"name":"status","type":null,"required":false,"description":null},{"name":"updated_at","type":null,"required":false,"description":null},{"name":"volume_type","type":null,"required":false,"description":null}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":98},{"name":"list_volume_attachments","title":"List volume attachments","description":"List Cinder attachment records (API microversion 3.27 or later).\n\nConnection details are not returned. Paged with limit and marker.","inputs":[{"name":"instance_id","type":null,"required":false,"description":"Server ID the volume is attached to."},{"name":"limit","type":"integer","required":false,"description":"Maximum items to return (1-100, default 50)."},{"name":"marker","type":null,"required":false,"description":"next_marker from the previous page; omit for the first page."},{"name":"project_id","type":null,"required":false,"description":"Project ID to work in; omit for the default project. Allowed values are listed by get_scope."},{"name":"volume_id","type":null,"required":false,"description":"Volume ID whose attachments to list."}],"outputs":[{"name":"complete","type":"boolean","required":true,"description":"True when no more items exist beyond this page."},{"name":"items","type":"array","required":true,"description":null},{"name":"limit","type":"integer","required":true,"description":"Maximum number of items requested."},{"name":"next_marker","type":null,"required":false,"description":"Pass as marker to read the next page; null when complete or when the API has no marker paging."},{"name":"observed_at","type":"string","required":true,"description":"UTC time the list was read."},{"name":"project_id","type":null,"required":true,"description":"Project whose session produced the list."},{"name":"resource","type":"string","required":true,"description":"Resource type of the items."}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":125},{"name":"get_volume_attachment","title":"Get volume attachment","description":"Get one Cinder attachment record by ID, without connection details.","inputs":[{"name":"attachment_id","type":"string","required":true,"description":"Attachment ID, as returned by list_volume_attachments."},{"name":"project_id","type":null,"required":false,"description":"Project ID to work in; omit for the default project. Allowed values are listed by get_scope."}],"outputs":[{"name":"attach_mode","type":null,"required":false,"description":null},{"name":"attached_at","type":null,"required":false,"description":null},{"name":"detached_at","type":null,"required":false,"description":null},{"name":"id","type":"string","required":true,"description":null},{"name":"instance","type":null,"required":false,"description":null},{"name":"status","type":null,"required":false,"description":null},{"name":"volume_id","type":null,"required":false,"description":null}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":65},{"name":"list_networks","title":"List networks","description":"List the project's networks, or shared networks with shared=true.\n\nPaged with limit and marker.","inputs":[{"name":"limit","type":"integer","required":false,"description":"Maximum items to return (1-100, default 50)."},{"name":"marker","type":null,"required":false,"description":"next_marker from the previous page; omit for the first page."},{"name":"project_id","type":null,"required":false,"description":"Project ID to work in; omit for the default project. Allowed values are listed by get_scope."},{"name":"shared","type":"boolean","required":false,"description":"List shared networks visible to the project, whatever their owner, instead of the project's own networks."},{"name":"status","type":null,"required":false,"description":"Network status filter, for example ACTIVE."}],"outputs":[{"name":"complete","type":"boolean","required":true,"description":"True when no more items exist beyond this page."},{"name":"items","type":"array","required":true,"description":null},{"name":"limit","type":"integer","required":true,"description":"Maximum number of items requested."},{"name":"next_marker","type":null,"required":false,"description":"Pass as marker to read the next page; null when complete or when the API has no marker paging."},{"name":"observed_at","type":"string","required":true,"description":"UTC time the list was read."},{"name":"project_id","type":null,"required":true,"description":"Project whose session produced the list."},{"name":"resource","type":"string","required":true,"description":"Resource type of the items."}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":125},{"name":"get_network","title":"Get network","description":"Get one network by ID: status, sharing and external flags, MTU, subnets,\nprovider data.\n\nUse list_networks to find IDs, with shared=true for shared networks.\nReturns not_found if the network is not visible to the selected project.","inputs":[{"name":"network_id","type":"string","required":true,"description":"Network ID, as returned by list_networks."},{"name":"project_id","type":null,"required":false,"description":"Project ID to work in; omit for the default project. Allowed values are listed by get_scope."}],"outputs":[{"name":"availability_zones","type":null,"required":false,"description":null},{"name":"description","type":null,"required":false,"description":null},{"name":"id","type":"string","required":true,"description":null},{"name":"is_admin_state_up","type":null,"required":false,"description":null},{"name":"is_router_external","type":null,"required":false,"description":null},{"name":"is_shared","type":null,"required":false,"description":null},{"name":"mtu","type":null,"required":false,"description":null},{"name":"name","type":null,"required":false,"description":null},{"name":"project_id","type":null,"required":false,"description":null},{"name":"provider_network_type","type":null,"required":false,"description":null},{"name":"provider_physical_network","type":null,"required":false,"description":null},{"name":"provider_segmentation_id","type":null,"required":false,"description":null},{"name":"status","type":null,"required":false,"description":null},{"name":"subnet_ids","type":null,"required":false,"description":null}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":101},{"name":"list_subnets","title":"List subnets","description":"List the project's subnets with CIDR, gateway and DHCP settings.\n\nPaged with limit and marker.","inputs":[{"name":"ip_version","type":null,"required":false,"description":"IP version filter: 4 or 6."},{"name":"limit","type":"integer","required":false,"description":"Maximum items to return (1-100, default 50)."},{"name":"marker","type":null,"required":false,"description":"next_marker from the previous page; omit for the first page."},{"name":"network_id","type":null,"required":false,"description":"Network ID whose subnets to list."},{"name":"project_id","type":null,"required":false,"description":"Project ID to work in; omit for the default project. Allowed values are listed by get_scope."}],"outputs":[{"name":"complete","type":"boolean","required":true,"description":"True when no more items exist beyond this page."},{"name":"items","type":"array","required":true,"description":null},{"name":"limit","type":"integer","required":true,"description":"Maximum number of items requested."},{"name":"next_marker","type":null,"required":false,"description":"Pass as marker to read the next page; null when complete or when the API has no marker paging."},{"name":"observed_at","type":"string","required":true,"description":"UTC time the list was read."},{"name":"project_id","type":null,"required":true,"description":"Project whose session produced the list."},{"name":"resource","type":"string","required":true,"description":"Resource type of the items."}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":118},{"name":"get_subnet","title":"Get subnet","description":"Get one subnet by ID: CIDR, gateway, DHCP, allocation pools, DNS servers and\nroutes.\n\nUse list_subnets to find IDs, optionally for one network. Returns\nnot_found if the subnet is not visible to the selected project.","inputs":[{"name":"project_id","type":null,"required":false,"description":"Project ID to work in; omit for the default project. Allowed values are listed by get_scope."},{"name":"subnet_id","type":"string","required":true,"description":"Subnet ID, as returned by list_subnets."}],"outputs":[{"name":"allocation_pools","type":null,"required":false,"description":null},{"name":"cidr","type":null,"required":false,"description":null},{"name":"description","type":null,"required":false,"description":null},{"name":"dns_nameservers","type":null,"required":false,"description":null},{"name":"gateway_ip","type":null,"required":false,"description":null},{"name":"host_routes","type":null,"required":false,"description":null},{"name":"id","type":"string","required":true,"description":null},{"name":"ip_version","type":null,"required":false,"description":null},{"name":"is_dhcp_enabled","type":null,"required":false,"description":null},{"name":"name","type":null,"required":false,"description":null},{"name":"network_id","type":null,"required":false,"description":null},{"name":"project_id","type":null,"required":false,"description":null}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":102},{"name":"list_ports","title":"List ports","description":"List the project's ports with fixed IPs and security groups.\n\nPaged with limit and marker.","inputs":[{"name":"device_id","type":null,"required":false,"description":"Server or router ID owning the port."},{"name":"limit","type":"integer","required":false,"description":"Maximum items to return (1-100, default 50)."},{"name":"marker","type":null,"required":false,"description":"next_marker from the previous page; omit for the first page."},{"name":"network_id","type":null,"required":false,"description":"Network ID whose ports to list."},{"name":"project_id","type":null,"required":false,"description":"Project ID to work in; omit for the default project. Allowed values are listed by get_scope."},{"name":"status","type":null,"required":false,"description":"Port status filter, for example ACTIVE or DOWN."}],"outputs":[{"name":"complete","type":"boolean","required":true,"description":"True when no more items exist beyond this page."},{"name":"items","type":"array","required":true,"description":null},{"name":"limit","type":"integer","required":true,"description":"Maximum number of items requested."},{"name":"next_marker","type":null,"required":false,"description":"Pass as marker to read the next page; null when complete or when the API has no marker paging."},{"name":"observed_at","type":"string","required":true,"description":"UTC time the list was read."},{"name":"project_id","type":null,"required":true,"description":"Project whose session produced the list."},{"name":"resource","type":"string","required":true,"description":"Resource type of the items."}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":126},{"name":"get_port","title":"Get port","description":"Get one port by ID: network, device, MAC, fixed IPs, security groups, address\npairs.\n\nUse list_ports to find IDs by network or device. Returns not_found if\nthe port is not visible to the selected project.","inputs":[{"name":"port_id","type":"string","required":true,"description":"Port ID, as returned by list_ports."},{"name":"project_id","type":null,"required":false,"description":"Project ID to work in; omit for the default project. Allowed values are listed by get_scope."}],"outputs":[{"name":"allowed_address_pairs","type":null,"required":false,"description":null},{"name":"description","type":null,"required":false,"description":null},{"name":"device_id","type":null,"required":false,"description":null},{"name":"device_owner","type":null,"required":false,"description":null},{"name":"fixed_ips","type":null,"required":false,"description":null},{"name":"id","type":"string","required":true,"description":null},{"name":"is_admin_state_up","type":null,"required":false,"description":null},{"name":"mac_address","type":null,"required":false,"description":null},{"name":"name","type":null,"required":false,"description":null},{"name":"network_id","type":null,"required":false,"description":null},{"name":"project_id","type":null,"required":false,"description":null},{"name":"security_group_ids","type":null,"required":false,"description":null},{"name":"status","type":null,"required":false,"description":null}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":98},{"name":"list_floating_ips","title":"List floating IPs","description":"List the project's floating IPs with the fixed IP, port and router they map\nto.\n\nPaged with limit and marker. There is no get tool: filter by port_id to\nfind the floating IP of one port.","inputs":[{"name":"floating_network_id","type":null,"required":false,"description":"External network ID the floating IPs come from."},{"name":"limit","type":"integer","required":false,"description":"Maximum items to return (1-100, default 50)."},{"name":"marker","type":null,"required":false,"description":"next_marker from the previous page; omit for the first page."},{"name":"port_id","type":null,"required":false,"description":"Port ID the floating IP is associated with."},{"name":"project_id","type":null,"required":false,"description":"Project ID to work in; omit for the default project. Allowed values are listed by get_scope."},{"name":"status","type":null,"required":false,"description":"Floating IP status filter, for example ACTIVE or DOWN."}],"outputs":[{"name":"complete","type":"boolean","required":true,"description":"True when no more items exist beyond this page."},{"name":"items","type":"array","required":true,"description":null},{"name":"limit","type":"integer","required":true,"description":"Maximum number of items requested."},{"name":"next_marker","type":null,"required":false,"description":"Pass as marker to read the next page; null when complete or when the API has no marker paging."},{"name":"observed_at","type":"string","required":true,"description":"UTC time the list was read."},{"name":"project_id","type":null,"required":true,"description":"Project whose session produced the list."},{"name":"resource","type":"string","required":true,"description":"Resource type of the items."}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":161},{"name":"list_routers","title":"List routers","description":"List the project's routers with external gateway and static routes.\n\nPaged with limit and marker. Use list_router_interfaces for the subnets\na router connects.","inputs":[{"name":"limit","type":"integer","required":false,"description":"Maximum items to return (1-100, default 50)."},{"name":"marker","type":null,"required":false,"description":"next_marker from the previous page; omit for the first page."},{"name":"project_id","type":null,"required":false,"description":"Project ID to work in; omit for the default project. Allowed values are listed by get_scope."},{"name":"status","type":null,"required":false,"description":"Router status filter, for example ACTIVE."}],"outputs":[{"name":"complete","type":"boolean","required":true,"description":"True when no more items exist beyond this page."},{"name":"items","type":"array","required":true,"description":null},{"name":"limit","type":"integer","required":true,"description":"Maximum number of items requested."},{"name":"next_marker","type":null,"required":false,"description":"Pass as marker to read the next page; null when complete or when the API has no marker paging."},{"name":"observed_at","type":"string","required":true,"description":"UTC time the list was read."},{"name":"project_id","type":null,"required":true,"description":"Project whose session produced the list."},{"name":"resource","type":"string","required":true,"description":"Resource type of the items."}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":112},{"name":"get_router","title":"Get router","description":"Get one router by ID: status, external gateway, static routes, HA and\ndistributed flags.\n\nUse list_router_interfaces for its internal subnets. Returns not_found if\nthe router is not visible to the selected project.","inputs":[{"name":"project_id","type":null,"required":false,"description":"Project ID to work in; omit for the default project. Allowed values are listed by get_scope."},{"name":"router_id","type":"string","required":true,"description":"Router ID, as returned by list_routers."}],"outputs":[{"name":"description","type":null,"required":false,"description":null},{"name":"external_gateway_info","type":null,"required":false,"description":null},{"name":"id","type":"string","required":true,"description":null},{"name":"is_admin_state_up","type":null,"required":false,"description":null},{"name":"is_distributed","type":null,"required":false,"description":null},{"name":"is_ha","type":null,"required":false,"description":null},{"name":"name","type":null,"required":false,"description":null},{"name":"project_id","type":null,"required":false,"description":null},{"name":"routes","type":null,"required":false,"description":null},{"name":"status","type":null,"required":false,"description":null}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":95},{"name":"list_router_interfaces","title":"List router interfaces","description":"List a router's internal interfaces: port, subnet and IP address.\n\nNot paged; complete=false means the router has more interfaces.","inputs":[{"name":"limit","type":"integer","required":false,"description":"Maximum items to return (1-100, default 50)."},{"name":"project_id","type":null,"required":false,"description":"Project ID to work in; omit for the default project. Allowed values are listed by get_scope."},{"name":"router_id","type":"string","required":true,"description":"Router ID, as returned by list_routers."}],"outputs":[{"name":"complete","type":"boolean","required":true,"description":"True when no more items exist beyond this page."},{"name":"items","type":"array","required":true,"description":null},{"name":"limit","type":"integer","required":true,"description":"Maximum number of items requested."},{"name":"next_marker","type":null,"required":false,"description":"Pass as marker to read the next page; null when complete or when the API has no marker paging."},{"name":"observed_at","type":"string","required":true,"description":"UTC time the list was read."},{"name":"project_id","type":null,"required":true,"description":"Project whose session produced the list."},{"name":"resource","type":"string","required":true,"description":"Resource type of the items."}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":97},{"name":"list_security_groups","title":"List security groups","description":"List the project's security groups with their rules.\n\nPaged with limit and marker.","inputs":[{"name":"limit","type":"integer","required":false,"description":"Maximum items to return (1-100, default 50)."},{"name":"marker","type":null,"required":false,"description":"next_marker from the previous page; omit for the first page."},{"name":"name","type":null,"required":false,"description":"Exact security group name."},{"name":"project_id","type":null,"required":false,"description":"Project ID to work in; omit for the default project. Allowed values are listed by get_scope."}],"outputs":[{"name":"complete","type":"boolean","required":true,"description":"True when no more items exist beyond this page."},{"name":"items","type":"array","required":true,"description":null},{"name":"limit","type":"integer","required":true,"description":"Maximum number of items requested."},{"name":"next_marker","type":null,"required":false,"description":"Pass as marker to read the next page; null when complete or when the API has no marker paging."},{"name":"observed_at","type":"string","required":true,"description":"UTC time the list was read."},{"name":"project_id","type":null,"required":true,"description":"Project whose session produced the list."},{"name":"resource","type":"string","required":true,"description":"Resource type of the items."}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":94},{"name":"get_security_group","title":"Get security group","description":"Get one security group by ID with all its rules: direction, protocol, ports,\nremote.\n\nUse list_security_groups to find IDs by name. Returns not_found if the\ngroup is not visible to the selected project.","inputs":[{"name":"project_id","type":null,"required":false,"description":"Project ID to work in; omit for the default project. Allowed values are listed by get_scope."},{"name":"security_group_id","type":"string","required":true,"description":"Security group ID, as returned by list_security_groups."}],"outputs":[{"name":"description","type":null,"required":false,"description":null},{"name":"id","type":"string","required":true,"description":null},{"name":"name","type":null,"required":false,"description":null},{"name":"project_id","type":null,"required":false,"description":null},{"name":"security_group_rules","type":null,"required":false,"description":null},{"name":"stateful","type":null,"required":false,"description":null}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":97},{"name":"list_regions","title":"List regions","description":"List Keystone regions. Not paged.","inputs":[{"name":"limit","type":"integer","required":false,"description":"Maximum items to return (1-100, default 50)."},{"name":"project_id","type":null,"required":false,"description":"Project ID to work in; omit for the default project. Allowed values are listed by get_scope."}],"outputs":[{"name":"complete","type":"boolean","required":true,"description":"True when no more items exist beyond this page."},{"name":"items","type":"array","required":true,"description":null},{"name":"limit","type":"integer","required":true,"description":"Maximum number of items requested."},{"name":"next_marker","type":null,"required":false,"description":"Pass as marker to read the next page; null when complete or when the API has no marker paging."},{"name":"observed_at","type":"string","required":true,"description":"UTC time the list was read."},{"name":"project_id","type":null,"required":true,"description":"Project whose session produced the list."},{"name":"resource","type":"string","required":true,"description":"Resource type of the items."}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":60},{"name":"list_domains","title":"List domains","description":"List Keystone domains. Usually needs more than a project reader role; forbidden means the role is missing, not that the list is empty. Not paged; narrow with filters.","inputs":[{"name":"limit","type":"integer","required":false,"description":"Maximum items to return (1-100, default 50)."},{"name":"name","type":null,"required":false,"description":"Exact domain name."},{"name":"project_id","type":null,"required":false,"description":"Project ID to work in; omit for the default project. Allowed values are listed by get_scope."}],"outputs":[{"name":"complete","type":"boolean","required":true,"description":"True when no more items exist beyond this page."},{"name":"items","type":"array","required":true,"description":null},{"name":"limit","type":"integer","required":true,"description":"Maximum number of items requested."},{"name":"next_marker","type":null,"required":false,"description":"Pass as marker to read the next page; null when complete or when the API has no marker paging."},{"name":"observed_at","type":"string","required":true,"description":"UTC time the list was read."},{"name":"project_id","type":null,"required":true,"description":"Project whose session produced the list."},{"name":"resource","type":"string","required":true,"description":"Resource type of the items."}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":95},{"name":"list_projects","title":"List projects","description":"List Keystone projects. Usually needs more than a project reader role; forbidden means the role is missing, not that the list is empty. Not paged; narrow with filters.","inputs":[{"name":"domain_id","type":null,"required":false,"description":"Domain ID, as returned by list_domains."},{"name":"limit","type":"integer","required":false,"description":"Maximum items to return (1-100, default 50)."},{"name":"name","type":null,"required":false,"description":"Exact project name."},{"name":"project_id","type":null,"required":false,"description":"Project ID to work in; omit for the default project. Allowed values are listed by get_scope."}],"outputs":[{"name":"complete","type":"boolean","required":true,"description":"True when no more items exist beyond this page."},{"name":"items","type":"array","required":true,"description":null},{"name":"limit","type":"integer","required":true,"description":"Maximum number of items requested."},{"name":"next_marker","type":null,"required":false,"description":"Pass as marker to read the next page; null when complete or when the API has no marker paging."},{"name":"observed_at","type":"string","required":true,"description":"UTC time the list was read."},{"name":"project_id","type":null,"required":true,"description":"Project whose session produced the list."},{"name":"resource","type":"string","required":true,"description":"Resource type of the items."}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":109},{"name":"list_services","title":"List catalog services","description":"List Keystone catalog entries such as compute or network, not running\ndaemons. Usually needs more than a project reader role; forbidden means the role is missing, not that the list is empty. Not paged; narrow with filters.","inputs":[{"name":"limit","type":"integer","required":false,"description":"Maximum items to return (1-100, default 50)."},{"name":"project_id","type":null,"required":false,"description":"Project ID to work in; omit for the default project. Allowed values are listed by get_scope."},{"name":"type","type":null,"required":false,"description":"Service type, e.g. compute."}],"outputs":[{"name":"complete","type":"boolean","required":true,"description":"True when no more items exist beyond this page."},{"name":"items","type":"array","required":true,"description":null},{"name":"limit","type":"integer","required":true,"description":"Maximum number of items requested."},{"name":"next_marker","type":null,"required":false,"description":"Pass as marker to read the next page; null when complete or when the API has no marker paging."},{"name":"observed_at","type":"string","required":true,"description":"UTC time the list was read."},{"name":"project_id","type":null,"required":true,"description":"Project whose session produced the list."},{"name":"resource","type":"string","required":true,"description":"Resource type of the items."}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":111},{"name":"list_endpoints","title":"List catalog endpoints","description":"List Keystone catalog endpoints with interface and URL. Usually needs more than a project reader role; forbidden means the role is missing, not that the list is empty. Not paged; narrow with filters.","inputs":[{"name":"interface","type":null,"required":false,"description":"Endpoint interface: public, internal or admin."},{"name":"limit","type":"integer","required":false,"description":"Maximum items to return (1-100, default 50)."},{"name":"project_id","type":null,"required":false,"description":"Project ID to work in; omit for the default project. Allowed values are listed by get_scope."},{"name":"region_id","type":null,"required":false,"description":"Region ID, as returned by list_regions."},{"name":"service_id","type":null,"required":false,"description":"Service ID, as returned by list_services."}],"outputs":[{"name":"complete","type":"boolean","required":true,"description":"True when no more items exist beyond this page."},{"name":"items","type":"array","required":true,"description":null},{"name":"limit","type":"integer","required":true,"description":"Maximum number of items requested."},{"name":"next_marker","type":null,"required":false,"description":"Pass as marker to read the next page; null when complete or when the API has no marker paging."},{"name":"observed_at","type":"string","required":true,"description":"UTC time the list was read."},{"name":"project_id","type":null,"required":true,"description":"Project whose session produced the list."},{"name":"resource","type":"string","required":true,"description":"Resource type of the items."}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":134},{"name":"list_hypervisors","title":"List hypervisors","description":"List Nova hypervisors with state and capacity. Usually needs more than a project reader role; forbidden means the role is missing, not that the list is empty. Not paged; narrow with filters.","inputs":[{"name":"limit","type":"integer","required":false,"description":"Maximum items to return (1-100, default 50)."},{"name":"project_id","type":null,"required":false,"description":"Project ID to work in; omit for the default project. Allowed values are listed by get_scope."}],"outputs":[{"name":"complete","type":"boolean","required":true,"description":"True when no more items exist beyond this page."},{"name":"items","type":"array","required":true,"description":null},{"name":"limit","type":"integer","required":true,"description":"Maximum number of items requested."},{"name":"next_marker","type":null,"required":false,"description":"Pass as marker to read the next page; null when complete or when the API has no marker paging."},{"name":"observed_at","type":"string","required":true,"description":"UTC time the list was read."},{"name":"project_id","type":null,"required":true,"description":"Project whose session produced the list."},{"name":"resource","type":"string","required":true,"description":"Resource type of the items."}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":96},{"name":"list_compute_services","title":"List compute services","description":"List running Nova daemons such as nova-compute with host and state. Usually needs more than a project reader role; forbidden means the role is missing, not that the list is empty. Not paged; narrow with filters.","inputs":[{"name":"binary","type":null,"required":false,"description":"Service binary, for example nova-compute."},{"name":"host","type":null,"required":false,"description":"Host name filter."},{"name":"limit","type":"integer","required":false,"description":"Maximum items to return (1-100, default 50)."},{"name":"project_id","type":null,"required":false,"description":"Project ID to work in; omit for the default project. Allowed values are listed by get_scope."}],"outputs":[{"name":"complete","type":"boolean","required":true,"description":"True when no more items exist beyond this page."},{"name":"items","type":"array","required":true,"description":null},{"name":"limit","type":"integer","required":true,"description":"Maximum number of items requested."},{"name":"next_marker","type":null,"required":false,"description":"Pass as marker to read the next page; null when complete or when the API has no marker paging."},{"name":"observed_at","type":"string","required":true,"description":"UTC time the list was read."},{"name":"project_id","type":null,"required":true,"description":"Project whose session produced the list."},{"name":"resource","type":"string","required":true,"description":"Resource type of the items."}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":120},{"name":"list_aggregates","title":"List host aggregates","description":"List Nova host aggregates with availability zone and hosts. Usually needs more than a project reader role; forbidden means the role is missing, not that the list is empty. Not paged; narrow with filters.","inputs":[{"name":"limit","type":"integer","required":false,"description":"Maximum items to return (1-100, default 50)."},{"name":"project_id","type":null,"required":false,"description":"Project ID to work in; omit for the default project. Allowed values are listed by get_scope."}],"outputs":[{"name":"complete","type":"boolean","required":true,"description":"True when no more items exist beyond this page."},{"name":"items","type":"array","required":true,"description":null},{"name":"limit","type":"integer","required":true,"description":"Maximum number of items requested."},{"name":"next_marker","type":null,"required":false,"description":"Pass as marker to read the next page; null when complete or when the API has no marker paging."},{"name":"observed_at","type":"string","required":true,"description":"UTC time the list was read."},{"name":"project_id","type":null,"required":true,"description":"Project whose session produced the list."},{"name":"resource","type":"string","required":true,"description":"Resource type of the items."}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":95},{"name":"list_network_agents","title":"List network agents","description":"List Neutron agents with host and liveness. Usually needs more than a project reader role; forbidden means the role is missing, not that the list is empty. Not paged; narrow with filters.","inputs":[{"name":"agent_type","type":null,"required":false,"description":"Agent type, for example 'Open vSwitch agent'."},{"name":"host","type":null,"required":false,"description":"Host name filter."},{"name":"limit","type":"integer","required":false,"description":"Maximum items to return (1-100, default 50)."},{"name":"project_id","type":null,"required":false,"description":"Project ID to work in; omit for the default project. Allowed values are listed by get_scope."}],"outputs":[{"name":"complete","type":"boolean","required":true,"description":"True when no more items exist beyond this page."},{"name":"items","type":"array","required":true,"description":null},{"name":"limit","type":"integer","required":true,"description":"Maximum number of items requested."},{"name":"next_marker","type":null,"required":false,"description":"Pass as marker to read the next page; null when complete or when the API has no marker paging."},{"name":"observed_at","type":"string","required":true,"description":"UTC time the list was read."},{"name":"project_id","type":null,"required":true,"description":"Project whose session produced the list."},{"name":"resource","type":"string","required":true,"description":"Resource type of the items."}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":118},{"name":"list_volume_services","title":"List volume services","description":"List running Cinder daemons such as cinder-volume with host and state. Usually needs more than a project reader role; forbidden means the role is missing, not that the list is empty. Not paged; narrow with filters.","inputs":[{"name":"binary","type":null,"required":false,"description":"Service binary, for example cinder-volume."},{"name":"host","type":null,"required":false,"description":"Host name filter."},{"name":"limit","type":"integer","required":false,"description":"Maximum items to return (1-100, default 50)."},{"name":"project_id","type":null,"required":false,"description":"Project ID to work in; omit for the default project. Allowed values are listed by get_scope."}],"outputs":[{"name":"complete","type":"boolean","required":true,"description":"True when no more items exist beyond this page."},{"name":"items","type":"array","required":true,"description":null},{"name":"limit","type":"integer","required":true,"description":"Maximum number of items requested."},{"name":"next_marker","type":null,"required":false,"description":"Pass as marker to read the next page; null when complete or when the API has no marker paging."},{"name":"observed_at","type":"string","required":true,"description":"UTC time the list was read."},{"name":"project_id","type":null,"required":true,"description":"Project whose session produced the list."},{"name":"resource","type":"string","required":true,"description":"Resource type of the items."}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":121}],"toolsTruncatedAtCapture":false,"diagnostics":{"capturedAt":"2026-11-06T07:43:25.000Z","track":"package","endpoint":null,"declaredUrl":null,"truncated":false,"tls":null,"dnssec":null,"auth":null,"httpsRedirect":null,"transports":[],"provenance":{"outcome":"none","label":"No attestation","reason":"no_attestation","reasonLabel":"No attestation published","discovery":null,"discoveryLabel":null,"sourceRepo":null,"attestationSkipped":null,"attestationSkippedLabel":null},"installScripts":[],"installScriptsTotal":null,"vulnerabilities":[],"vulnerabilitiesTotal":null,"dependencies":null},"mismatches":[],"changelog":{"trackingSince":"2026-11-03","recent":[{"id":"chg_01a1aaa7-9215-78d1-b128-b6ee7fa4a66b","kind":"score.total_changed","summary":"Trust score (43 → 44)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-11-05","url":"https://verifymcp.io/servers/oomchiller-openstack-mcp-server/ghcr-io-oomchiller-openstack-mcp-server#chg-chg_01a1aaa7-9215-78d1-b128-b6ee7fa4a66b"},{"id":"chg_01a1a392-8864-7892-b8a4-44cdeda8b539","kind":"score.first_scored","summary":"First indexed and scored","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-03","url":"https://verifymcp.io/servers/oomchiller-openstack-mcp-server/ghcr-io-oomchiller-openstack-mcp-server#chg-chg_01a1a392-8864-7892-b8a4-44cdeda8b539"},{"id":"chg_01a1a2eb-d726-7f39-89d8-6e202962a3ee","kind":"score.first_scored","summary":"First indexed and scored","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-03","url":"https://verifymcp.io/servers/oomchiller-openstack-mcp-server/ghcr-io-oomchiller-openstack-mcp-server#chg-chg_01a1a2eb-d726-7f39-89d8-6e202962a3ee"}],"truncated":false,"feedUrl":"https://verifymcp.io/servers/oomchiller-openstack-mcp-server/ghcr-io-oomchiller-openstack-mcp-server/changelog.json"},"links":{"html":"https://verifymcp.io/servers/oomchiller-openstack-mcp-server/ghcr-io-oomchiller-openstack-mcp-server","markdown":"https://verifymcp.io/servers/oomchiller-openstack-mcp-server/ghcr-io-oomchiller-openstack-mcp-server.md","changelogJson":"https://verifymcp.io/servers/oomchiller-openstack-mcp-server/ghcr-io-oomchiller-openstack-mcp-server/changelog.json","changelogRss":"https://verifymcp.io/servers/oomchiller-openstack-mcp-server/ghcr-io-oomchiller-openstack-mcp-server.xml","external":[{"label":"GitHub Container Registry","href":"https://ghcr.io/oomchiller/openstack-mcp-server"},{"label":"Repository","href":"https://github.com/oomchiller/openstack-mcp-server"}]}}