CareerProAI MCP server
tech.careerpro/careerprocareerpro.techstreamable-httpv1.0.0Scanned
Tailor your resume to any job, score it against the ATS, and practice interviews. 7-day free trial;
12 tools: 5 change things and 7 only read.
- Reads private data · 3
- Reads text others write · 2
- Can send data out · 0
- 3 findings
Tools listed without sign-in. Remote posture
With Anlyon
5 tools here change things. Govern them.
- Anlyon lists the tools and adopts none.
- Each tool you adopt gets approvals and receipts.
- Your agent never holds the key.
A tool your agent calls directly is not routed through Anlyon and is not governed by it. anlyon.dev only lists and labels, and these labels are the same either way.
What the CareerProAI MCP server can do
The CareerProAI MCP server is published by careerpro.tech, a domain the MCP Registry verified. It has 12 tools. It can create or change data (5 tools: careerpro_ats_score, careerpro_about, careerpro_pricing, careerpro_submission_report and 1 more), but cannot delete data. 7 tools only read.
3 tools read private data (careerpro_resume_get, careerpro_letter_get and careerpro_refresh); 2 tools bring in text other people can write (careerpro_resume_get and careerpro_letter_get).
The fixed checks matched 3 findings (annotation-conflict). Each one comes with the text it matched.
Its remote endpoint lists its tools without sign-in.
Last scanned Nov 10, 2026, version 1.0.0.
Tools
Grouped by what each tool does, most consequential first. Open one for its reasons and full description; descriptions are the publisher's own words.
12 tools
Changes things 5Claude Code: ask
careerpro_aboutWhat CareerPro does and what is free Pricing: {"unit": "call", "price_usd": 0, "free_quota": "200 per day per IP", "note": "Keyed volume pricing is published at https://careerpro.t…No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it What CareerPro does and what is free Pricing: {"unit": "call", "price_usd": 0, "free_quota": "200 per day per IP", "note": "Keyed volume pricing is published at https://careerpro.tech/pricing.json"}.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
careerpro_ats_scoreReturns a 0 to 100 keyword match, the terms you matched and the ones missing.1 finding
Why it is in this group
- The description's first verb is "return": a word for reading.
- The server marks it as not read-only (readOnlyHint: false).
Findings
- Warn
The server marks "careerpro_ats_score" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}; The description's first verb is "return": a word for reading.
Description, as the server wrote it Returns a 0 to 100 keyword match, the terms you matched and the ones missing. Pricing: {"unit": "call", "price_usd": 0, "free_quota": "200 per day per IP", "note": "Keyed volume pricing is published at https://careerpro.tech/pricing.json"}.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
careerpro_pricingWhere prices live and what costs nothing Pricing: {"unit": "call", "price_usd": 0, "free_quota": "200 per day per IP", "note": "Keyed volume pricing is published at https://careerp…No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Where prices live and what costs nothing Pricing: {"unit": "call", "price_usd": 0, "free_quota": "200 per day per IP", "note": "Keyed volume pricing is published at https://careerpro.tech/pricing.json"}.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
careerpro_refreshReads each watched employer board's own public ATS feed (Greenhouse, Lever, Ashby, Workable) and files new matches.Reads private data1 finding
Why it is in this group
- The description's first verb is "read": a word for reading.
- The server marks it as not read-only (readOnlyHint: false).
What it can reach
- private-dataThe description's first sentence says "read" and "file": it reads files.
Findings
- Warn
The server marks "careerpro_refresh" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}; The description's first verb is "read": a word for reading.
Description, as the server wrote it Reads each watched employer board's own public ATS feed (Greenhouse, Lever, Ashby, Workable) and files new matches. An account that watches no boards yet is first given the top 20 registry boards for its target titles (a shared registry of employers' public feeds; LinkedIn, Indeed and similar sites are never used). Returns seeded, fetched, matched, new and packs_built. Pricing: {"unit": "call", "price_usd": 0, "free_quota": "200 per day per IP", "note": "Keyed volume pricing is published at https://careerpro.tech/pricing.json"}.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
careerpro_submission_reportLogs the exact answers that were filled and the outcome (applied, dry_run_ready, owner_required, submission_unconfirmed, duplicate_refused, error).1 finding
Why it is in this group
- The description's first verb is "log": a word for reading.
- The server marks it as not read-only (readOnlyHint: false).
Findings
- Warn
The server marks "careerpro_submission_report" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}; The description's first verb is "log": a word for reading.
Description, as the server wrote it Logs the exact answers that were filled and the outcome (applied, dry_run_ready, owner_required, submission_unconfirmed, duplicate_refused, error). 'applied' with submitted=true moves the opening to Applied and sets a follow-up date. Unconfirmed results are never retried automatically. Pricing: {"unit": "call", "price_usd": 0, "free_quota": "200 per day per IP", "note": "Keyed volume pricing is published at https://careerpro.tech/pricing.json"}.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
Only reads 7Show 7 read-only tools
careerpro_bank_getReturns base.json rules, visa rules and the profile block the desktop helper writes next to the runners.No findings
Why it is in this group
- The name "careerpro_bank_get" says "get": a word for reading.
Description, as the server wrote it Returns base.json rules, visa rules and the profile block the desktop helper writes next to the runners. Only an approved bank is returned; approval happens once on careerpro.tech/auto-apply. Pricing: {"unit": "call", "price_usd": 0, "free_quota": "200 per day per IP", "note": "Keyed volume pricing is published at https://careerpro.tech/pricing.json"}.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
careerpro_jobs_listOpenings gathered from the employer boards you watch, ranked by keyword fit, with the screen verdict for each.No findings
Why it is in this group
- The name "careerpro_jobs_list" says "list": a word for reading.
Description, as the server wrote it Openings gathered from the employer boards you watch, ranked by keyword fit, with the screen verdict for each. Key from careerpro.tech/auto-apply. Scope read. Pricing: {"unit": "call", "price_usd": 0, "free_quota": "200 per day per IP", "note": "Keyed volume pricing is published at https://careerpro.tech/pricing.json"}.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
careerpro_letter_getCover letter for one opening as text and PDF (base64) Pricing: {"unit": "call", "price_usd": 0, "free_quota": "200 per day per IP", "note": "Keyed volume pricing is published at ht…Reads private dataReads text others writeNo findings
Why it is in this group
- The name "careerpro_letter_get" says "get": a word for reading.
What it can reach
- private-dataThe description's first sentence says "note": it reads notes.
- untrusted-inputThe description's first sentence says "http": it reads web pages, which anyone can write.
Description, as the server wrote it Cover letter for one opening as text and PDF (base64) Pricing: {"unit": "call", "price_usd": 0, "free_quota": "200 per day per IP", "note": "Keyed volume pricing is published at https://careerpro.tech/pricing.json"}.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
careerpro_pack_getEverything needed to apply: posting text, screen verdict with evidence, tailored resume text, cover letter, pre-mapped answers from your approved answer bank, unanswered questions,…No findings
Why it is in this group
- The name "careerpro_pack_get" says "get": a word for reading.
Description, as the server wrote it Everything needed to apply: posting text, screen verdict with evidence, tailored resume text, cover letter, pre-mapped answers from your approved answer bank, unanswered questions, dedupe receipt and the per-ATS mode (submit, fill_only, headed, skip). Builds the pack when it does not exist yet; tailoring uses only facts from your own resume. Pricing: {"unit": "call", "price_usd": 0, "free_quota": "200 per day per IP", "note": "Keyed volume pricing is published at https://careerpro.tech/pricing.json"}.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
careerpro_queue_getFIT packs with an approved answer bank, ordered, with the per-ATS mode.No findings
Why it is in this group
- The name "careerpro_queue_get" says "get": a word for reading.
Description, as the server wrote it FIT packs with an approved answer bank, ordered, with the per-ATS mode. The submit step never runs on our servers: your desktop helper or your own agent executes it in your browser, with your logins. LinkedIn Easy Apply, CAPTCHA solving and attestation checkboxes are never automated. Pricing: {"unit": "call", "price_usd": 0, "free_quota": "200 per day per IP", "note": "Keyed volume pricing is published at https://careerpro.tech/pricing.json"}.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
careerpro_resume_getTailored resume for one opening as PDF (base64) and text Pricing: {"unit": "call", "price_usd": 0, "free_quota": "200 per day per IP", "note": "Keyed volume pricing is published at…Reads private dataReads text others writeNo findings
Why it is in this group
- The name "careerpro_resume_get" says "get": a word for reading.
What it can reach
- private-dataThe description's first sentence says "note": it reads notes.
- untrusted-inputThe description's first sentence says "http": it reads web pages, which anyone can write.
Description, as the server wrote it Tailored resume for one opening as PDF (base64) and text Pricing: {"unit": "call", "price_usd": 0, "free_quota": "200 per day per IP", "note": "Keyed volume pricing is published at https://careerpro.tech/pricing.json"}.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
usage_getUsage for the calling key (last 30 days)No findings
Why it is in this group
- The name "usage_get" says "get": a word for reading.
Description, as the server wrote it Usage for the calling key (last 30 days)
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Exfil surface
Which tools read private data, which read text someone else can write, and which can send data out. One of each is a path a prompt injection can use.
No private-data, untrusted-input, outbound path in this server alone: no tool is tagged outbound.
- Reads private data3
- Reads files, mail, messages, databases, secrets, calendars or repositories.
- Reads text others write2
- Brings in text someone else can write: web pages, inbound email, messages, issues and comments.
- Can send data out0
- Can carry data to people or systems: it sends, posts or publishes, or takes a recipient, channel or URL.
Other servers in the same agent add their own tools to these paths. Audit your whole setup to see them together.
Remote posture
What anyone on the internet sees at the remote endpoint: an anonymous initialize and tools/list, and the public OAuth metadata.
Looked at Nov 10, 2026, 08:20 UTC, unchanged since Nov 10, 2026. No credentials were sent and no tool was called. What is looked at.
- Reachable
- yes
- HTTP status of an anonymous initialize
- 200
- tools/list served without credentials
- yes
- Tools that change things, listed without credentials
- 5
- Protocol version
- 2025-03-26
- WWW-Authenticate on 401
- not observed
- resource_metadata in WWW-Authenticate
- not observed
- RFC 9728 protected resource metadata
- not observed
- Authorization servers
- not observed
- Legacy HTTP+SSE transport
- no
- Dynamic client registration
- not observed
- Client ID metadata documents
- not observed
- WarnThe whole server
The endpoint served tools/list without credentials, and the list has 5 tools that change things (5 write). Whether a call also works without credentials was not tested: tools are never called.
What this check looks forMatched text
https://careerpro.tech/mcp: tools/list returned 12 tools to an anonymous client, including careerpro_ats_score (write), careerpro_about (write), careerpro_pricing (write), careerpro_submission_report (write), careerpro_refresh (write)
Findings
Matches of fixed checks, with the text they matched.
The server marks "careerpro_ats_score" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}; The description's first verb is "return": a word for reading.
The server marks "careerpro_submission_report" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}; The description's first verb is "log": a word for reading.
The server marks "careerpro_refresh" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}; The description's first verb is "read": a word for reading.
History
Changes to its tool definitions and to its remote endpoint, newest first.
No change seen yet. Its tools are rescanned every day, and a remote endpoint is looked at once a week.
Install
Pinned to version 1.0.0. Values in angle brackets are yours to fill in.
claude mcp add --transport http careerpro https://careerpro.tech/mcpclaude mcp add --transport http careerpro https://careerpro.tech/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change or a way out, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__careerpro__careerpro_jobs_list",
"mcp__careerpro__careerpro_pack_get",
"mcp__careerpro__careerpro_resume_get",
"mcp__careerpro__careerpro_letter_get",
"mcp__careerpro__careerpro_bank_get",
"mcp__careerpro__careerpro_queue_get",
"mcp__careerpro__usage_get"
],
"ask": [
"mcp__careerpro__careerpro_ats_score",
"mcp__careerpro__careerpro_about",
"mcp__careerpro__careerpro_pricing",
"mcp__careerpro__careerpro_submission_report",
"mcp__careerpro__careerpro_refresh"
],
"deny": []
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. A read that can send data out (it takes a URL, say) asks first too. It assumes the server is installed as careerpro. Review it before you use it.
Capability tags behind 3 rules
- mcp__careerpro__careerpro_resume_get private-data, untrusted-input
- mcp__careerpro__careerpro_letter_get private-data, untrusted-input
- mcp__careerpro__careerpro_refresh private-data
Pin
Keep the decision: fail CI when the tools change, follow every change, or show a badge.
Pin in CI
Fail a build when the tools you reviewed are not the tools the server serves today.
curl -s "https://anlyon.dev/api/v1/servers/tech.careerpro/careerpro/verify?hash=858107698afa325cc91e1543496a5d79fc11441531490a6d6a68f481b3f426da" | jq -e '.changed == false'Pinned hash 858107698afa, from Nov 10, 2026, 01:18 UTC.
Watch
Get told when its tools change: a new tool, a new description, a new class.
https://anlyon.dev/servers/tech.careerpro/careerpro/changes.xmlAn Atom feed. Works in any feed reader or Slack's RSS app.
Badge
[](https://anlyon.dev/servers/tech.careerpro/careerpro)Source: MCP Registry. Synced Nov 10, 2026, 01:18 UTC.
CareerProAI MCP server: questions and answers
Answered from the scan above, not from the publisher's description.
Is the CareerProAI MCP server safe?
- No scan can promise that. What its definitions show: 12 tools, 5 of which can change, send or delete something, and 3 findings from fixed checks. Allow the reads, ask before each change, and deny the deletes; the permissions block on this page does that.
Can the CareerProAI MCP server delete data?
- No tool is classed as destructive: going by their definitions, none of them deletes, cancels or revokes anything.
Can the CareerProAI MCP server do things that cannot be undone?
- No tool is classed as irreversible: none of them sends, pays, publishes or merges, going by their definitions.
What tools does the CareerProAI MCP server have?
- 12 tools: 5 write, 7 read. careerpro_ats_score, careerpro_about, careerpro_pricing, careerpro_submission_report, careerpro_refresh, careerpro_jobs_list, careerpro_pack_get, careerpro_resume_get and 4 more.
Does the CareerProAI MCP server need sign-in or OAuth?
- Its remote endpoint listed its tools to an anonymous client, without sign-in.
Does the CareerProAI MCP server send data to outside services?
- None of its tools sends, posts or publishes, or takes a recipient, channel or URL.
Has the CareerProAI MCP server changed its tools?
- Not since anlyon.dev started tracking it. Last scanned Nov 10, 2026.