Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

OpenStack

OCI · GHCR.IO/OOMCHILLER/OPENSTACK-MCP-SERVER

Read-only-first OpenStack inspection: servers, images, volumes, networks, Keystone catalog.

44 Trust /100

Last scanned (2 hours ago)

Scores higher than 62% of OCI servers

Category Cloud Infrastructure

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security0
  • 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.Unverified
  • Known CVEs could not be checked: this artifact ships no SBOM or dependency manifest, so there is no dependency list to read.Unverified
  • Install-script risk not yet assessed.Unverified
  • Dependency health could not be checked: this artifact ships no SBOM or dependency manifest, so there is no dependency list to read.Unverified
Provenance & Transparency48
  • Source repository is publicly reachable at the declared URL. View diagnostics → Pass
  • Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
  • Clear OSI-approved license (Apache-2.0).Pass
  • Actively maintained (last published 2 days ago).Pass
  • Publishes a security disclosure policy (SECURITY.md).Pass
Schema Quality & AI Usability84
  • 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
  • AI-judged instruction clarity (good).Pass
  • 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. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management10
  • Stability observed for 3 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
  • Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • We read all 32 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
  • An AI judge read all 34 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass

Unverified: 1 category

A category scored 0 because we could not verify it: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.

What we tested

Checks we ran (12)

  • Source repository
  • Provenance
  • License
  • Maintenance
  • Security disclosure
  • Schema quality
  • Stability
  • Tool coverage
  • Injection markers
  • Destructive annotations
  • Judged manipulation
  • MCP protocol

Checks we could not complete (4)

These are gaps on our side, not findings about this package. We only credit what we can confirm, so a category made up entirely of them scores 0.

  • Malware scan in Supply Chain Security (scores 0 for this)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 in Supply Chain Security (scores 0 for this)Known CVEs could not be checked: this artifact ships no SBOM or dependency manifest, so there is no dependency list to read.
  • Install scripts in Supply Chain Security (scores 0 for this)Install-script risk not yet assessed.
  • Dependency health in Supply Chain Security (scores 0 for this)Dependency health could not be checked: this artifact ships no SBOM or dependency manifest, so there is no dependency list to read.

Does not apply to this package (2)

  • Endpoint SecurityScored on hosted endpoints only. A package has no live endpoint of its own for us to probe.
  • Transport & ReachabilityScored on hosted endpoints only. A package has no live endpoint of its own for us to probe.

The score does not measure everything. What the score does not measure →

Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 5 Nov 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.

  • 3 Nov 26 43

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 6 Nov 2026 · Analysed oci/ghcr.io/oomchiller/openstack-mcp-server@0.1.2

Provenance No attestation

The registry publishes no build provenance for this version, so there is nothing to verify.

Result No attestation
Ecosystem oci
Reason No attestation published

Background: How many MCP packages publish verified provenance →

MCP tools · 32 exposed · ~3,389 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
get_image ~98

Get one image by ID: status, visibility, formats, size, minimum disk and RAM, tags. Use list_images to find IDs by name. Returns not_found if the image does not exist or is not visible to the selected project.

NameTypeReqDescription
image_idstringyesImage ID, as returned by list_images.
project_id––Project ID to work in; omit for the default project. Allowed values are listed by get_scope.
NameTypeReqDescription
checksum–––
container_format–––
created_at–––
disk_format–––
hash_algo–––
hash_value–––
idstringyes–
is_hidden–––
is_protected–––
min_disk–––
min_ram–––
name–––
owner–––
size–––
status–––
tags–––
updated_at–––
virtual_size–––
visibility–––

No examples provided.

get_network ~101

Get one network by ID: status, sharing and external flags, MTU, subnets, provider data. Use list_networks to find IDs, with shared=true for shared networks. Returns not_found if the network is not visible to the selected project.

NameTypeReqDescription
network_idstringyesNetwork ID, as returned by list_networks.
project_id––Project ID to work in; omit for the default project. Allowed values are listed by get_scope.
NameTypeReqDescription
availability_zones–––
description–––
idstringyes–
is_admin_state_up–––
is_router_external–––
is_shared–––
mtu–––
name–––
project_id–––
provider_network_type–––
provider_physical_network–––
provider_segmentation_id–––
status–––
subnet_ids–––

No examples provided.

get_port ~98

Get one port by ID: network, device, MAC, fixed IPs, security groups, address pairs. Use list_ports to find IDs by network or device. Returns not_found if the port is not visible to the selected project.

NameTypeReqDescription
port_idstringyesPort ID, as returned by list_ports.
project_id––Project ID to work in; omit for the default project. Allowed values are listed by get_scope.
NameTypeReqDescription
allowed_address_pairs–––
description–––
device_id–––
device_owner–––
fixed_ips–––
idstringyes–
is_admin_state_up–––
mac_address–––
name–––
network_id–––
project_id–––
security_group_ids–––
status–––

No examples provided.

get_router ~95

Get one router by ID: status, external gateway, static routes, HA and distributed flags. Use list_router_interfaces for its internal subnets. Returns not_found if the router is not visible to the selected project.

NameTypeReqDescription
project_id––Project ID to work in; omit for the default project. Allowed values are listed by get_scope.
router_idstringyesRouter ID, as returned by list_routers.
NameTypeReqDescription
description–––
external_gateway_info–––
idstringyes–
is_admin_state_up–––
is_distributed–––
is_ha–––
name–––
project_id–––
routes–––
status–––

No examples provided.

get_scope ~31

Show mode, allowed projects, limits and whether credentials are configured. Does not contact the cloud. Call it first.

Input schema present but exposes no named parameters.

NameTypeReqDescription
cloud_access_verifiedbooleanyesAlways false: get_scope does not contact the cloud.
configuredbooleanyes–
credential_sourcestringyes–
default_project_id–yesProject used when project_id is omitted; null when the configuration names the project only by name.
interface–yes–
limits–yes–
modestringyes–
project_idsarrayyesAllowlisted projects; empty if none.
reason–yesWhy the cloud is not usable: missing_credentials, insecure_transport or invalid_cloud_config.
region_name–yes–
server_versionstringyes–
tlsstringyes–
write_tools_registeredbooleanyes–

No examples provided.

get_security_group ~97

Get one security group by ID with all its rules: direction, protocol, ports, remote. Use list_security_groups to find IDs by name. Returns not_found if the group is not visible to the selected project.

NameTypeReqDescription
project_id––Project ID to work in; omit for the default project. Allowed values are listed by get_scope.
security_group_idstringyesSecurity group ID, as returned by list_security_groups.
NameTypeReqDescription
description–––
idstringyes–
name–––
project_id–––
security_group_rules–––
stateful–––

No examples provided.

get_server ~95

Get one server by ID: status, flavor, image, addresses, security groups and volumes. Use list_servers to find IDs by name or status. Returns not_found if the ID is not in the selected project.

NameTypeReqDescription
project_id––Project ID to work in; omit for the default project. Allowed values are listed by get_scope.
server_idstringyesServer ID, as returned by list_servers.
NameTypeReqDescription
addresses–––
attached_volumes–––
availability_zone–––
created_at–––
description–––
flavor–––
hostname–––
idstringyes–
image–––
key_name–––
namestringyes–
security_groups–––
status–––
updated_at–––

No examples provided.

get_subnet ~102

Get one subnet by ID: CIDR, gateway, DHCP, allocation pools, DNS servers and routes. Use list_subnets to find IDs, optionally for one network. Returns not_found if the subnet is not visible to the selected project.

NameTypeReqDescription
project_id––Project ID to work in; omit for the default project. Allowed values are listed by get_scope.
subnet_idstringyesSubnet ID, as returned by list_subnets.
NameTypeReqDescription
allocation_pools–––
cidr–––
description–––
dns_nameservers–––
gateway_ip–––
host_routes–––
idstringyes–
ip_version–––
is_dhcp_enabled–––
name–––
network_id–––
project_id–––

No examples provided.

get_volume ~98

Get one volume by ID: status, size (GiB), type, bootable, encrypted, attachments. Use list_volumes to find IDs by name or status. Returns not_found if the ID is not in the selected project.

NameTypeReqDescription
project_id––Project ID to work in; omit for the default project. Allowed values are listed by get_scope.
volume_idstringyesVolume ID, as returned by list_volumes.
NameTypeReqDescription
attachmentsarray––
availability_zone–––
created_at–––
description–––
idstringyes–
is_bootable–––
is_encrypted–––
name–––
size–––
status–––
updated_at–––
volume_type–––

No examples provided.

get_volume_attachment ~65

Get one Cinder attachment record by ID, without connection details.

NameTypeReqDescription
attachment_idstringyesAttachment ID, as returned by list_volume_attachments.
project_id––Project ID to work in; omit for the default project. Allowed values are listed by get_scope.
NameTypeReqDescription
attach_mode–––
attached_at–––
detached_at–––
idstringyes–
instance–––
status–––
volume_id–––

No examples provided.

list_aggregates ~95

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.

NameTypeReqDescription
limitinteger–Maximum items to return (1-100, default 50).
project_id––Project ID to work in; omit for the default project. Allowed values are listed by get_scope.
NameTypeReqDescription
completebooleanyesTrue when no more items exist beyond this page.
itemsarrayyes–
limitintegeryesMaximum number of items requested.
next_marker––Pass as marker to read the next page; null when complete or when the API has no marker paging.
observed_atstringyesUTC time the list was read.
project_id–yesProject whose session produced the list.
resourcestringyesResource type of the items.

No examples provided.

list_compute_services ~120

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.

NameTypeReqDescription
binary––Service binary, for example nova-compute.
host––Host name filter.
limitinteger–Maximum items to return (1-100, default 50).
project_id––Project ID to work in; omit for the default project. Allowed values are listed by get_scope.
NameTypeReqDescription
completebooleanyesTrue when no more items exist beyond this page.
itemsarrayyes–
limitintegeryesMaximum number of items requested.
next_marker––Pass as marker to read the next page; null when complete or when the API has no marker paging.
observed_atstringyesUTC time the list was read.
project_id–yesProject whose session produced the list.
resourcestringyesResource type of the items.

No examples provided.

list_domains ~95

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.

NameTypeReqDescription
limitinteger–Maximum items to return (1-100, default 50).
name––Exact domain name.
project_id––Project ID to work in; omit for the default project. Allowed values are listed by get_scope.
NameTypeReqDescription
completebooleanyesTrue when no more items exist beyond this page.
itemsarrayyes–
limitintegeryesMaximum number of items requested.
next_marker––Pass as marker to read the next page; null when complete or when the API has no marker paging.
observed_atstringyesUTC time the list was read.
project_id–yesProject whose session produced the list.
resourcestringyesResource type of the items.

No examples provided.

list_endpoints ~134

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.

NameTypeReqDescription
interface––Endpoint interface: public, internal or admin.
limitinteger–Maximum items to return (1-100, default 50).
project_id––Project ID to work in; omit for the default project. Allowed values are listed by get_scope.
region_id––Region ID, as returned by list_regions.
service_id––Service ID, as returned by list_services.
NameTypeReqDescription
completebooleanyesTrue when no more items exist beyond this page.
itemsarrayyes–
limitintegeryesMaximum number of items requested.
next_marker––Pass as marker to read the next page; null when complete or when the API has no marker paging.
observed_atstringyesUTC time the list was read.
project_id–yesProject whose session produced the list.
resourcestringyesResource type of the items.

No examples provided.

list_flavors ~107

List flavors visible to the project: vCPUs, RAM (MiB), disk (GiB). Paged with limit and marker. Use it to resolve the flavor of a server.

NameTypeReqDescription
limitinteger–Maximum items to return (1-100, default 50).
marker––next_marker from the previous page; omit for the first page.
project_id––Project ID to work in; omit for the default project. Allowed values are listed by get_scope.
NameTypeReqDescription
completebooleanyesTrue when no more items exist beyond this page.
itemsarrayyes–
limitintegeryesMaximum number of items requested.
next_marker––Pass as marker to read the next page; null when complete or when the API has no marker paging.
observed_atstringyesUTC time the list was read.
project_id–yesProject whose session produced the list.
resourcestringyesResource type of the items.

No examples provided.

list_floating_ips ~161

List the project's floating IPs with the fixed IP, port and router they map to. Paged with limit and marker. There is no get tool: filter by port_id to find the floating IP of one port.

NameTypeReqDescription
floating_network_id––External network ID the floating IPs come from.
limitinteger–Maximum items to return (1-100, default 50).
marker––next_marker from the previous page; omit for the first page.
port_id––Port ID the floating IP is associated with.
project_id––Project ID to work in; omit for the default project. Allowed values are listed by get_scope.
status––Floating IP status filter, for example ACTIVE or DOWN.
NameTypeReqDescription
completebooleanyesTrue when no more items exist beyond this page.
itemsarrayyes–
limitintegeryesMaximum number of items requested.
next_marker––Pass as marker to read the next page; null when complete or when the API has no marker paging.
observed_atstringyesUTC time the list was read.
project_id–yesProject whose session produced the list.
resourcestringyesResource type of the items.

No examples provided.

list_hypervisors ~96

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.

NameTypeReqDescription
limitinteger–Maximum items to return (1-100, default 50).
project_id––Project ID to work in; omit for the default project. Allowed values are listed by get_scope.
NameTypeReqDescription
completebooleanyesTrue when no more items exist beyond this page.
itemsarrayyes–
limitintegeryesMaximum number of items requested.
next_marker––Pass as marker to read the next page; null when complete or when the API has no marker paging.
observed_atstringyesUTC time the list was read.
project_id–yesProject whose session produced the list.
resourcestringyesResource type of the items.

No examples provided.

list_images ~134

List images visible to the project with status, visibility, formats and size. Paged with limit and marker. Use get_image for one image by ID.

NameTypeReqDescription
limitinteger–Maximum items to return (1-100, default 50).
marker––next_marker from the previous page; omit for the first page.
name––Exact image name.
project_id––Project ID to work in; omit for the default project. Allowed values are listed by get_scope.
status––Image status filter, for example active.
visibility––Visibility filter: public, private, shared or community.
NameTypeReqDescription
completebooleanyesTrue when no more items exist beyond this page.
itemsarrayyes–
limitintegeryesMaximum number of items requested.
next_marker––Pass as marker to read the next page; null when complete or when the API has no marker paging.
observed_atstringyesUTC time the list was read.
project_id–yesProject whose session produced the list.
resourcestringyesResource type of the items.

No examples provided.

list_network_agents ~118

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.

NameTypeReqDescription
agent_type––Agent type, for example 'Open vSwitch agent'.
host––Host name filter.
limitinteger–Maximum items to return (1-100, default 50).
project_id––Project ID to work in; omit for the default project. Allowed values are listed by get_scope.
NameTypeReqDescription
completebooleanyesTrue when no more items exist beyond this page.
itemsarrayyes–
limitintegeryesMaximum number of items requested.
next_marker––Pass as marker to read the next page; null when complete or when the API has no marker paging.
observed_atstringyesUTC time the list was read.
project_id–yesProject whose session produced the list.
resourcestringyesResource type of the items.

No examples provided.

list_networks ~125

List the project's networks, or shared networks with shared=true. Paged with limit and marker.

NameTypeReqDescription
limitinteger–Maximum items to return (1-100, default 50).
marker––next_marker from the previous page; omit for the first page.
project_id––Project ID to work in; omit for the default project. Allowed values are listed by get_scope.
sharedboolean–List shared networks visible to the project, whatever their owner, instead of the project's own networks.
status––Network status filter, for example ACTIVE.
NameTypeReqDescription
completebooleanyesTrue when no more items exist beyond this page.
itemsarrayyes–
limitintegeryesMaximum number of items requested.
next_marker––Pass as marker to read the next page; null when complete or when the API has no marker paging.
observed_atstringyesUTC time the list was read.
project_id–yesProject whose session produced the list.
resourcestringyesResource type of the items.

No examples provided.

list_ports ~126

List the project's ports with fixed IPs and security groups. Paged with limit and marker.

NameTypeReqDescription
device_id––Server or router ID owning the port.
limitinteger–Maximum items to return (1-100, default 50).
marker––next_marker from the previous page; omit for the first page.
network_id––Network ID whose ports to list.
project_id––Project ID to work in; omit for the default project. Allowed values are listed by get_scope.
status––Port status filter, for example ACTIVE or DOWN.
NameTypeReqDescription
completebooleanyesTrue when no more items exist beyond this page.
itemsarrayyes–
limitintegeryesMaximum number of items requested.
next_marker––Pass as marker to read the next page; null when complete or when the API has no marker paging.
observed_atstringyesUTC time the list was read.
project_id–yesProject whose session produced the list.
resourcestringyesResource type of the items.

No examples provided.

list_projects ~109

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.

NameTypeReqDescription
domain_id––Domain ID, as returned by list_domains.
limitinteger–Maximum items to return (1-100, default 50).
name––Exact project name.
project_id––Project ID to work in; omit for the default project. Allowed values are listed by get_scope.
NameTypeReqDescription
completebooleanyesTrue when no more items exist beyond this page.
itemsarrayyes–
limitintegeryesMaximum number of items requested.
next_marker––Pass as marker to read the next page; null when complete or when the API has no marker paging.
observed_atstringyesUTC time the list was read.
project_id–yesProject whose session produced the list.
resourcestringyesResource type of the items.

No examples provided.

list_regions ~60

List Keystone regions. Not paged.

NameTypeReqDescription
limitinteger–Maximum items to return (1-100, default 50).
project_id––Project ID to work in; omit for the default project. Allowed values are listed by get_scope.
NameTypeReqDescription
completebooleanyesTrue when no more items exist beyond this page.
itemsarrayyes–
limitintegeryesMaximum number of items requested.
next_marker––Pass as marker to read the next page; null when complete or when the API has no marker paging.
observed_atstringyesUTC time the list was read.
project_id–yesProject whose session produced the list.
resourcestringyesResource type of the items.

No examples provided.

list_router_interfaces ~97

List a router's internal interfaces: port, subnet and IP address. Not paged; complete=false means the router has more interfaces.

NameTypeReqDescription
limitinteger–Maximum items to return (1-100, default 50).
project_id––Project ID to work in; omit for the default project. Allowed values are listed by get_scope.
router_idstringyesRouter ID, as returned by list_routers.
NameTypeReqDescription
completebooleanyesTrue when no more items exist beyond this page.
itemsarrayyes–
limitintegeryesMaximum number of items requested.
next_marker––Pass as marker to read the next page; null when complete or when the API has no marker paging.
observed_atstringyesUTC time the list was read.
project_id–yesProject whose session produced the list.
resourcestringyesResource type of the items.

No examples provided.

list_routers ~112

List the project's routers with external gateway and static routes. Paged with limit and marker. Use list_router_interfaces for the subnets a router connects.

NameTypeReqDescription
limitinteger–Maximum items to return (1-100, default 50).
marker––next_marker from the previous page; omit for the first page.
project_id––Project ID to work in; omit for the default project. Allowed values are listed by get_scope.
status––Router status filter, for example ACTIVE.
NameTypeReqDescription
completebooleanyesTrue when no more items exist beyond this page.
itemsarrayyes–
limitintegeryesMaximum number of items requested.
next_marker––Pass as marker to read the next page; null when complete or when the API has no marker paging.
observed_atstringyesUTC time the list was read.
project_id–yesProject whose session produced the list.
resourcestringyesResource type of the items.

No examples provided.

list_security_groups ~94

List the project's security groups with their rules. Paged with limit and marker.

NameTypeReqDescription
limitinteger–Maximum items to return (1-100, default 50).
marker––next_marker from the previous page; omit for the first page.
name––Exact security group name.
project_id––Project ID to work in; omit for the default project. Allowed values are listed by get_scope.
NameTypeReqDescription
completebooleanyesTrue when no more items exist beyond this page.
itemsarrayyes–
limitintegeryesMaximum number of items requested.
next_marker––Pass as marker to read the next page; null when complete or when the API has no marker paging.
observed_atstringyesUTC time the list was read.
project_id–yesProject whose session produced the list.
resourcestringyesResource type of the items.

No examples provided.

list_servers ~126

List servers in the project with status, flavor, image, addresses and volumes. Paged with limit and marker. Use get_server for one server by ID.

NameTypeReqDescription
limitinteger–Maximum items to return (1-100, default 50).
marker––next_marker from the previous page; omit for the first page.
name––Name regex filter.
project_id––Project ID to work in; omit for the default project. Allowed values are listed by get_scope.
status––Server status filter, for example ACTIVE or SHUTOFF.
NameTypeReqDescription
completebooleanyesTrue when no more items exist beyond this page.
itemsarrayyes–
limitintegeryesMaximum number of items requested.
next_marker––Pass as marker to read the next page; null when complete or when the API has no marker paging.
observed_atstringyesUTC time the list was read.
project_id–yesProject whose session produced the list.
resourcestringyesResource type of the items.

No examples provided.

list_services ~111

List Keystone catalog entries such as compute or network, not running daemons. 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.

NameTypeReqDescription
limitinteger–Maximum items to return (1-100, default 50).
project_id––Project ID to work in; omit for the default project. Allowed values are listed by get_scope.
type––Service type, e.g. compute.
NameTypeReqDescription
completebooleanyesTrue when no more items exist beyond this page.
itemsarrayyes–
limitintegeryesMaximum number of items requested.
next_marker––Pass as marker to read the next page; null when complete or when the API has no marker paging.
observed_atstringyesUTC time the list was read.
project_id–yesProject whose session produced the list.
resourcestringyesResource type of the items.

No examples provided.

list_subnets ~118

List the project's subnets with CIDR, gateway and DHCP settings. Paged with limit and marker.

NameTypeReqDescription
ip_version––IP version filter: 4 or 6.
limitinteger–Maximum items to return (1-100, default 50).
marker––next_marker from the previous page; omit for the first page.
network_id––Network ID whose subnets to list.
project_id––Project ID to work in; omit for the default project. Allowed values are listed by get_scope.
NameTypeReqDescription
completebooleanyesTrue when no more items exist beyond this page.
itemsarrayyes–
limitintegeryesMaximum number of items requested.
next_marker––Pass as marker to read the next page; null when complete or when the API has no marker paging.
observed_atstringyesUTC time the list was read.
project_id–yesProject whose session produced the list.
resourcestringyesResource type of the items.

No examples provided.

list_volume_attachments ~125

List Cinder attachment records (API microversion 3.27 or later). Connection details are not returned. Paged with limit and marker.

NameTypeReqDescription
instance_id––Server ID the volume is attached to.
limitinteger–Maximum items to return (1-100, default 50).
marker––next_marker from the previous page; omit for the first page.
project_id––Project ID to work in; omit for the default project. Allowed values are listed by get_scope.
volume_id––Volume ID whose attachments to list.
NameTypeReqDescription
completebooleanyesTrue when no more items exist beyond this page.
itemsarrayyes–
limitintegeryesMaximum number of items requested.
next_marker––Pass as marker to read the next page; null when complete or when the API has no marker paging.
observed_atstringyesUTC time the list was read.
project_id–yesProject whose session produced the list.
resourcestringyesResource type of the items.

No examples provided.

list_volume_services ~121

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.

NameTypeReqDescription
binary––Service binary, for example cinder-volume.
host––Host name filter.
limitinteger–Maximum items to return (1-100, default 50).
project_id––Project ID to work in; omit for the default project. Allowed values are listed by get_scope.
NameTypeReqDescription
completebooleanyesTrue when no more items exist beyond this page.
itemsarrayyes–
limitintegeryesMaximum number of items requested.
next_marker––Pass as marker to read the next page; null when complete or when the API has no marker paging.
observed_atstringyesUTC time the list was read.
project_id–yesProject whose session produced the list.
resourcestringyesResource type of the items.

No examples provided.

list_volumes ~125

List volumes in the project with size (GiB), type, status and attachments. Paged with limit and marker. Use get_volume for one volume by ID.

NameTypeReqDescription
limitinteger–Maximum items to return (1-100, default 50).
marker––next_marker from the previous page; omit for the first page.
name––Exact volume name.
project_id––Project ID to work in; omit for the default project. Allowed values are listed by get_scope.
status––Volume status filter, for example available or in-use.
NameTypeReqDescription
completebooleanyesTrue when no more items exist beyond this page.
itemsarrayyes–
limitintegeryesMaximum number of items requested.
next_marker––Pass as marker to read the next page; null when complete or when the API has no marker paging.
observed_atstringyesUTC time the list was read.
project_id–yesProject whose session produced the list.
resourcestringyesResource type of the items.

No examples provided.

Install

How do I install the OpenStack MCP server?

OpenStack runs locally as a container image, launched with docker run --rm -i -e OS_AUTH_URL -e OS_USERNAME -e OS_PASSWORD -e OS_USER_DOMAIN_NAME -e OS_PROJECT_ID -e OS_APPLICATION_CREDENTIAL_ID -e OS_APPLICATION_CREDENTIAL_SECRET -e OS_REGION_NAME -e OPENSTACK_MCP_PROJECT_IDS -e OPENSTACK_MCP_CACERT_PEM ghcr.io/oomchiller/openstack-mcp-server:0.1.2. Ready-made configuration for Claude, Cursor, VS Code, Codex and 3 more is on this page, copied from each client's own documentation.

oci · ghcr.io/oomchiller/openstack-mcp-server

# add to Claude Code
claude mcp add oomchiller-openstack-mcp-server -- docker run --rm -i -e OS_AUTH_URL -e OS_USERNAME -e OS_PASSWORD -e OS_USER_DOMAIN_NAME -e OS_PROJECT_ID -e OS_APPLICATION_CREDENTIAL_ID -e OS_APPLICATION_CREDENTIAL_SECRET -e OS_REGION_NAME -e OPENSTACK_MCP_PROJECT_IDS -e OPENSTACK_MCP_CACERT_PEM ghcr.io/oomchiller/openstack-mcp-server:0.1.2

This image reads OS_AUTH_URL, OS_USERNAME, OS_PASSWORD, OS_USER_DOMAIN_NAME, OS_PROJECT_ID, OS_APPLICATION_CREDENTIAL_ID, OS_APPLICATION_CREDENTIAL_SECRET, OS_REGION_NAME, OPENSTACK_MCP_PROJECT_IDS and OPENSTACK_MCP_CACERT_PEM. Set them in your client's env block for this server; docker run -e passes each one through to the container.

Common questions

What is the OpenStack MCP server?

OpenStack is an MCP server listed in the public MCP registry as io.github.oomchiller/openstack-mcp-server. Read-only-first OpenStack inspection: servers, images, volumes, networks, Keystone catalog. This page covers its container image (ghcr.io/oomchiller/openstack-mcp-server).

Is the OpenStack MCP server safe to use?

OpenStack scores 44 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the OpenStack MCP server expose?

OpenStack exposes 32 tools: get_scope, list_servers, get_server, list_flavors, list_images, and 27 more. Their descriptions and schemas cost roughly 3,389 tokens of context every time the server is loaded.

Is the OpenStack MCP server still maintained?

OpenStack is still listed as active in the MCP registry. We last reached this channel on 6 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What licence is the OpenStack MCP server under?

OpenStack declares the Apache-2.0 licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.

What did VerifyMCP test on the OpenStack MCP server?

VerifyMCP ran 12 checks on OpenStack, covering Source repository, Provenance, License, Maintenance and 8 more. 4 items could not be completed, a gap on our side rather than a finding about OpenStack: Malware scan, Known CVEs, Install scripts and Dependency health. One category scores 0 for that reason, because we only credit what we can confirm. Endpoint Security and Transport & Reachability do not apply to a container image, so they were not tested. The score does not measure everything, and the scoring documentation lists what it leaves out.