BlueTeamJobs
Search open defensive cybersecurity (blue team) jobs and salary data. Read-only, no sign-in.
Should I use this
Quality & Safety
Findings (1)
- LOWin get_job
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"jobs": {
"url": "https://mcp.blueteamjobs.com/mcp"
}
}
}Remote endpoints
https://mcp.blueteamjobs.com/mcpstreamable-httpWhat it can do
Tool inventory
Tools (6)
🟢search_jobs(query, role, location, remote, seniority, ...)
Search open defensive cybersecurity jobs (SOC, incident response, DFIR, threat hunting, CTI, detection and security engineering) on BlueTeamJobs. Newest first. Each result links to the job page, where the user applies.
Input Schema
{
"type": "object",
"properties": {
"query": {
"description": "Keywords matched against title, company, description and skills.",
"type": "string",
"maxLength": 200
},
"role": {
"type": "string",
"maxLength": 80,
"description": "Role slug or name, e.g. \"soc-analyst\". See list_roles."
},
"location": {
"description": "City, US state, state code or country, e.g. \"Virginia\", \"VA\", \"austin-tx\", \"Canada\".",
"type": "string",
"maxLength": 80
},
"remote": {
"description": "Work arrangement.",
"type": "string",
"enum": [
"remote",
"hybrid",
"onsite"
]
},
"seniority": {
"type": "string",
"enum": [
"entry",
"mid",
"senior",
"lead"
]
},
"certification": {
"description": "Certification slug or name, e.g. \"security-plus\", \"GCIH\".",
"type": "string",
"maxLength": 40
},
"clearance": {
"description": "\"none\" for jobs without a clearance, \"any\" for any clearance, or a specific level.",
"type": "string",
"enum": [
"none",
"any",
"public-trust",
"secret",
"top-secret",
"ts-sci"
]
},
"min_salary": {
"description": "Minimum yearly pay in USD; only jobs that publish pay match.",
"type": "integer",
"minimum": 0,
"maximum": 1000000
},
"limit": {
"default": 10,
"type": "integer",
"minimum": 1,
"maximum": 25
},
"page": {
"default": 1,
"type": "integer",
"minimum": 1,
"maximum": 100
}
}
}🟢latest_jobs(role, remote, days, limit)
Jobs first seen on BlueTeamJobs in the last few days, newest first, optionally for one role.
Input Schema
{
"type": "object",
"properties": {
"role": {
"type": "string",
"maxLength": 80,
"description": "Role slug or name, e.g. \"soc-analyst\". See list_roles."
},
"remote": {
"type": "string",
"enum": [
"remote",
"hybrid",
"onsite"
]
},
"days": {
"default": 7,
"description": "How far back to look.",
"type": "integer",
"minimum": 1,
"maximum": 30
},
"limit": {
"default": 10,
"type": "integer",
"minimum": 1,
"maximum": 25
}
}
}🟢get_job(id)
Details of one job: pay, location, clearance, certifications, skills and a short excerpt.
Input Schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 6,
"maxLength": 300,
"description": "The 6-character job id, or a blueteamjobs.com job URL."
}
},
"required": [
"id"
]
}🟢get_salary_stats(role, state, seniority, remote)
Pay percentiles (USD a year) from salaries published in BlueTeamJobs postings over the last 12 months, by role, US state, seniority or work arrangement. Needs at least 3 postings with pay.
Input Schema
{
"type": "object",
"properties": {
"role": {
"description": "Role slug or name. Omit for all blue team roles.",
"type": "string",
"maxLength": 80
},
"state": {
"description": "US state name, code or slug, e.g. \"Texas\", \"TX\".",
"type": "string",
"maxLength": 80
},
"seniority": {
"type": "string",
"enum": [
"entry",
"mid",
"senior",
"lead"
]
},
"remote": {
"type": "string",
"enum": [
"remote",
"hybrid",
"onsite"
]
}
}
}🟢list_roles
The role categories BlueTeamJobs uses, with open job counts. Use the slugs in other tools.
Input Schema
{
"type": "object",
"properties": {}
}🟢list_locations(role, limit)
Places with open jobs (countries, US states and cities), most jobs first, plus the remote count.
Input Schema
{
"type": "object",
"properties": {
"role": {
"type": "string",
"maxLength": 80,
"description": "Role slug or name, e.g. \"soc-analyst\". See list_roles."
},
"limit": {
"default": 30,
"type": "integer",
"minimum": 1,
"maximum": 100
}
}
}Community
Evidence