Skip to main content
Glama

🔧 MCP Tools

BibliothĂšque d'outils exĂ©cutables pour agents IA — Serveur MCP Cloud Temple

English version

MCP Tools est un serveur MCP passif qui expose des outils (shell, rĂ©seau, HTTP, recherche IA
) aux agents autonomes via le protocole Streamable HTTP. C'est la « boĂźte Ă  outils » de l'Ă©cosystĂšme Cloud Temple.

Démarrage rapide

1. Configuration

cp .env.example .env
# Éditer .env avec vos credentials S3, Perplexity, etc.

2. Lancement (Docker Compose)

docker compose build
docker compose up -d

# Vérification
curl http://localhost:8082/health
# → {"status":"healthy","service":"mcp-tools","version":"0.5.1","transport":"streamable-http"}

# Console d'administration
open http://localhost:8082/admin

3. CLI

# Créer le venv Python
python3 -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt

# Health check (pas d'auth requise)
python scripts/mcp_cli.py health

# Infos service
python scripts/mcp_cli.py about

# Exécuter une commande shell
python scripts/mcp_cli.py run-shell "hostname && uptime"

# Diagnostic réseau
python scripts/mcp_cli.py network ping google.com
python scripts/mcp_cli.py network dig google.com MX +short
python scripts/mcp_cli.py network nslookup google.com -type=mx

# RequĂȘte HTTP
python scripts/mcp_cli.py http https://httpbin.org/get

# Dates et heures
python scripts/mcp_cli.py date now --tz Europe/Paris
python scripts/mcp_cli.py date add 2026-03-06 --days 10
python scripts/mcp_cli.py date diff 2026-01-01 --date2 2026-03-06
python scripts/mcp_cli.py date day_of_week 2026-03-06

# Calculs mathématiques
python scripts/mcp_cli.py calc "2 + 3 * 4"
python scripts/mcp_cli.py calc "math.sqrt(144) + statistics.mean([10,20,30])"

# Recherche IA (Perplexity)
python scripts/mcp_cli.py search "Qu'est-ce que le protocole MCP ?"

# Documentation technique (Perplexity)
python scripts/mcp_cli.py doc "Python asyncio"
python scripts/mcp_cli.py doc "FastAPI" --context "middleware et dépendances"

# SSH (exécution distante)
python scripts/mcp_cli.py ssh exec myserver.com --user admin --password secret "uptime"
python scripts/mcp_cli.py ssh status myserver.com --user admin --password secret

# Fichiers S3
python scripts/mcp_cli.py files list --prefix logs/
python scripts/mcp_cli.py files read config/app.yaml
python scripts/mcp_cli.py files write test.txt --content "Hello World"

# Gestion des tokens (admin)
python scripts/mcp_cli.py token create agent-prod --tools shell,date,calc --expires 90
python scripts/mcp_cli.py token create ct-user --email user@cloud-temple.com --expires 180
python scripts/mcp_cli.py token list
python scripts/mcp_cli.py token info agent-prod
python scripts/mcp_cli.py token revoke agent-prod

# Shell interactif
python scripts/mcp_cli.py shell

4. Recette E2E

184 assertions couvrant les 12 outils, dont 74 négatives (anti-SSRF, blocage RFC 1918, isolation réseau de la sandbox, injections, timeouts, refus d'entrées invalides, gardes de régression). Les valeurs calculées sont comparées à l'exact, pas seulement l'absence d'erreur.

Ce qui tourne automatiquement en CI : 132 assertions hermĂ©tiques sur 9 outils, plus les 8 gardes de reproductibilitĂ©. Ce qui reste manuel faute de secrets en CI : token et admin (identifiants S3), perplexity_search et perplexity_doc (clĂ© API facturĂ©e), et les cas SSH positifs (cible rĂ©elle). À jouer avant chaque release.

# Tous les tests (build + start + test + stop)
python scripts/test_service.py

# Sous-ensemble hermétique, celui de la CI
python scripts/test_service.py --test shell,network,http,date,calc,files,waf,cli,auth

# Test spécifique (16 catégories)
python scripts/test_service.py --test shell
python scripts/test_service.py --test network
python scripts/test_service.py --test http
python scripts/test_service.py --test ssh
python scripts/test_service.py --test files
python scripts/test_service.py --test token
python scripts/test_service.py --test admin
python scripts/test_service.py --test waf
python scripts/test_service.py --test date
python scripts/test_service.py --test calc

# Serveur déjà lancé
python scripts/test_service.py --no-docker

# Verbose (réponses complÚtes)
python scripts/test_service.py --test shell -v

5. Développement local (sans Docker)

python -m venv .venv && source .venv/bin/activate
pip install -r requirements.lock
PYTHONPATH=src python -m mcp_tools

6. Build reproductible

requirements.txt est un contrat de compatibilitĂ© (bornes hautes obligatoires), pas la source d'installation. Ce sont requirements.lock — clĂŽture transitive figĂ©e, outillage pip/setuptools/wheel inclus — et les images de base Ă©pinglĂ©es par digest qui garantissent qu'un rebuild d'un tag publiĂ© produit le mĂȘme arbre de dĂ©pendances.

AprÚs toute modification de requirements.txt, régénérer le lock dans l'image cible :

./scripts/lock_requirements.sh

Un pip freeze lancé depuis le poste de développement résoudrait d'autres versions que python:3.11-slim linux/amd64 et produirait un lock faux.

ContrÎler les gardes (bornes, cohérence du lock, plafond mcp < 2.0, imports serveur et client, CVE) :

python3 scripts/test_service.py --test reproducibility --no-docker

Related MCP server: GPT Commander

Architecture

Internet/LAN → :8082 (WAF Caddy+Coraza) → mcp-tools:8050 (interne)

Pile ASGI

AdminMiddleware → HealthCheckMiddleware → AuthMiddleware → LoggingMiddleware → FastMCP streamable_http_app

3 couches (pattern Cloud Temple)

Couche

Fichier

RĂŽle

Outils MCP

src/mcp_tools/server.py

API MCP (Streamable HTTP)

CLI Click

scripts/cli/commands.py

Interface scriptable

Shell interactif

scripts/cli/shell.py

Interface interactive

Affichage

scripts/cli/display.py

Rich partagé (couches 2+3)

Outils disponibles (12/27 — Phase 1)

Tous les paramÚtres de chaque outil sont documentés avec des descriptions détaillées via le protocole MCP. Les clients compatibles (Cline, Claude Desktop
) affichent automatiquement ces descriptions.

Outil

Description

shell

Sandbox Docker isolĂ©e (bash, sh, python3, node) — sans rĂ©seau par dĂ©faut, network=true pour pip install. Python packages prĂ©-installĂ©s : numpy, pandas, requests, beautifulsoup4, scipy, matplotlib


network

Diagnostic rĂ©seau en sandbox Docker (ping, traceroute, nslookup, dig) — IPs privĂ©es RFC 1918 interdites

http

Client HTTP/REST en sandbox Docker (anti-SSRF, auth basic/bearer/api_key) — IPs privĂ©es bloquĂ©es

ssh

ExĂ©cution de commandes et transfert de fichiers via SSH en sandbox Docker (exec, status, upload, download) — auth password/key

files

OpĂ©rations fichiers sur S3 Dell ECS en sandbox Docker (list, read, write, delete, info, diff, versions, enable_versioning) — config hybride SigV2/SigV4, versioning S3

perplexity_search

Recherche internet via Perplexity AI

perplexity_doc

Documentation technique d'une technologie/librairie/API via Perplexity AI

date

Manipulation de dates/heures (now, today, diff, add, format, parse, week_number, day_of_week) — fuseaux horaires

calc

Calculs mathĂ©matiques en sandbox Python Docker (expressions, math, statistics) — sans rĂ©seau

token

Gestion des tokens d'authentification MCP (create, list, info, revoke) — admin uniquement, isolation par tool_ids, email propriĂ©taire

system_health

Santé du service

system_about

Métadonnées et liste des outils

Console d'administration (/admin)

Une interface web d'administration est disponible sur /admin :

http://localhost:8082/admin

4 vues : Dashboard (état serveur), Tools (exécution interactive avec formulaires dynamiques), Tokens (CRUD), Activité (logs temps réel).

Authentification admin requise (ADMIN_BOOTSTRAP_KEY ou token S3 avec permission admin). Design Cloud Temple (dark theme). Same-origin uniquement (pas de CORS cross-origin).

Sécurité

  • Audit de sĂ©curitĂ© : Rapport complet dans DESIGN/mcp-tools/SECURITY_AUDIT.md — architecture qualifiĂ©e "niveau Entreprise"

  • WAF Caddy + Coraza : OWASP CRS en mode blocage (SecRuleEngine On), headers de sĂ©curitĂ©, rate limiting (1000 req/min MCP) — 6 tests E2E (--test waf)

  • Auth Bearer token : Chaque requĂȘte /mcp est authentifiĂ©e. Permissions access (appel d'outils) ou admin (tout)

  • tool_ids : Le token peut restreindre l'accĂšs Ă  un sous-ensemble d'outils (whitelisting par outil)

  • Sandbox Docker : Chaque commande shell/network/http dans un conteneur Ă©phĂ©mĂšre isolĂ© (--cap-drop=ALL, --read-only, non-root)

  • Token Manager S3 : Tokens stockĂ©s en S3 Dell ECS (_tokens/{sha256}.json), cache mĂ©moire TTL 5min, isolation par tool_ids

  • Admin same-origin : Console /admin sans CORS cross-origin, auth admin obligatoire sur l'API

  • Anti-SSRF : RĂ©solution DNS + blocage RFC 1918 / loopback / metadata cloud pour les tools http et network

  • Utilisateur non-root dans Docker

  • Timeouts et limites sur tous les outils

  • Kill automatique des conteneurs sandbox en cas de timeout

Variables d'environnement

Serveur (.env)

Variable

Description

Défaut

WAF_PORT

Port WAF exposé

8082

MCP_SERVER_NAME

Nom du service

mcp-tools

MCP_SERVER_PORT

Port interne MCP

8050

ADMIN_BOOTSTRAP_KEY

Token admin (⚠ changer !)

change_me_in_production

S3_ENDPOINT_URL

Endpoint S3

S3_ACCESS_KEY_ID

Clé d'accÚs S3

S3_SECRET_ACCESS_KEY

Secret S3

S3_BUCKET_NAME

Bucket S3

mcp-tools

PERPLEXITY_API_KEY

Clé API Perplexity

PERPLEXITY_MODEL

ModĂšle Perplexity

sonar-reasoning-pro

PERPLEXITY_TIMEOUT

Timeout dédié Perplexity (s)

600

TOOL_DEFAULT_TIMEOUT

Timeout par défaut outils (s)

600

TOOL_MAX_OUTPUT_CHARS

Troncature max des outputs

50000

SANDBOX_DNS

DNS pour sandbox réseau

8.8.8.8,8.8.4.4

Client CLI

Variable

Description

Défaut

MCP_URL

URL du serveur

http://localhost:8082

MCP_TOKEN

Token d'auth

(vide)

Structure des fichiers

mcp-tools/
├── src/mcp_tools/
│   ├── server.py              # Serveur MCP + HealthCheck + banniùre
│   ├── config.py              # Configuration pydantic-settings (sandbox, etc.)
│   ├── admin/                 # Console d'administration web (/admin)
│   ├── static/                # Fichiers statiques admin (HTML, CSS, JS)
│   ├── auth/                  # Middleware auth + Token Store S3
│   └── tools/                 # Outils MCP (shell, network, http, perplexity)
├── sandbox/
│   └── Dockerfile             # Image Alpine sandbox (python3, node, openssl
)
├── scripts/
│   ├── mcp_cli.py             # Point d'entrĂ©e CLI
│   ├── test_service.py        # Recette E2E (--test NOM pour cibler)
│   └── cli/                   # CLI Click + Shell + Display
├── waf/                       # WAF Caddy + Coraza
├── Dockerfile                 # Python 3.11 + docker CLI statique
├── docker-compose.yml         # sandbox + mcp-tools + waf + docker.sock
├── .env.example
└── VERSION

Configurer dans Cline (VS Code / VSCodium)

Pour connecter MCP Tools Ă  Cline, ajoutez dans votre cline_mcp_settings.json (accessible via ⚙ MCP Servers dans la sidebar Cline) :

{
  "mcpServers": {
    "mcp-tools": {
      "disabled": false,
      "timeout": 60,
      "type": "streamableHttp",
      "url": "http://localhost:8082/mcp",
      "headers": {
        "Authorization": "Bearer VOTRE_TOKEN_ICI"
      }
    }
  }
}

ParamĂštre

Valeur

Description

type

streamableHttp

Obligatoire — indique à Cline le transport MCP à utiliser

url

http://localhost:8082/mcp

Endpoint Streamable HTTP (via WAF, toujours /mcp)

timeout

60

Timeout en secondes (recommandé pour les outils longs)

Authorization

Bearer VOTRE_TOKEN

Bootstrap key ou token S3

disabled

false

Permet de désactiver le serveur sans supprimer la config

Pour créer un token dédié à Cline avec des outils spécifiques :

python scripts/mcp_cli.py --token $ADMIN_BOOTSTRAP_KEY \
  token create cline-dev --tools shell,http,network,date,calc,perplexity_search --expires 365

Guide complet : voir starter-kit/CLINE_SETUP.md pour les chemins des fichiers de configuration par OS, le multi-serveurs, le debug, etc.

Roadmap

  • Phase 1 (actuel) : shell, network, http, ssh, files, perplexity_search, perplexity_doc, date, calc — ✅

  • Phase 1 (Ă  faire) : docker, generate, mcp_call

  • Phase 2 : git, s3, db, host_audit, ssh_diagnostics, sqlite, script_executor, email_send, pdf, doc_scraper

  • Phase 3 : imap, perplexity_api, perplexity_deprecated

Licence

Apache 2.0 — Cloud Temple

A
license - permissive license
Not graded
quality - not tested
A
maintenance

Maintenance

–Maintainers
–Response time
3wRelease cycle
7Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

View all related MCP servers

Related MCP Connectors

  • MCP server exposing the Backtest360 engine API as tools for AI agents.

  • MCP server for secureFlows: token-free URL builders and integration-linting tools for AI agents.

  • MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Cloud-Temple/mcp-tools'

If you have feedback or need assistance with the MCP directory API, please join our Discord server