An MCP server for managing OpenStack cloud infrastructure, providing tools to list projects, servers, images, networks, flavors, and perform server lifecycle operations
This server has severe definition quality issues across all dimensions. Tool naming is inconsistent (mix of snake_case and PascalCase), descriptions are sparse or missing entirely, parameters lack descriptions, and schemas are either absent or incomplete. Parameter handling exposes security risks (no input validation visible), and error handling is minimal. The codebase shows incomplete tool registration (many FastAPI endpoints duplicate MCP tool definitions), and several tools reference undefined functions (e.g., 'List_Images()' is not defined in the visible code).
List all OpenStack projects
Get openstack project Count
Create a new server with the specified name, flavor, and image
Delete a server by its name
Returns the name of the instance associated with the given floating IP.
Get details of a server by its name
Greet a user with their name
No parameter descriptions: 9 of 10 tools have parameters without descriptions (e.g., 'name', 'project_name', 'server_name', 'floating_ip', 'flavor_name', 'image_name', 'network_name').
Inconsistent naming conventions: PascalCase (Project_Count, List_Projects) mixed with snake_case. Violates verb_noun pattern and reduces LLM's ability to infer intent from names.
No output schema documentation: 10 of 10 tools lack documented return types in docstrings. LLMs cannot predict what fields to expect, forcing exploratory calls and wasted tokens.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 7 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 29 | - | v1 |
List all OpenStack servers Count
List all server names in a specific OpenStack project
List all server names in a specific OpenStack project
Destructive operations lack safety guards: delete_server has no confirmation step, dry-run option, or recovery guidance. Pattern: confirmation-request violated.
Incomplete tool definitions: Tool 'get_instance_name_by_floating_ip' has truncated implementation (source cuts off at 'f'). Tool 'list_servers_count_in_project' and 'list_servers_in_project' reference undefined variables and have broken iteration logic.
Duplicate tool definitions: Project_Count and List_Projects are defined as both @mcp.tool() and @mcp.resource(). This creates ambiguity and may cause tool registration conflicts.
Missing input validation: No explicit validation on string parameters. LLMs could pass malicious payloads (SQL injection, command injection) that are not sanitized.
No error recovery guidance: Error responses (e.g., 'Project Name not found') do not guide LLMs on next steps. Missing pattern: recovery-guide.
Tool naming ambiguity: 'greet' is non-functional for the OpenStack domain and should be removed or renamed. Its presence dilutes the tool catalog.
No pagination support: list_servers_count, list_servers_in_project, List_Projects return unbounded lists without limit or offset parameters. Can exhaust context window.