Skip to main content
Glama

MCP Server for Splunk

Apache 2.0
16
  • Apple
  • Linux
port-configuration-fix.md5.88 kB
# Port Configuration Fix Documentation ## Overview This document explains the fixes applied to resolve port mismatch and dependency issues in the MCP Server for Splunk Docker Compose configurations. ## Issues Fixed ### 1. Port Mismatch in Development Mode **Problem**: The MCP server container was defaulting to port 8000, but Traefik's load balancer and MCP Inspector were configured to connect to port 8003, causing connection failures. **Solution**: Standardized development mode to use port 8003 consistently across all services. ### 2. Unconditional Dependency on Splunk Container **Problem**: The `mcp-server-dev` service unconditionally depended on `so1`, which is only available when the `splunk` profile is active, potentially causing startup issues. **Solution**: Added the `splunk` profile to `mcp-server-dev` to make the dependency conditional. ## Configuration Summary ### Development Mode (`docker-compose-dev.yml`) | Service | Container Port | External Port | Profile | Notes | |---------|----------------|---------------|---------|-------| | Traefik MCP Entrypoint | - | `${MCP_SERVER_PORT:-8003}` | - | Load balancer entry point | | MCP Server | 8003 | - | `splunk` | No direct port mapping, Traefik handles access | | MCP Inspector | 6274 | 6274 | - | Connects to MCP server on port 8003 | | Splunk (so1) | 8000 | 9000 | `splunk` | Optional, only when profile is active | **Key Features**: - Hot reload enabled - Port 8003 used consistently - Splunk container optional (profile-based) - MCP Inspector pre-configured for port 8003 ### Production Mode (`docker-compose.yml`) | Service | Container Port | External Port | Profile | Notes | |---------|----------------|---------------|---------|-------| | Traefik MCP Entrypoint | - | 8001 | - | Fixed port for production | | MCP Server | 8000 | - | - | No direct port mapping | | MCP Inspector | 6274 | 6274 | - | Connects to MCP server on port 8000 | | Splunk (so1) | 8000 | 9000 | `splunk` | Optional, only when profile is active | **Key Features**: - Hot reload disabled for performance - Port 8001 for external access (Traefik) - Port 8000 for internal MCP server - Fixed, predictable port configuration ## Environment Variables ### Default Ports | Mode | MCP_SERVER_PORT | Traefik Entrypoint | MCP Server Container | |------|------------------|-------------------|---------------------| | Development | 8003 | 8003 | 8003 | | Production | 8001 | 8001 | 8000 | ### Configuration Files - **`.env`**: Set `MCP_SERVER_PORT` to override defaults - **`env.example`**: Updated to use port 8003 as default - **Scripts**: Updated to use port 8003 as default for consistency ## Usage Examples ### Start Development Environment ```bash # Start with Splunk container docker compose -f docker-compose-dev.yml --profile splunk up -d # Start without Splunk container docker compose -f docker-compose-dev.yml up -d ``` ### Start Production Environment ```bash # Start with Splunk container docker compose --profile splunk up -d # Start without Splunk container docker compose up -d ``` ### Custom Port Configuration ```bash # Override default port MCP_SERVER_PORT=8005 docker compose -f docker-compose-dev.yml up -d ``` ## Script Updates The following scripts have been updated to use port 8003 as the default: - `scripts/build_and_run.sh` - `scripts/build_and_run.ps1` - `scripts/build_and_run.bat` ## Verification ### Check Service Status ```bash # Check if services are running docker compose -f docker-compose-dev.yml ps # Check MCP server logs docker compose -f docker-compose-dev.yml logs mcp-server-dev ``` ### Test MCP Inspector Connection 1. Open `http://localhost:6274` 2. Set server URL to `http://localhost:8003/mcp/` (dev) or `http://localhost:8001/mcp/` (prod) 3. Click Connect to verify successful connection ### Test Traefik Routing ```bash # Test MCP server through Traefik curl http://localhost:8003/mcp/ # Development curl http://localhost:8001/mcp/ # Production ``` ## Troubleshooting ### Port Already in Use If port 8003 is already in use: ```bash # Check what's using the port lsof -i :8003 # Use a different port MCP_SERVER_PORT=8005 docker compose -f docker-compose-dev.yml up -d ``` ### Connection Refused If MCP Inspector can't connect: 1. Verify MCP server is running: `docker compose -f docker-compose-dev.yml ps` 2. Check MCP server logs: `docker compose -f docker-compose-dev.yml logs mcp-server-dev` 3. Verify Traefik is routing correctly: `curl http://localhost:8003/mcp/` ### Splunk Container Issues If using the `splunk` profile: 1. Ensure Docker has sufficient resources (4GB+ RAM recommended) 2. Check Splunk license requirements 3. Verify health check: `docker compose -f docker-compose-dev.yml exec so1 curl -s -k https://localhost:8089/services/server/info` ## Migration Notes ### From Previous Versions - **Port 8001 → 8003**: Development mode now uses port 8003 by default - **Profile-based dependencies**: MCP server now respects the `splunk` profile - **Consistent configuration**: All services now use the same port configuration ### Environment File Updates If you have an existing `.env` file: ```bash # Update your .env file MCP_SERVER_PORT=8003 # For development mode # or MCP_SERVER_PORT=8001 # For production mode ``` ## Best Practices 1. **Use profiles**: Always specify the `splunk` profile when you need Splunk functionality 2. **Port consistency**: Stick to the default ports unless you have conflicts 3. **Environment isolation**: Use different `.env` files for different environments 4. **Health checks**: Monitor service health, especially when using profiles ## Support For issues related to port configuration: 1. Check this documentation 2. Review service logs: `docker compose logs <service-name>` 3. Verify environment variables: `docker compose config` 4. Check GitHub issues for similar problems

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/deslicer/mcp-for-splunk'

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