Add Cloudflare and Loki MCP server integrations

Features:
- Cloudflare Code Mode MCP: Exposes entire Cloudflare API (2,500+ endpoints)
  via remote MCP server at https://mcp.cloudflare.com/mcp
  * Two tools: search() to query OpenAPI spec, execute() to run JS code
  * Uses npx mcp-remote as stdio bridge
  * Auth via CLOUDFLARE_API_TOKEN as Bearer header

- Loki MCP Server: Log querying and analysis via Loki HTTP API
  * Query logs with LogQL syntax
  * Real-time log streaming support
  * Label introspection and metrics queries
  * Configurable via LOKI_URL environment variable

Technical changes:
- Created mcp_servers/cloudflare/ with config and connection logic
- Created mcp_servers/loki/ with HTTP client and MCP tool wrappers
- Added promtail-config-optimized.yaml for syslog ingestion config
- Updated .env.example with Cloudflare and Loki configuration templates

Both integrations:
- Use environment variables for configuration (no hardcoded credentials)
- Include feature flags (CLOUDFLARE_MCP_ENABLED, LOKI_MCP_ENABLED)
- Follow existing MCP server patterns for consistency

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-02-24 12:35:04 -07:00
parent 58de3e55dc
commit bb86a9eef5
10 changed files with 801 additions and 33 deletions

View File

@@ -0,0 +1,37 @@
"""
Cloudflare Code Mode MCP Server - Configuration
Remote MCP server that exposes the entire Cloudflare API through just two tools:
- search(): Query the OpenAPI spec to find endpoints
- execute(): Run JavaScript against the Cloudflare API
Environment variables:
CLOUDFLARE_API_TOKEN - Your Cloudflare API token (required)
CLOUDFLARE_MCP_URL - Remote MCP server URL (default: https://mcp.cloudflare.com/mcp)
CLOUDFLARE_MCP_ENABLED - Enable/disable integration (default: true)
"""
import os
# ---------------------------------------------------------------------------
# Connection settings
# ---------------------------------------------------------------------------
# Cloudflare API token — create one at https://dash.cloudflare.com/profile/api-tokens
# Recommended permissions: Account Resources (Read) + whatever you need
CLOUDFLARE_API_TOKEN = os.getenv("CLOUDFLARE_API_TOKEN", "")
# The remote MCP server URL (Cloudflare runs this as a Worker)
CLOUDFLARE_MCP_URL = os.getenv(
"CLOUDFLARE_MCP_URL", "https://mcp.cloudflare.com/mcp"
)
# ---------------------------------------------------------------------------
# Feature flag
# ---------------------------------------------------------------------------
# Set to "false" to disable the integration without removing config
CLOUDFLARE_MCP_ENABLED = os.getenv(
"CLOUDFLARE_MCP_ENABLED", "true"
).lower() in ("true", "1", "yes")