6.9 KiB
MCP Stack Update - RFP Scraper & LinkedIn MCPs Added
Summary
Your MCP gateway has been updated to support two new MCP backends:
- RFP Scraper - For discovering and scraping RFP opportunities
- LinkedIn - For professional networking and opportunity discovery
These complement your existing stack:
- ERPNext (98 tools)
- TrueNAS (35 tools)
- Home Assistant (18 tools)
- Wave Finance (22 tools)
Changes Made
1. docker-compose.yml ✅
Added two new service definitions:
rfpscraper-mcp:
build:
context: ./rfpscraper-mcp
dockerfile: Dockerfile
container_name: mcp-rfpscraper
ports: [8400]
environment:
- PORT=8400
- RFP_API_KEY=${RFP_API_KEY}
- RFP_BASE_URL=${RFP_BASE_URL}
linkedin-mcp:
build:
context: ./linkedin-mcp
dockerfile: Dockerfile
container_name: mcp-linkedin
ports: [8500]
environment:
- PORT=8500
- LINKEDIN_ACCESS_TOKEN=${LINKEDIN_ACCESS_TOKEN}
- LINKEDIN_API_KEY=${LINKEDIN_API_KEY}
Updated gateway service to register backends:
- MCP_BACKEND_RFPSCRAPER=http://mcp-rfpscraper:8400/mcp
- MCP_BACKEND_LINKEDIN=http://mcp-linkedin:8500/mcp
2. .env File ✅
Added configuration variables for both new MCPs:
# RFP Scraper MCP Server
RFP_API_KEY=${RFP_API_KEY}
RFP_BASE_URL=https://rfp.example.com
# LinkedIn MCP Server
LINKEDIN_ACCESS_TOKEN=${LINKEDIN_ACCESS_TOKEN}
LINKEDIN_API_KEY=${LINKEDIN_API_KEY}
Action required: Fill in these values with your actual API credentials.
3. gateway-proxy.py ✅
Updated DISPLAY_NAMES mapping:
DISPLAY_NAMES = {
"erpnext": "ERPNext",
"truenas": "TrueNAS",
"homeassistant": "Home Assistant",
"wave": "Wave Finance",
"rfpscraper": "RFP Scraper", # NEW
"linkedin": "LinkedIn", # NEW
}
No other changes needed - The gateway automatically detects all MCP_BACKEND_* environment variables and registers them.
4. Dashboard ✅
The dashboard (http://10.0.0.25:4444/dashboard) now shows:
- RFP Scraper service health and tool count
- LinkedIn service health and tool count
- Updated summary showing all 6 services
- Real-time probing of new backends
5. User Management Dashboard ✅
Updated user management (http://10.0.0.25:4444/admin) MCP access control:
Now includes RFP Scraper and LinkedIn in the allow/block toggles:
availableMcps: ['erpnext', 'truenas', 'homeassistant', 'wave', 'rfpscraper', 'linkedin']
Users can now:
- Allow/block access to RFP Scraper
- Allow/block access to LinkedIn
- Mix and match with existing MCPs
Deployment Steps
Step 1: Update .env Credentials
Edit .env and add your API credentials:
nano .env
# Add your actual credentials:
RFP_API_KEY=your_rfp_api_key_here
RFP_BASE_URL=your_rfp_base_url_here
LINKEDIN_ACCESS_TOKEN=your_linkedin_token_here
LINKEDIN_API_KEY=your_linkedin_api_key_here
Step 2: Rebuild and Restart
cd /path/to/mcp-gateway
# Rebuild containers
docker-compose down
docker-compose build
# Start all services
docker-compose up -d
Step 3: Verify New Services
Check the dashboard:
# Access dashboard
http://10.0.0.25:4444/dashboard
# Or check status endpoint
curl http://10.0.0.25:4444/dashboard/status | jq
You should see:
{
"services": [
{"name": "ERPNext", "status": "healthy", "toolCount": 98},
{"name": "TrueNAS", "status": "healthy", "toolCount": 35},
{"name": "Home Assistant", "status": "healthy", "toolCount": 18},
{"name": "Wave Finance", "status": "healthy", "toolCount": 22},
{"name": "RFP Scraper", "status": "healthy", "toolCount": XX},
{"name": "LinkedIn", "status": "healthy", "toolCount": XX}
],
"summary": {
"total": 6,
"healthy": 6,
"unhealthy": 0,
"totalTools": YYYY
}
}
Step 4: Grant User Access
In the user management dashboard (http://10.0.0.25:4444/admin):
- Select a user
- Toggle RFP Scraper and/or LinkedIn in the MCP Access Control section
- Save
Or via API:
curl -X PUT http://10.0.0.25:4444/users/alice/mcp-access \
-H "Content-Type: application/json" \
-d '{
"allowed_mcps": ["erpnext", "rfpscraper", "linkedin"],
"blocked_mcps": []
}'
Architecture
Updated MCP stack diagram:
┌─────────────────────────────────────────────────────────┐
│ MCP Gateway (port 4444) │
│ (OAuth2 + User Management) │
└──────────────────────┬──────────────────────────────────┘
│
┌───────────────┼───────────────┐
│ │ │
┌───▼────┐ ┌──────▼──┐ ┌────────▼────┐
│ERPNext │ │TrueNAS │ │Home Assistant│
│(98) │ │(35) │ │(18) │
└────────┘ └─────────┘ └─────────────┘
│ │ │
┌───▼────┐ ┌──────▼──┐ ┌────────▼────┐
│Wave │ │RFP │ │LinkedIn │
│Finance │ │Scraper │ │(NEW) │
│(22) │ │(NEW) │ │ │
└────────┘ └─────────┘ └─────────────┘
Total Capacity
Your gateway now provides access to 6 independent MCP backends with:
- 173+ tools from original 4 MCPs
- XX+ tools from RFP Scraper
- XX+ tools from LinkedIn
- Total: XXX+ tools across all services
Troubleshooting
Services showing as unhealthy
-
Check containers are running:
docker-compose ps -
Check logs:
docker-compose logs rfpscraper-mcp docker-compose logs linkedin-mcp -
Verify environment variables are set:
docker-compose config | grep -E "RFP_|LINKEDIN_"
Dashboard not showing new services
- Hard refresh browser:
Ctrl+Shift+R(orCmd+Shift+Ron Mac) - Check
/dashboard/statusendpoint directly:curl http://10.0.0.25:4444/dashboard/status
API key not working for new MCPs
- Make sure user has access configured in user dashboard
- Check user's MCP access list:
curl http://10.0.0.25:4444/users/{username} | jq .user.mcp_allowed
Next Steps
- ✅ Configure .env credentials for RFP Scraper and LinkedIn
- ✅ Deploy updated stack
- ✅ Verify services are healthy
- ✅ Grant users access to new MCPs
- ✅ Test API key authentication with new services
Your MCP gateway is now ready to integrate job search and professional networking capabilities!