remote-mcp-server-descope-resume

sharanyareddy9/remote-mcp-server-descope-resume

3.1

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.

Tools
5
Resources
0
Prompts
0

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

  1. Create a Descope account
  2. Get your Project ID
  3. Generate a Management Key

2. Configure Social Logins in Descope

  1. Go to Authentication Methods in your Descope console
  2. Enable the social providers you want (Google, GitHub, LinkedIn, etc.)
  3. Configure the redirect URLs and client credentials for each provider

3. Local Development Setup

  1. Clone and install dependencies:

    cd remote-mcp-server-descope-resume
    npm install
    
  2. Create environment variables: Create a .dev.vars file 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"
    
  3. Add your resume:

    • Place your resume.pdf file in the static/ folder
    • Update the resume data in src/index.ts if needed
  4. Start the development server:

    npm run dev
    
  5. Visit the server: Open http://localhost:8787 to see the homepage

4. Testing with MCP Inspector

  1. Start MCP Inspector:

    npx @modelcontextprotocol/inspector
    
  2. Configure connection:

    • Transport Type: SSE
    • URL: http://localhost:8787/sse
    • Add your Descope bearer token in the Authorization header
  3. Test the tools:

    • getResume - Get complete resume data
    • getResumePDF - Get PDF download link
    • getResumeSummary - Get resume summary
    • searchResume - Search resume content
    • getAuthInfo - Get authentication details

Available MCP Tools

ToolParametersDescription
getResumeNoneReturns complete resume data in JSON format
getResumePDFNoneReturns PDF download link
getResumeSummaryNoneReturns a formatted summary of key resume details
searchResumequery: stringSearches resume content for the given query
getAuthInfoNoneReturns 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

  1. Get Token: Use Descope's authentication flow to obtain a bearer token
  2. Configure Client: Add the bearer token to your MCP client's authorization headers
  3. Connect: Connect to the /sse endpoint with the token
  4. 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

  1. Authentication fails: Check your Descope Project ID and Management Key
  2. PDF not found: Ensure resume.pdf is in the static/ folder
  3. Connection refused: Verify the server URL and port
  4. 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

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Test locally
  5. Submit a pull request

License

MIT License - see LICENSE file for details


Built with Descope authentication and deployed on Cloudflare Workers