# Infracloud MCP

MCP server for the actual `infracloud` repository layout.

## Scope

- Reads `vps/*/services_inventory.md` and `k3s/services_inventory.md`
- Lists and reads `containers/*.container` and `containers/*.service`
- Lists scripts in `scripts/auto-organized`
- Executes only scripts classified as read-only diagnostics
- Provides repo grep and safe document reads
- Supports optional Postgres-backed notes and read-only SQL diagnostics

## Install

```powershell
pip install -r C:\dev\infracloud\mcp\requirements.txt
```

## Run

```powershell
python C:\dev\infracloud\mcp\server.py
```

### HTTP transport

For container or VPS usage:

```powershell
$env:INFRA_MCP_TRANSPORT="streamable-http"
$env:INFRA_MCP_HOST="0.0.0.0"
$env:INFRA_MCP_PORT="18000"
python C:\dev\infracloud\mcp\server.py
```

## Postgres

Set `INFRA_MCP_POSTGRES_DSN` if you want the server to use Postgres for notes and SQL diagnostics.

Example:

```powershell
$env:INFRA_MCP_POSTGRES_DSN="postgresql://user:password@127.0.0.1:5432/infracloud_mcp"
python C:\dev\infracloud\mcp\server.py
```

## Docker on echo

The repo includes [docker-compose.echo.yml](C:\dev\infracloud\mcp\docker-compose.echo.yml) for running the MCP server on the echo VPS with:

- `streamable-http` transport
- port `18000`
- Postgres database `infracloud_mcp`

## Claude Desktop

Use `claude_desktop_config.infracloud.json` as a base and merge it into your Claude Desktop MCP config.

## Notes

- This repo currently uses `scripts/auto-organized`, not `dev-scripts`.
- This repo currently does not have `docs/openproject`.
- `AGENT.md` includes secrets in plaintext. The MCP server does not expose that file.
