Compare commits

..

No commits in common. "master" and "config_builder" have entirely different histories.

5 changed files with 28 additions and 20 deletions

View File

@ -39,7 +39,6 @@ jobs:
run: | run: |
echo "GITEA_TOKEN=${{ secrets.GITEAMCPTOKEN }}" > .env echo "GITEA_TOKEN=${{ secrets.GITEAMCPTOKEN }}" > .env
echo "HOMEASSISTANT_TOKEN=${{ secrets.HOMEASSISTANTMCPTOKEN }}" >> .env echo "HOMEASSISTANT_TOKEN=${{ secrets.HOMEASSISTANTMCPTOKEN }}" >> .env
echo "POSTGRES_URI=${{ secrets.POSTGRES_URI }}" >> .env
- name: Build and push - name: Build and push
uses: docker/build-push-action@v5 uses: docker/build-push-action@v5

View File

@ -1,11 +1,11 @@
# MCPO Project # 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. 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) service.
## Overview ## Overview
The project sets up: The project sets up:
- A Docker container running the `mcpo` tool with configuration from `mcpo_config.yaml` managed by config_builder.py - A Docker container running the `mcpo` tool with configuration from `mcpo_config.json`
- A Kubernetes deployment for the Gitea MCP application - A Kubernetes deployment for the Gitea MCP application
- Services and pods to manage the application's networking and lifecycle - Services and pods to manage the application's networking and lifecycle
@ -22,12 +22,10 @@ The project sets up:
- **kube/service.yaml**: Service configuration to expose the application - **kube/service.yaml**: Service configuration to expose the application
### Configuration ### Configuration
### Configuration - **mcpo_config.json**: Main configuration file for the `mcpo` tool, containing:
- MCP server settings
- **Configuration File**: Managed through `mcpo_config.yaml`. - Authentication credentials
- **Conversion Tool**: Uses `config_builder.py` to convert YAML to JSON. - API endpoints
- **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 ## Purpose
@ -45,7 +43,7 @@ This project provides a complete environment to:
2. **Build the Docker image**: 2. **Build the Docker image**:
```bash ```bash
docker build -t mcpo-service:latest . docker build -t gitea-mcp:latest .
``` ```
3. **Apply Kubernetes configurations**: 3. **Apply Kubernetes configurations**:
@ -55,8 +53,8 @@ This project provides a complete environment to:
4. **Verify the deployment**: 4. **Verify the deployment**:
```bash ```bash
kubectl get pods -n mcpo kubectl get pods -n gitea-mcp
kubectl get services -n mcpo kubectl get services -n gitea-mcp
``` ```
5. **Test the service**: 5. **Test the service**:
@ -65,8 +63,7 @@ This project provides a complete environment to:
## Notes ## Notes
- The `mcpo` tool is used to manage MCP connections - The `mcpo` tool is used to manage MCP connections
- Sensitive information should be parsed via environment variables to mcpo_config.yaml - The configuration file contains sensitive information (access tokens, Bearer tokens)
- mcpo_config.yaml will parse env vars using the following syntax `!ENV ${YOUR_VAR}`
- The project is designed for production deployment with Kubernetes orchestration - The project is designed for production deployment with Kubernetes orchestration
For detailed explanations of individual components, refer to their respective files in the repository. For detailed explanations of individual components, refer to their respective files in the repository.

18
mcpo_config.json Normal file
View File

@ -0,0 +1,18 @@
{
"mcpServers": {
"gitea_stdio": {
"command": "gitea-mcp",
"args": ["-t", "stdio", "--host", "https://git.aridgwayweb.com"],
"env": {
"GITEA_ACCESS_TOKEN": "bac6a1e753d6f2c0b848bd1cbad82965b43ea480"
}
},
"homeassistant": {
"type": "sse",
"url": "https://homeassistant.aridgwayweb.com/mcp_server/sse",
"headers": {
"Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiIwZmM4ZTIyNGFlOGI0MGIxOWJmNWE2YzI3NmRkYTBkYiIsImlhdCI6MTc1MzE4MzUwNSwiZXhwIjoyMDY4NTQzNTA1fQ.At_LG5QAuIzeM470tTokbp-XIq3ytf7j5SsAmpoPrLk"
}
}
}
}

View File

@ -9,8 +9,3 @@ mcpServers:
url: "https://homeassistant.aridgwayweb.com/mcp_server/sse" url: "https://homeassistant.aridgwayweb.com/mcp_server/sse"
headers: headers:
Authorization: !ENV ${HOMEASSISTANT_TOKEN} Authorization: !ENV ${HOMEASSISTANT_TOKEN}
postgres:
command: "postgres-mcp"
args: ["--access-mode=unrestricted"]
env:
"DATABASE_URI": !ENV ${POSTGRES_URI}

View File

@ -2,4 +2,3 @@ mcpo
pyyaml pyyaml
python-dotenv python-dotenv
pyaml_env pyaml_env
postgres-mcp