Remove DEPLOYMENT_GUIDE.md
This commit is contained in:
parent
bbf2266590
commit
e8a8fc8a24
1 changed files with 0 additions and 304 deletions
|
|
@ -1,304 +0,0 @@
|
||||||
# MCP Job Search Stack - Deployment Guide
|
|
||||||
|
|
||||||
This guide walks you through setting up and deploying your two new MCPs for job searching and RFP discovery.
|
|
||||||
|
|
||||||
## Overview
|
|
||||||
|
|
||||||
You now have two complementary MCPs:
|
|
||||||
|
|
||||||
1. **rfp-scraper-mcp-server** - Discovers RFPs and freelance opportunities for control room and broadcast studio projects
|
|
||||||
2. **linkedin-mcp-server** - Searches LinkedIn jobs and manages professional networking
|
|
||||||
|
|
||||||
## Quick Start
|
|
||||||
|
|
||||||
### 1. Build Both MCPs
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# Build RFP Scraper MCP
|
|
||||||
cd /sessions/focused-busy-tesla/mnt/MCP\ Servers/rfp-scraper-mcp-server
|
|
||||||
npm install
|
|
||||||
npm run build
|
|
||||||
|
|
||||||
# Build LinkedIn MCP
|
|
||||||
cd /sessions/focused-busy-tesla/mnt/MCP\ Servers/linkedin-mcp-server
|
|
||||||
npm install
|
|
||||||
npm run build
|
|
||||||
```
|
|
||||||
|
|
||||||
### 2. Verify Build Success
|
|
||||||
|
|
||||||
Both should complete without errors and create a `dist/` directory with compiled JavaScript.
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# Test RFP Scraper
|
|
||||||
node rfp-scraper-mcp-server/dist/index.js --version
|
|
||||||
|
|
||||||
# Test LinkedIn
|
|
||||||
node linkedin-mcp-server/dist/index.js --version
|
|
||||||
```
|
|
||||||
|
|
||||||
## Integration with mcp-gateway
|
|
||||||
|
|
||||||
Your MCPs are designed to integrate with your existing mcp-gateway at `mcp.wilddragon.net`.
|
|
||||||
|
|
||||||
### Configuration
|
|
||||||
|
|
||||||
Add to your mcp-gateway configuration:
|
|
||||||
|
|
||||||
```json
|
|
||||||
{
|
|
||||||
"mcpServers": {
|
|
||||||
"rfp-scraper": {
|
|
||||||
"command": "node",
|
|
||||||
"args": ["/path/to/rfp-scraper-mcp-server/dist/index.js"],
|
|
||||||
"env": {
|
|
||||||
"RFP_SCRAPER_API_KEY": "${RFP_SCRAPER_API_KEY}"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"linkedin": {
|
|
||||||
"command": "node",
|
|
||||||
"args": ["/path/to/linkedin-mcp-server/dist/index.js"],
|
|
||||||
"env": {
|
|
||||||
"LINKEDIN_ACCESS_TOKEN": "${LINKEDIN_ACCESS_TOKEN}"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
### Environment Variables
|
|
||||||
|
|
||||||
**For RFP Scraper:**
|
|
||||||
```bash
|
|
||||||
export RFP_SCRAPER_API_KEY=your_api_key # Optional, for enhanced features
|
|
||||||
```
|
|
||||||
|
|
||||||
**For LinkedIn:**
|
|
||||||
```bash
|
|
||||||
export LINKEDIN_ACCESS_TOKEN=your_access_token # Required for connection requests
|
|
||||||
```
|
|
||||||
|
|
||||||
Get your LinkedIn access token from: https://linkedin.com/developers
|
|
||||||
|
|
||||||
## Features by MCP
|
|
||||||
|
|
||||||
### RFP Scraper MCP (`rfp-scraper-mcp-server`)
|
|
||||||
|
|
||||||
Tools available:
|
|
||||||
- **rfp_search_projects** - Search for RFP opportunities
|
|
||||||
- **rfp_get_project_details** - Get detailed project information
|
|
||||||
- **rfp_filter_by_budget** - Filter projects by budget range
|
|
||||||
|
|
||||||
**Example Usage:**
|
|
||||||
```
|
|
||||||
Search for control room projects:
|
|
||||||
keywords: ["control room", "broadcast studio"]
|
|
||||||
limit: 20
|
|
||||||
|
|
||||||
Find high-budget opportunities:
|
|
||||||
minBudget: 10000
|
|
||||||
maxBudget: 50000
|
|
||||||
```
|
|
||||||
|
|
||||||
### LinkedIn MCP (`linkedin-mcp-server`)
|
|
||||||
|
|
||||||
Tools available:
|
|
||||||
- **linkedin_search_jobs** - Search for jobs
|
|
||||||
- **linkedin_get_job_details** - Get job information
|
|
||||||
- **linkedin_search_profiles** - Find professionals
|
|
||||||
- **linkedin_send_connection** - Connect with professionals
|
|
||||||
- **linkedin_get_profile** - View profiles
|
|
||||||
|
|
||||||
**Example Usage:**
|
|
||||||
```
|
|
||||||
Search for broadcast jobs:
|
|
||||||
keywords: "broadcast engineer"
|
|
||||||
jobType: "FREELANCE"
|
|
||||||
|
|
||||||
Find industry professionals:
|
|
||||||
keywords: "broadcast systems"
|
|
||||||
industry: "Broadcasting"
|
|
||||||
```
|
|
||||||
|
|
||||||
## Development Mode
|
|
||||||
|
|
||||||
For local testing and development:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# Terminal 1: RFP Scraper
|
|
||||||
cd rfp-scraper-mcp-server
|
|
||||||
npm run dev
|
|
||||||
|
|
||||||
# Terminal 2: LinkedIn
|
|
||||||
cd linkedin-mcp-server
|
|
||||||
npm run dev
|
|
||||||
```
|
|
||||||
|
|
||||||
This uses `tsx` to watch for changes and auto-reload.
|
|
||||||
|
|
||||||
## Testing the MCPs
|
|
||||||
|
|
||||||
### Using MCP Inspector
|
|
||||||
|
|
||||||
Test individual MCPs with the MCP Inspector:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# Test RFP Scraper
|
|
||||||
npx @modelcontextprotocol/inspector node rfp-scraper-mcp-server/dist/index.js
|
|
||||||
|
|
||||||
# Test LinkedIn
|
|
||||||
npx @modelcontextprotocol/inspector node linkedin-mcp-server/dist/index.js
|
|
||||||
```
|
|
||||||
|
|
||||||
The inspector provides a web interface to:
|
|
||||||
- List available tools
|
|
||||||
- Test tool calls
|
|
||||||
- View responses
|
|
||||||
- Debug issues
|
|
||||||
|
|
||||||
### Manual Testing
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# Build both
|
|
||||||
npm run build
|
|
||||||
|
|
||||||
# Run and test
|
|
||||||
node rfp-scraper-mcp-server/dist/index.js
|
|
||||||
|
|
||||||
# In another terminal, send test request via stdin
|
|
||||||
echo '{"jsonrpc":"2.0","id":1,"method":"resources/list"}' | node rfp-scraper-mcp-server/dist/index.js
|
|
||||||
```
|
|
||||||
|
|
||||||
## Architecture Notes
|
|
||||||
|
|
||||||
### RFP Scraper
|
|
||||||
- **Service**: `services/scraper.ts` - Core scraping and filtering logic
|
|
||||||
- **Transport**: stdio (local) - designed for mcp-gateway integration
|
|
||||||
- **Error Handling**: Graceful handling of API errors and timeouts
|
|
||||||
- **Pagination**: Supports offset-based pagination for large result sets
|
|
||||||
|
|
||||||
### LinkedIn
|
|
||||||
- **Service**: `services/linkedin-client.ts` - LinkedIn API client
|
|
||||||
- **Transport**: stdio (local) - designed for mcp-gateway integration
|
|
||||||
- **Mock Data**: Currently uses mock data for development. Replace with real API calls once authenticated.
|
|
||||||
- **Authentication**: Supports LinkedIn OAuth tokens
|
|
||||||
|
|
||||||
## Production Deployment
|
|
||||||
|
|
||||||
### Prerequisites
|
|
||||||
- Node.js 18+
|
|
||||||
- npm or yarn
|
|
||||||
- Valid API credentials (LinkedIn token, etc.)
|
|
||||||
|
|
||||||
### Deployment Steps
|
|
||||||
|
|
||||||
1. **Install dependencies on production server:**
|
|
||||||
```bash
|
|
||||||
npm install --production
|
|
||||||
npm run build
|
|
||||||
```
|
|
||||||
|
|
||||||
2. **Set environment variables:**
|
|
||||||
```bash
|
|
||||||
export LINKEDIN_ACCESS_TOKEN=prod_token
|
|
||||||
export RFP_SCRAPER_API_KEY=prod_key
|
|
||||||
```
|
|
||||||
|
|
||||||
3. **Run MCPs via process manager (PM2):**
|
|
||||||
```bash
|
|
||||||
pm2 start rfp-scraper-mcp-server/dist/index.js --name rfp-scraper
|
|
||||||
pm2 start linkedin-mcp-server/dist/index.js --name linkedin
|
|
||||||
```
|
|
||||||
|
|
||||||
4. **Monitor:**
|
|
||||||
```bash
|
|
||||||
pm2 logs
|
|
||||||
pm2 status
|
|
||||||
```
|
|
||||||
|
|
||||||
## Troubleshooting
|
|
||||||
|
|
||||||
### Build Fails
|
|
||||||
- Ensure Node.js 18+ is installed: `node --version`
|
|
||||||
- Clear npm cache: `npm cache clean --force`
|
|
||||||
- Rebuild: `rm -rf node_modules dist && npm install && npm run build`
|
|
||||||
|
|
||||||
### Tools Not Appearing
|
|
||||||
- Check server started successfully: `npm start`
|
|
||||||
- Verify no TypeScript errors: `npm run build`
|
|
||||||
- Check tool names match exactly in your calls
|
|
||||||
|
|
||||||
### API Errors
|
|
||||||
- Verify environment variables are set: `echo $LINKEDIN_ACCESS_TOKEN`
|
|
||||||
- Check API credentials are valid
|
|
||||||
- Review error messages for guidance on next steps
|
|
||||||
|
|
||||||
### Connection Issues
|
|
||||||
- Ensure mcp-gateway can reach the servers
|
|
||||||
- Check firewall rules if using remote deployment
|
|
||||||
- Verify stdio transport is properly configured
|
|
||||||
|
|
||||||
## Next Steps
|
|
||||||
|
|
||||||
1. **Authenticate with APIs:**
|
|
||||||
- Get LinkedIn access token: https://linkedin.com/developers
|
|
||||||
- Set up any RFP API keys if needed
|
|
||||||
|
|
||||||
2. **Test Integration:**
|
|
||||||
- Run MCPs locally first
|
|
||||||
- Test with MCP Inspector
|
|
||||||
- Verify with mcp-gateway
|
|
||||||
|
|
||||||
3. **Customize:**
|
|
||||||
- Modify scraper keywords and sources as needed
|
|
||||||
- Adjust job search filters
|
|
||||||
- Add additional tools based on your workflow
|
|
||||||
|
|
||||||
4. **Monitor Usage:**
|
|
||||||
- Track API rate limits
|
|
||||||
- Monitor performance metrics
|
|
||||||
- Adjust pagination limits if needed
|
|
||||||
|
|
||||||
## File Structure
|
|
||||||
|
|
||||||
```
|
|
||||||
MCP Servers/
|
|
||||||
├── rfp-scraper-mcp-server/
|
|
||||||
│ ├── src/
|
|
||||||
│ │ ├── index.ts
|
|
||||||
│ │ ├── types.ts
|
|
||||||
│ │ ├── constants.ts
|
|
||||||
│ │ └── services/
|
|
||||||
│ │ └── scraper.ts
|
|
||||||
│ ├── dist/
|
|
||||||
│ │ └── index.js (generated)
|
|
||||||
│ ├── package.json
|
|
||||||
│ ├── tsconfig.json
|
|
||||||
│ └── README.md
|
|
||||||
├── linkedin-mcp-server/
|
|
||||||
│ ├── src/
|
|
||||||
│ │ ├── index.ts
|
|
||||||
│ │ ├── types.ts
|
|
||||||
│ │ ├── constants.ts
|
|
||||||
│ │ └── services/
|
|
||||||
│ │ └── linkedin-client.ts
|
|
||||||
│ ├── dist/
|
|
||||||
│ │ └── index.js (generated)
|
|
||||||
│ ├── package.json
|
|
||||||
│ ├── tsconfig.json
|
|
||||||
│ └── README.md
|
|
||||||
└── DEPLOYMENT_GUIDE.md (this file)
|
|
||||||
```
|
|
||||||
|
|
||||||
## Support
|
|
||||||
|
|
||||||
For issues or questions:
|
|
||||||
1. Check individual README files in each MCP directory
|
|
||||||
2. Review error messages - they include suggested next steps
|
|
||||||
3. Check TypeScript compilation for type errors
|
|
||||||
4. Verify environment variables are set correctly
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
**Last Updated**: 2026-03-31
|
|
||||||
**Version**: 1.0.0
|
|
||||||
Loading…
Reference in a new issue