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.