sharanyareddy9/remote-mcp-server-descope-resume
If you are the rightful owner of remote-mcp-server-descope-resume and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to dayong@mcphub.com.
A Model Context Protocol (MCP) server that provides secure access to resume data using Descope social login authentication, deployed on Cloudflare Workers.
Remote MCP Server with Descope Authentication & Resume Service
A Model Context Protocol (MCP) server that provides secure access to resume data using Descope social login authentication, deployed on Cloudflare Workers.
Features
- 🔐 Descope Social Login: Authenticate with Google, GitHub, LinkedIn, Microsoft, and other providers
- 📄 Resume Serving: Access resume data in JSON format and PDF download
- 🔍 Search Functionality: Search through resume content by keywords
- 🚀 MCP Integration: Compatible with Claude Desktop, MCP Inspector, and other MCP clients
- ☁️ Cloudflare Workers: Serverless deployment with global edge locations
Prerequisites
- Descope account and project
- Node.js version 18.x or higher
- Cloudflare account (for deployment)
- Your resume in PDF format
Setup Instructions
1. Get Descope Credentials
- Create a Descope account
- Get your Project ID
- Generate a Management Key
2. Configure Social Logins in Descope
- Go to Authentication Methods in your Descope console
- Enable the social providers you want (Google, GitHub, LinkedIn, etc.)
- Configure the redirect URLs and client credentials for each provider
3. Local Development Setup
-
Clone and install dependencies:
cd remote-mcp-server-descope-resume npm install -
Create environment variables: Create a
.dev.varsfile in your project root:# .dev.vars DESCOPE_PROJECT_ID="your_project_id_here" DESCOPE_MANAGEMENT_KEY="your_management_key_here" SERVER_URL="http://localhost:8787" -
Add your resume:
- Place your
resume.pdffile in thestatic/folder - Update the resume data in
src/index.tsif needed
- Place your
-
Start the development server:
npm run dev -
Visit the server: Open http://localhost:8787 to see the homepage
4. Testing with MCP Inspector
-
Start MCP Inspector:
npx @modelcontextprotocol/inspector -
Configure connection:
- Transport Type: SSE
- URL:
http://localhost:8787/sse - Add your Descope bearer token in the Authorization header
-
Test the tools:
getResume- Get complete resume datagetResumePDF- Get PDF download linkgetResumeSummary- Get resume summarysearchResume- Search resume contentgetAuthInfo- Get authentication details
Available MCP Tools
| Tool | Parameters | Description |
|---|---|---|
getResume | None | Returns complete resume data in JSON format |
getResumePDF | None | Returns PDF download link |
getResumeSummary | None | Returns a formatted summary of key resume details |
searchResume | query: string | Searches resume content for the given query |
getAuthInfo | None | Returns current authentication information |
Deployment to Cloudflare
1. Configure Cloudflare Secrets
# Set Descope credentials as secrets
wrangler secret put DESCOPE_PROJECT_ID
wrangler secret put DESCOPE_MANAGEMENT_KEY
# Set your server URL (replace with your actual worker URL)
wrangler secret put SERVER_URL
2. Update wrangler.jsonc
Update the vars section in wrangler.jsonc with your actual Descope Project ID:
{
"vars": {
"DESCOPE_PROJECT_ID": "your_actual_project_id",
"SERVER_URL": "https://your-worker-name.your-account.workers.dev"
}
}
3. Deploy
npm run deploy
Your MCP server will be available at: https://your-worker-name.your-account.workers.dev/sse
Authentication Flow
- Get Token: Use Descope's authentication flow to obtain a bearer token
- Configure Client: Add the bearer token to your MCP client's authorization headers
- Connect: Connect to the
/sseendpoint with the token - Use Tools: Access resume data through the available MCP tools
Customization
Adding Your Resume Data
Edit the getResumeData() method in src/index.ts to include your actual resume information:
private async getResumeData() {
return {
personalInfo: {
name: "Your Actual Name",
email: "your.email@example.com",
// ... your details
},
// ... rest of your resume data
};
}
Adding More Tools
You can add additional MCP tools in the init() method:
this.server.tool("yourCustomTool", { param: z.string() }, async ({ param }) => {
// Your tool logic here
return { content: [{ type: "text", text: "Response" }] };
});
Security Considerations
- Bearer tokens are validated using Descope's JWKS endpoint
- All resume endpoints require valid authentication
- Tokens are verified for expiration and signature
- CORS is configured for secure cross-origin requests
Troubleshooting
Common Issues
- Authentication fails: Check your Descope Project ID and Management Key
- PDF not found: Ensure
resume.pdfis in thestatic/folder - Connection refused: Verify the server URL and port
- Token expired: Get a new bearer token from Descope
Debug Commands
# Check if server is running
curl http://localhost:8787/
# Test with bearer token
curl -H "Authorization: Bearer YOUR_TOKEN" http://localhost:8787/sse
# View logs
wrangler tail
Contributing
- Fork the repository
- Create a feature branch
- Make your changes
- Test locally
- Submit a pull request
License
MIT License - see LICENSE file for details
Built with Descope authentication and deployed on Cloudflare Workers