Metadata-Version: 2.4
Name: python-openstackmcp-server
Version: 1.0.0
Summary: A MCP server providing OpenStack services for MCP clients
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: fastmcp>=2.11.3
Requires-Dist: openstacksdk>=4.6.0
Requires-Dist: pydantic>=2.11.7
Dynamic: license-file

# python-openstackmcp-server

Openstack mcp server is a [Model Context Protocol (MCP)](https://modelcontextprotocol.io/docs/getting-started/intro) server that provides an interface for AI assistants to interact with OpenStack services.

```mermaid
flowchart LR
    AI[AI Assistant] <-->|MCP Protocol| Server[OpenStack MCP Server]
    Server <-->|OpenStack SDK| SDK[OpenStack SDK]
    SDK <-->|REST API| Cloud[OpenStack Cloud]
```

# Table of Contents
- [Table of Contents](#table-of-contents)
- [Features](#features)
- [Quick Start with Claude Desktop](#quick-start-with-claude-desktop)
  - [Requirements](#requirements)
  - [Using python](#using-python)
  - [Using uvx](#using-uvx)
  - [Contributing](#contributing)
  - [License](#license)

# Features
- **MCP Protocol Support**: Implements the Model Context Protocol for AI assistants.
- **Compute Tools**: Manage OpenStack compute resources (servers, flavors).
- **Image Tools**: Manage OpenStack images.
- **Identity Tools**: Handle OpenStack identity and authentication.
- **Network Tools**: Manage OpenStack networking resources.
- **Block Storage Tools**: Manage OpenStack block storage resources.

# Quick Start with Claude Desktop

Get started quickly with the OpenStack MCP server using Claude Desktop

## Requirements
- Python 3.10 or higher
- OpenStack credentials configured in `clouds.yaml` file
- Claude Desktop installed

1. **Create or update your `clouds.yaml` file with your OpenStack credentials.**
   
   Example `clouds.yaml`:
   ```yaml
   clouds:
     openstack:
       auth:
         auth_url: https://your-openstack-auth-url.com
         username: your-username
         password: your-password
         project_name: your-project-name
         user_domain_name: Default
         project_domain_name: Default
       region_name: your-region
       interface: public
       identity_api_version: 3
   ```

2. **Create or update your Claude Desktop configuration file**:
   - **macOS**: Edit `$HOME/Library/Application Support/Claude/claude_desktop_config.json`
   - **Windows**: Edit `%APPDATA%\Claude\claude_desktop_config.json`
   - **Linux**: Edit `$HOME/.config/Claude/claude_desktop_config.json`
   
### Using python
 
   ```json
   {
     "mcpServers": {
       "openstack-mcp-server": {
         "command": "/path/to/your/python",
         "args": [
           "python-openstackmcp-server"
         ],
         "env" : {
           "OS_CLIENT_CONFIG_FILE": "/path/to/your/clouds.yaml"
         }
       }
     }
   }
   ```

### Using uvx
  
   ```json
   {
     "mcpServers": {
       "openstack-mcp-server": {
         "command": "uvx",
         "args": [
           "python-openstackmcp-server"
         ],
         "env" : {
           "OS_CLIENT_CONFIG_FILE": "/path/to/your/clouds.yaml"
         }
       }
     }
   }
   ```

# Contributing
Contributions are welcome! Please see the [CONTRIBUTING](CONTRIBUTING.rst) file for details on how to contribute to this project.

# License
This project is licensed under the Apache License 2.0. See the [LICENSE](LICENSE) file for details.
