Unclassified

MCP Servers Deployment Guide

All MCP servers are deployed to Cloudflare Workers with full dependency management, rate limiting, caching, and observability.

Exposed MCP Servers

1. Claude (Anthropic)

  • Endpoint: https://mcp-claude.integratewise.workers.dev
  • WebSocket: wss://mcp-claude.integratewise.workers.dev/ws
  • Auth: API Key
  • Dependencies:
    • ANTHROPIC_API_KEY (required)
    • CLAUDE_MODEL (optional, defaults to claude-3-5-sonnet-20241022)

2. OpenAI (GPT-4, GPT-4o)

  • Endpoint: https://mcp-openai.integratewise.workers.dev
  • WebSocket: wss://mcp-openai.integratewise.workers.dev/ws
  • Auth: API Key
  • Dependencies:
    • OPENAI_API_KEY (required)
    • OPENAI_ORG_ID (optional)

3. GitHub

  • Endpoint: https://mcp-github.integratewise.workers.dev
  • WebSocket: wss://mcp-github.integratewise.workers.dev/ws
  • Auth: Bearer Token
  • Dependencies:
    • GITHUB_TOKEN (required)
    • GITHUB_API_VERSION (optional)

4. Slack

  • Endpoint: https://mcp-slack.integratewise.workers.dev
  • WebSocket: wss://mcp-slack.integratewise.workers.dev/ws
  • Auth: OAuth2
  • Dependencies:
    • SLACK_BOT_TOKEN (required)
    • SLACK_SIGNING_SECRET (required)
    • SLACK_APP_ID (optional)

5. PostgreSQL

  • Endpoint: https://mcp-postgres.integratewise.workers.dev
  • WebSocket: wss://mcp-postgres.integratewise.workers.dev/ws
  • Auth: Bearer Token
  • Dependencies:
    • DATABASE_URL (required)
    • DATABASE_SSL (optional, default: false)
    • DATABASE_POOL_SIZE (optional, default: 20)

6. Brave Search

  • Endpoint: https://mcp-brave-search.integratewise.workers.dev
  • WebSocket: wss://mcp-brave-search.integratewise.workers.dev/ws
  • Auth: API Key
  • Dependencies:
    • BRAVE_SEARCH_API_KEY (required)

7. Playwright

  • Endpoint: https://mcp-playwright.integratewise.workers.dev
  • WebSocket: wss://mcp-playwright.integratewise.workers.dev/ws
  • Auth: None
  • Dependencies:
    • PLAYWRIGHT_HEADLESS (optional, default: true)
    • PLAYWRIGHT_TIMEOUT (optional, default: 30000ms)

8. Sentry

  • Endpoint: https://mcp-sentry.integratewise.workers.dev
  • WebSocket: wss://mcp-sentry.integratewise.workers.dev/ws
  • Auth: Bearer Token
  • Dependencies:
    • SENTRY_AUTH_TOKEN (required)
    • SENTRY_ORG_SLUG (required)
    • SENTRY_PROJECT_SLUG (optional)

9. Grafana

  • Endpoint: https://mcp-grafana.integratewise.workers.dev
  • WebSocket: wss://mcp-grafana.integratewise.workers.dev/ws
  • Auth: Bearer Token
  • Dependencies:
    • GRAFANA_URL (required)
    • GRAFANA_API_TOKEN (required)

Deployment Steps

1. Set up Cloudflare Account

npm install -g wrangler
wrangler login

2. Configure Secrets

# In apps/mcp-servers/

# Claude
wrangler secret put ANTHROPIC_API_KEY

# OpenAI
wrangler secret put OPENAI_API_KEY

# GitHub
wrangler secret put GITHUB_TOKEN

# Slack
wrangler secret put SLACK_BOT_TOKEN
wrangler secret put SLACK_SIGNING_SECRET

# PostgreSQL
wrangler secret put DATABASE_URL

# Brave Search
wrangler secret put BRAVE_SEARCH_API_KEY

# Sentry
wrangler secret put SENTRY_AUTH_TOKEN

# Grafana
wrangler secret put GRAFANA_API_TOKEN

3. Deploy to Production

cd apps/mcp-servers
wrangler deploy --env production

4. Deploy to Staging

wrangler deploy --env staging

5. Verify Deployment

# Check health
curl https://mcp-claude.integratewise.workers.dev/health

# Get registry
curl https://mcp-claude.integratewise.workers.dev/registry

Local Development

1. Install Dependencies

cd apps/mcp-servers
npm install

2. Set up .env.local

ANTHROPIC_API_KEY=sk-ant-...
OPENAI_API_KEY=sk-proj-...
GITHUB_TOKEN=ghp_...
SLACK_BOT_TOKEN=xoxb-...
SLACK_SIGNING_SECRET=xxxx...
DATABASE_URL=postgresql://...
BRAVE_SEARCH_API_KEY=xxx...
SENTRY_AUTH_TOKEN=sntrys_...
GRAFANA_API_TOKEN=eyJrIjoixxxx

3. Run Locally

wrangler dev

Server will be available at http://localhost:8787

Integration with Platform

1. Add MCP Pool to Platform


// Get all active servers
const servers = getActiveMCPServers();

// Initialize MCP client
const mcpClient = new MCPClient({
  servers: servers.map((server) => ({
    id: server.id,
    endpoint: server.endpoint,
    wsEndpoint: server.wsEndpoint,
  })),
});

2. Validate Environment Variables


// Check if a specific server can connect
const validation = validateServerEnvVars("claude", process.env);
if (!validation.valid) {
  console.error("Missing env vars:", validation.missing);
}

// Get all required vars across all servers
const required = getAllRequiredEnvVars();

3. Use MCP Servers in Components

'use client'


  const { servers, isLoading, error } = useMCPServers()

  if (isLoading) return <div>Loading MCP servers...</div>
  if (error) return <div>Error: {error.message}</div>

  return (
    <div>
      {servers.map(server => (
        <div key={server.id}>
          <h3>{server.name}</h3>
          <p>Status: {server.status}</p>
          <p>Endpoint: {server.endpoint}</p>
        </div>
      ))}
    </div>
  )
}

Monitoring

Cloudflare Analytics Engine

Track:

  • Request count per server
  • Error rates
  • Response times
  • Cache hit rates

Logs

# Tail logs from production
wrangler tail --env production

# Tail logs from staging
wrangler tail --env staging

Troubleshooting

1. Authentication Failures

# Check token validity
curl -H "Authorization: Bearer YOUR_TOKEN" \
  https://mcp-claude.integratewise.workers.dev/health

2. Rate Limiting

Check client IP in CF-Connecting-IP header. Rate limit is 1000 requests/minute per IP.

3. Dependency Validation


const result = validateServerEnvVars("claude", env);
console.log("Missing:", result.missing);
console.log("Errors:", result.errors);

Production Checklist

  • All secrets configured in Cloudflare
  • Rate limiting enabled
  • CORS properly configured
  • Health checks passing
  • Analytics/monitoring set up
  • Error alerting configured
  • Documentation updated
  • Team trained on MCP servers

Support

For issues or questions about MCP servers, contact the IntegrateWise platform team.