mcp-everything-server-for-gke

samarthgaggar/mcp-everything-server-for-gke

3.2

If you are the rightful owner of mcp-everything-server-for-gke and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to dayong@mcphub.com.

The MCP Everything Server for GKE is designed to facilitate the deployment of the MCP Everything Server on Google Kubernetes Engine, providing remote server functionality with HTTP transport support.

Tools
3
Resources
0
Prompts
0

MCP Everything Server for GKE

This project customizes Docker images to support running the MCP Everything Server for HTTP transport, specifically tailored for deployment on a Google Kubernetes Engine (GKE) cluster as a remote server.

Reference

This project is developed in reference to the official GitHub repository of the MCP Everything Server: Official Repository.

Overview

The goal of this project is to facilitate the deployment of the MCP Everything Server on a GKE cluster, enabling remote server functionality with HTTP transport support.

Directory Structure

├── README.md
└── src
   └── everything

Setup Instructions

1. Clone the Repository

git clone <repository-url>

2. Navigate to the Project Directory

cd mcp-everything-server-for-gke

3. Build Docker Image

Use the Dockerfile to build your custom Docker image that supports HTTP transport.

docker build -t my-mcp-everything-server:latest .

4. Deploy on GKE

Create a Kubernetes deployment using the developed Docker image. Ensure your GKE cluster is properly configured.

Post GKE Server Deployment Validation

1. Port Forward for Local Testing

Set up port forwarding to access the service locally:

kubectl port-forward service/mcp-everything-server-service 8080:80
kubectl port-forward pod/<pod-name> 8080:3000

2. Basic Health Checks

Once port forwarding is active, test the endpoints:

curl http://localhost:8080/health
curl http://localhost:8080/
curl http://localhost:8080/mcp

3. List Available Tools

Inspect the available tools:

curl -X POST http://localhost:8080/mcp \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "initialize",
    "params": {
      "protocolVersion": "2024-11-05",
      "capabilities": {},
      "clientInfo": {
        "name": "test-client",
        "version": "1.0.0"
      }
    }
  }'

curl -X POST http://localhost:8080/mcp \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 2,
    "method": "tools/list",
    "params": {}
  }'

4. Test a Specific Tool

Example: Test the web search tool:

curl -X POST http://localhost:8080/mcp \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 3,
    "method": "tools/call",
    "params": {
      "name": "web_search",
      "arguments": {
        "query": "kubernetes test"
      }
    }
  }'

5. Pod-Level Debugging

Check pod logs and status:

kubectl logs -f deployment/mcp-everything-server
kubectl describe pod <pod-name>
kubectl exec -it <pod-name> -- /bin/sh

6. Service Connectivity Test

Test service connectivity from within the cluster:

kubectl run test-pod --image=curlimages/curl --rm -it -- /bin/sh
curl http://mcp-everything-server-service/health
curl http://mcp-everything-server-service/

Available Tools

The server currently has these tools available:

  • echo: Echo back provided text
  • add: Add two numbers together
  • current_time: Get the current time

Testing the Available Tools

# Test the echo tool
curl -X POST http://localhost:8080/mcp \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 4,
    "method": "tools/call",
    "params": {
      "name": "echo",
      "arguments": {
        "text": "Hello from GKE!"
      }
    }
  }'

# Test the add tool
curl -X POST http://localhost:8080/mcp \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 5,
    "method": "tools/call",
    "params": {
      "name": "add",
      "arguments": {
        "a": 10,
        "b": 25
      }
    }
  }'

# Test the current_time tool
curl -X POST http://localhost:8080/mcp \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 6,
    "method": "tools/call",
    "params": {
      "name": "current_time",
      "arguments": {}
    }
  }'

Contributing

Contributions are welcome. Please read the contributing guidelines.