1. Conduid
  2. Files
  3. Marinas MCP
MCP server · Files

Marinas MCP

Servidor MCP (FastMCP) para consulta de tarifas de amarres en marinas deportivas, consumido desde un Custom GPT (MarinasGPT_BETA). Proyecto en fase muy beta, desarrollado con créditos Azure for Students y suscripción ChatGPT Plus.

Unclaimed last commit a year ago files
34Low

Scored 6 months ago · breakdown

About Marinas MCP

Marinas MCP is an MCP server published by Rafavermar in the Files category: servidor MCP (FastMCP) para consulta de tarifas de amarres en marinas deportivas, consumido desde un Custom GPT (MarinasGPT_BETA). Proyecto en fase muy beta, desarrollado con créditos Azure for Students y suscripción ChatGPT Plus.

The repository has 1 stars and 0 forks, with the last commit a year ago. Six months or more without a commit doesn't mean the server is broken, but check the open issues before depending on it in production.

Install

From source
git clone https://github.com/Rafavermar/marinas-mcp

This server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.

Ask AI

✦

Ask AI about Marinas MCP

Powered by Claude · Grounded in docs

I know everything about Marinas MCP. Ask me about installation, configuration, usage, or troubleshooting.

Security checks

  • ✓README presentThe repository ships documentation.

5 checks have not been run yet.

README

Marinas MCP

Servidor MCP (FastMCP) para consulta de tarifas de amarres en marinas deportivas, consumido desde un Custom GPT (MarinasGPT_BETA).
Proyecto en fase muy beta, desarrollado con créditos Azure for Students y suscripción ChatGPT Plus.

Architecture_MarinasMCP.png

Contenido

Características

  • Extracción de tarifas desde HTML o PDFs de tres marinas: Benalmádena, Marbella y Marina del Este.
  • API MCP con herramientas:
    • trigger_scrape: fuerza actualización de datos.
    • list_marinas: lista IDs disponibles.
    • get_marina_content(marina_id): recupera tarifas JSON y texto PDF.
    • list_history_dates(marina_id), get_marina_history(marina_id): histórico.
  • Despliegue de contenedor Docker en Azure App Service.
  • Base de datos PostgreSQL Flexible Server en Azure.

Arquitectura

  • Cliente: Custom GPT o cualquier cliente HTTP.
  • Azure App Service: ejecuta contenedor Docker con FastAPI + FastMCP.
  • PostgreSQL Flexible Server: almacena marinas y marinas_history.
  • Conectividad:
    • Endpoint público para la App Service.
    • Endpoint público para la DB (0.0.0.0/0) con reglas de firewall (IP propia y Azure).
    • CORS habilitado para https://chat.openai.com.

Requisitos previos

  • Azure CLI instalada y logueada (az login)
  • Docker y cuenta en Docker Hub
  • Python 3.10+ y entorno virtual
  • Variables de entorno en .env:
DATABASE_URL="postgresql://pgadmin@marinas-pg:5432/marinasdb?sslmode=require"

Desarrollo local

git clone https://github.com/tu_usuario/marinas-mcp.git
cd marinas-mcp
python -m venv venv
source venv/bin/activate      # Windows: venv\Scripts\activate
pip install -r requirements.txt
cp .env.example .env          # ajustar cadena de conexión
uvicorn server:app --reload

Esquema de base de datos

Conéctese al servidor PostgreSQL (Azure Cloud Shell o local):

psql "host=<SERVER>.postgres.database.azure.com port=5432 dbname=marinasdb user=pgadmin sslmode=require"

Ejecute:

CREATE TABLE IF NOT EXISTS marinas (
  id           TEXT PRIMARY KEY,
  pdf_text     TEXT,
  tarifas_json JSONB,
  updated_at   TIMESTAMPTZ NOT NULL
);

CREATE TABLE IF NOT EXISTS marinas_history (
  id           TEXT NOT NULL,
  pdf_text     TEXT,
  tarifas_json JSONB,
  updated_at   TIMESTAMPTZ NOT NULL
);

CREATE INDEX IF NOT EXISTS idx_marinas_history_id_date
  ON marinas_history(id, updated_at DESC);

Provisionamiento en Azure

1. PostgreSQL Flexible Server

az postgres flexible-server create \
  --resource-group marinas-rg \
  --name marinas-pg \
  --location westeurope \
  --admin-user pgadmin \
  --admin-password "<PASSWORD>" \
  --sku-name Standard_B1ms \
  --tier Burstable \
  --version 14 \
  --storage-size 32 \
  --public-access 0.0.0.0/0

az postgres flexible-server db create \
  --resource-group marinas-rg \
  --server-name marinas-pg \
  --database-name marinasdb

# Firewall: tu IP
az postgres flexible-server firewall-rule create \
  --resource-group marinas-rg \
  --server-name marinas-pg \
  --rule-name allow_my_ip \
  --start-ip-address <MY_IP> \
  --end-ip-address <MY_IP>

# Firewall: servicios Azure
az postgres flexible-server firewall-rule create \
  --resource-group marinas-rg \
  --server-name marinas-pg \
  --rule-name allow_azure_services \
  --start-ip-address 0.0.0.0 \
  --end-ip-address 0.0.0.0

2. Azure App Service (Contenedor Docker)

az group create \
  --name marinas-rg \
  --location westeurope

az appservice plan create \
  --resource-group marinas-rg \
  --name marinas-plan \
  --is-linux \
  --sku B1

az webapp create \
  --resource-group marinas-rg \
  --plan marinas-plan \
  --name marinas-mcp-app \
  --deployment-container-image-name <DOCKERHUB_USER>/marinas-mcp-app:latest

Configuración de la Web App

# Variables de entorno
az webapp config appsettings set \
  --resource-group marinas-rg \
  --name marinas-mcp-app \
  --settings \
    DATABASE_URL="<TU_CADENA_CONN_SIN_CREDENCIALES>" \
    WEBSITES_PORT=8000

# Always On
az webapp config set \
  --resource-group marinas-rg \
  --name marinas-mcp-app \
  --always-on true

# CORS
az webapp cors add \
  --resource-group marinas-rg \
  --name marinas-mcp-app \
  --allowed-origins https://chat.openai.com

# Logging
az webapp log config \
  --resource-group marinas-rg \
  --name marinas-mcp-app \
  --docker-container-logging filesystem \
  --detailed-error-messages true \
  --failed-request-tracing true

az webapp log tail \
  --resource-group marinas-rg \
  --name marinas-mcp-app

# (Opcional) Arrancar / detener base de datos
az postgres flexible-server stop  -g marinas-rg -n marinas-pg
az postgres flexible-server start -g marinas-rg -n marinas-pg

Uso de la API

Acceda a los endpoints:

  • GET / → { "status":"ok" }
  • POST /run

Ejemplos de payload:

{ "name":"trigger_scrape" }
{ "name":"list_marinas" }
{ "name":"get_marina_content", "marina_id":"benalmadena" }

Consulte /docs para explorar OpenAPI y Swagger UI.

CI/CD

En esta PoC se utiliza GitHub Actions para compilar y publicar la imagen Docker en Docker Hub.
El flujo de trabajo se dispara al hacer push en main, y no cubre despliegue automático en Azure.

Licencia

Apache License 2.0

README copy captured when this server was indexed; it may lag the repository. The original is authoritative.

Questions

About Marinas MCP

How do I install Marinas MCP?

No package has been published for this server, so install it from source: clone the repository and follow its README.

Is Marinas MCP safe to use with an AI agent?

Its trust score is 34 out of 100 (low). It passes 1 of the 1 static security checks run so far. It has no ConduID identity yet, so agent calls to it are not receipted.

Is Marinas MCP still maintained?

The last commit was a year ago. That's long enough that you should check whether the maintainer is responding to issues before depending on it.