# MCPO Project This repository contains the source code, configuration files, and deployment instructions for a project that uses Docker, Kubernetes, and the `mcpo` tool to manage mulitiple MCP (Multi-Component Protocol) services. ## Overview The project sets up: - A Docker container running the `mcpo` tool with configuration from `mcpo_config.yaml` managed by config_builder.py - A Kubernetes deployment for the Gitea MCP application - Services and pods to manage the application's networking and lifecycle ## Key Components ### Docker - **Dockerfile**: Builds a container with Python dependencies and the `mcpo` tool - **gitea_mcp_set.sh**: Script to configure gitea_mcp in the container environment - **requirements.txt**: Python dependencies for any script-based components ### Kubernetes - **kube/deployment.yaml**: Defines the Kubernetes deployment for the Gitea MCP application - **kube/pod.yaml**: Pod specification for the container - **kube/service.yaml**: Service configuration to expose the application ### Configuration ### Configuration - **Configuration File**: Managed through `mcpo_config.yaml`. - **Conversion Tool**: Uses `config_builder.py` to convert YAML to JSON. - **Template Guidelines**: Assumes the yaml will follw the guideline template outlined in [the MCPo configuration guidelines](https://github.com/open-webui/mcpo). It doesn't perform validation so it won't fail until build if you fuck it up ## Purpose This project provides a complete environment to: 1. Run the mpco service using containerization 2. Orchestrate the service using Kubernetes 3. Manage configuration and authentication securely ## Setup Instructions 1. **Clone the repository**: ```bash git clone [repository-url] ``` 2. **Build the Docker image**: ```bash docker build -t mcpo-service:latest . ``` 3. **Apply Kubernetes configurations**: ```bash kubectl apply -f kube/ ``` 4. **Verify the deployment**: ```bash kubectl get pods -n mcpo kubectl get services -n mcpo ``` 5. **Test the service**: - Ensure the service is accessible through the NodePort (30026) - Verify the MCP servers are configured correctly ## Notes - The `mcpo` tool is used to manage MCP connections - Sensitive information should be parsed via environment variables to mcpo_config.yaml - mcpo_config.yaml will parse env vars using the following syntax `!ENV ${YOUR_VAR}` - The project is designed for production deployment with Kubernetes orchestration For detailed explanations of individual components, refer to their respective files in the repository.