Remove mcp-gateway/MCP_STACK_UPDATE.md
This commit is contained in:
parent
c51e5b8ce5
commit
dadfdafe53
1 changed files with 0 additions and 263 deletions
|
|
@ -1,263 +0,0 @@
|
||||||
# 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:
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
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:
|
|
||||||
|
|
||||||
```env
|
|
||||||
# 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:
|
|
||||||
|
|
||||||
```python
|
|
||||||
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:
|
|
||||||
|
|
||||||
```javascript
|
|
||||||
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:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
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
|
|
||||||
|
|
||||||
```bash
|
|
||||||
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:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# 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:
|
|
||||||
```json
|
|
||||||
{
|
|
||||||
"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`):
|
|
||||||
|
|
||||||
1. Select a user
|
|
||||||
2. Toggle RFP Scraper and/or LinkedIn in the MCP Access Control section
|
|
||||||
3. Save
|
|
||||||
|
|
||||||
Or via API:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
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
|
|
||||||
|
|
||||||
1. Check containers are running:
|
|
||||||
```bash
|
|
||||||
docker-compose ps
|
|
||||||
```
|
|
||||||
|
|
||||||
2. Check logs:
|
|
||||||
```bash
|
|
||||||
docker-compose logs rfpscraper-mcp
|
|
||||||
docker-compose logs linkedin-mcp
|
|
||||||
```
|
|
||||||
|
|
||||||
3. Verify environment variables are set:
|
|
||||||
```bash
|
|
||||||
docker-compose config | grep -E "RFP_|LINKEDIN_"
|
|
||||||
```
|
|
||||||
|
|
||||||
### Dashboard not showing new services
|
|
||||||
|
|
||||||
1. Hard refresh browser: `Ctrl+Shift+R` (or `Cmd+Shift+R` on Mac)
|
|
||||||
2. Check `/dashboard/status` endpoint directly:
|
|
||||||
```bash
|
|
||||||
curl http://10.0.0.25:4444/dashboard/status
|
|
||||||
```
|
|
||||||
|
|
||||||
### API key not working for new MCPs
|
|
||||||
|
|
||||||
1. Make sure user has access configured in user dashboard
|
|
||||||
2. Check user's MCP access list:
|
|
||||||
```bash
|
|
||||||
curl http://10.0.0.25:4444/users/{username} | jq .user.mcp_allowed
|
|
||||||
```
|
|
||||||
|
|
||||||
## Next Steps
|
|
||||||
|
|
||||||
1. ✅ Configure .env credentials for RFP Scraper and LinkedIn
|
|
||||||
2. ✅ Deploy updated stack
|
|
||||||
3. ✅ Verify services are healthy
|
|
||||||
4. ✅ Grant users access to new MCPs
|
|
||||||
5. ✅ Test API key authentication with new services
|
|
||||||
|
|
||||||
Your MCP gateway is now ready to integrate job search and professional networking capabilities!
|
|
||||||
Loading…
Reference in a new issue