Next Role MCP Proxy
NextRole MCP Proxy
A Model Context Protocol (MCP) proxy server that provides access to NextRole's professional CV and cover letter tailoring services. This proxy allows MCP-compatible clients to interact with NextRole's hosted services.
Features
Professional CV Tailoring: Customize your CV for specific job applications
Cover Letter Generation: Create tailored cover letters that match job requirements
Multiple Service Tiers: Entry, Mid, and Senior level professional services
Credit Management: Track and manage your service credits
International Support: Available for users worldwide
Related MCP server: LinkedIn MCP Server
Installation
From source
Clone the repository and run the install script. It will install dependencies, build the project, and print the MCP client configuration JSON for you.
git clone https://github.com/bats64mgutsi/nextrole-mcp-proxy.git
cd nextrole-mcp-proxyLinux / macOS:
bash install.shWindows (PowerShell):
.\install.ps1At the end of the script, you'll see the MCP client configuration JSON with the correct path to your local installation. Copy it into your MCP client's configuration file.
With npx (no local install)
Add to your MCP client configuration:
{
"mcpServers": {
"nextrole": {
"command": "npx",
"args": ["nextrole-mcp-proxy"]
}
}
}Usage
Available Tools
1. get_pricing
Get the available career-level tiers and their product IDs. You must call this before placing an order to get the correct productId.
Usage:
What are your different CV tailoring packages?Response:
[
{
"CountryCode": "ZA",
"ServiceTier": "Entry Level",
"ProductId": 1
},
{
"CountryCode": "ZA",
"ServiceTier": "Mid Level",
"ProductId": 2
},
{
"CountryCode": "ZA",
"ServiceTier": "Senior Level",
"ProductId": 3
}
]2. get_credits
Check how many credits a customer has remaining. Each order costs 1 credit.
Parameters:
phoneNumber(required): Customer phone number including country code (e.g. +27831234567)
Usage:
How many credits do I have left? My phone number is +27831234567Response:
{
"credits": 5
}3. place_order
Place an order for a tailored CV and cover letter. The order typically takes about 15 minutes to complete. The customer will receive SMS notifications when the order is confirmed and when documents are ready. Costs 1 credit per order.
Parameters:
customerPhone(required): Customer phone number including country code, must start with '+' (e.g. +27831234567)customerFirstName(required): Customer's first namecustomerLastName(required): Customer's last namecvMarkdown(required): The customer's current CV in markdown formatproductId(required): The product ID matching the customer's career level (call get_pricing first)jobDescription(required): The full job description the customer is applying for
Usage:
I need to tailor my CV for a Junior Software Developer position. My phone number is +27831234567, my name is John Smith, and here's my current CV in markdown:
# John Smith
## Experience
- Junior Developer at TechCorp (2023-present)
The job description is: We are seeking a Junior Software Developer to join our team with React and Node.js experience.Response:
{
"orderKey": "550e8400-e29b-41d4-a716-446655440000",
"status": "success",
"message": "Order placed successfully. SMS notifications sent."
}Example Use Cases
Entry Level Professional
Perfect for recent graduates and early-career professionals:
I'm Sarah Johnson (+44207123456) and need my CV tailored for this graduate software engineer role: Graduate Software Engineer requiring Python programming and problem-solving skills.
My current CV:
# Sarah Johnson
## Education
- Computer Science Degree, University of London (2024)
## Projects
- Built a web application using Python and FlaskCareer Change
For professionals transitioning between industries:
I'm transitioning from finance to tech and need my CV (+27831112233, Jane Doe) tailored for this software developer role: Full Stack Developer position requiring JavaScript, React, and database skills.
Current CV:
# Jane Doe
## Background
- Financial Analyst at Bank Corp
- Recently completed coding bootcampSenior Executive
For C-level and senior management positions:
I'm Michael Chen from the US (+1555123456) and need my executive CV customized for this CTO role: Chief Technology Officer requiring strategic leadership and team management skills.
My current CV:
# Michael Chen
## Executive Summary
Senior Technology Leader with 15+ years experience
## Experience
- VP Engineering at Tech Startup (2020-2024)Service Tiers
Entry Level (Product ID: 1): For recent graduates and early-career professionals
Mid Level (Product ID: 2): For experienced professionals with 3-10 years experience
Senior Level (Product ID: 3): For senior professionals, managers, and executives
Privacy & Terms
By using this service, you agree to NextRole's:
Development
Building
npm run buildRunning in development
npm run devTesting locally
npm startArchitecture
This is a lightweight proxy that forwards MCP requests to NextRole's hosted service at https://api.nextrole.co.za/firstroleprod-mcp/mcp. The proxy:
Translates MCP protocol requests
Forwards them to the hosted service
Returns formatted responses to MCP clients
Handles errors and connection issues
Requirements
Node.js 18.0.0 or higher
Internet connection to reach NextRole's hosted service
License
MIT License - see LICENSE file for details.
Support
For technical issues with this proxy, please open an issue on GitHub. For service-related questions, contact NextRole support through their official channels.
Available Tools
3 toolsget_creditsA
Check how many credits a customer has remaining. Each order to tailor a CV and cover letter costs 1 credit.
| Name | Required | Description | Default |
|---|---|---|---|
| phoneNumber | Yes | Customer phone number including country code (e.g. +27831234567) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It adds valuable domain context explaining what credits are used for (1 per CV/cover letter order), but lacks operational details like error handling, what happens if phone number not found, or caching behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Perfectly concise with two sentences. First states purpose immediately; second provides essential domain context about credit costs. Zero redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-parameter read operation without output schema, the description is nearly complete. It explains the credit system which is essential domain context. Minor gap: doesn't hint at return value structure or error states.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 100% coverage with phoneNumber fully documented. Description mentions 'customer' which loosely maps to the parameter, but adds no additional semantics, format constraints, or examples beyond what the schema already provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Excellent clarity: specifies the verb 'Check', resource 'credits', and scope 'remaining'. The second sentence distinguishes the domain context (CV/cover letter tailoring) which differentiates this from generic balance checking tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides implied usage context by explaining that orders cost 1 credit, suggesting this should be checked before placing orders. However, lacks explicit when-to-use guidance or direct comparison to siblings (get_pricing, place_order).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_pricingA
Get the available career-level tiers and their product IDs. Different products are designed for different career phases, so the customer should pick the tier that best matches where they are in their career. You must call this before placing an order to get the correct productId.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It successfully explains the business logic (career phases) and workflow ordering (must precede place_order), but lacks technical behavioral traits such as whether the operation is idempotent, cached, or rate-limited, and provides only high-level description of return values without structural details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description consists of three efficiently structured sentences: the first defines the core action, the second provides business context for selection, and the third states the workflow prerequisite. Every sentence earns its place with no redundant or filler content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite lacking an output schema, the description partially compensates by explaining that the tool returns 'career-level tiers and their product IDs'. Combined with the explicit workflow integration (prerequisite for place_order), this provides sufficient context for a zero-parameter lookup tool, though specific return structure details would strengthen it further.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema contains zero parameters. Per evaluation rules, zero-parameter tools receive a baseline score of 4. The description appropriately does not mention parameters since none exist.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the tool retrieves 'career-level tiers and their product IDs' using the specific verb 'Get'. It distinguishes itself from sibling tools by explaining its role as a prerequisite for place_order (getting productId), clearly differentiating it from get_credits.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit workflow guidance: 'You must call this before placing an order to get the correct productId.' It also includes selection criteria ('customer should pick the tier that best matches where they are in their career'), giving clear context on when and how to use the results.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
place_orderA
Place an order for a tailored CV and cover letter. The order typically takes about 15 minutes to complete. The customer will receive an SMS confirming their order and another SMS when their documents are ready to download. Costs 1 credit per order.
| Name | Required | Description | Default |
|---|---|---|---|
| customerPhone | Yes | Customer phone number including country code, must start with '+' (e.g. +27831234567). SMS notifications will be sent to this number. | |
| customerFirstName | Yes | Customer's first name | |
| customerLastName | Yes | Customer's last name | |
| cvMarkdown | Yes | The customer's current CV in markdown format. This is used as the basis for tailoring their documents. | |
| productId | Yes | The product ID that matches the customer's career level. Call get_pricing first to see available career-level tiers and their product IDs. | |
| jobDescription | Yes | The full job description the customer is applying for. The CV and cover letter will be tailored to match this role. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden, effectively disclosing key behavioral traits: processing time (~15 minutes), notification mechanism (two SMS messages), and cost (1 credit). It omits idempotency or error handling details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four tightly constructed sentences with zero waste: purpose, timing, notifications, and cost. Information is front-loaded and every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the 6-parameter complexity and lack of annotations/output schema, the description is reasonably complete, covering the user journey (order → SMS confirmation → SMS completion). It could strengthen by noting the prerequisite check for credits.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, establishing a baseline of 3. The description text does not add parameter-specific semantics (e.g., explaining markdown format or productId sourcing), relying entirely on the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb ('Place') and clear resource ('order for a tailored CV and cover letter'), immediately distinguishing it from the read-only sibling tools get_credits and get_pricing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions 'Costs 1 credit per order,' implying a prerequisite to check credits, but lacks explicit guidance on when to use versus alternatives or a required workflow (e.g., calling get_pricing first to obtain the productId).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool serves a distinct purpose with clear boundaries: get_credits checks account balance, get_pricing retrieves product catalog, and place_order executes transactions. No functional overlap exists between the three operations.
All tools follow a consistent verb_noun snake_case convention. The naming clearly distinguishes between retrieval operations (get_) and the transactional operation (place_).
Three tools is minimal but reasonable for a focused ordering workflow. While the surface is thin, it covers the essential path from balance check to order completion without unnecessary bloat.
The toolset supports order creation but lacks order management capabilities such as status checking, order history retrieval, or cancellation. Once place_order is called, the agent has no visibility into order progress, creating a dead end for follow-up queries.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Generate tailored, ATS-optimized resume PDFs and cover letters from a job description, over MCP.
Model Context Protocol server for the Apideck Unified API. Connect any MCP-compatible agent framework to 100+ accounting systems, HRIS platforms, file storage providers, and more through one integration. More information https://www.apideck.com/mcp-server
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA specialized Model Context Protocol (MCP) server that enables AI-powered interview roleplay scenarios for practice with realistic conversational feedback.447Apache 2.0
- FlicenseNot gradedqualityDmaintenanceA Model Context Protocol server that enables seamless interaction with LinkedIn for job applications, profile retrieval, feed browsing, and resume analysis through natural language commands.31
- AlicenseAqualityDmaintenanceA Model Context Protocol server for accessing NovaCV resume services API, enabling users to generate PDF resumes, analyze resume content, convert resume text to JSON format, and get available resume templates.4213MIT
- AlicenseNot gradedqualityDmaintenanceExposes a personalized AI agent that reads your resume and provides intelligent responses about your professional background through a standardized MCP server interface with RAG capabilities.MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/bats64mgutsi/nextrole-mcp-proxy'
If you have feedback or need assistance with the MCP directory API, please join our Discord server