PERM Tracker MCP server
Which MCP servers are PERM Tracker's own, from the official registry and from asking its own domain, whether they answer, and what they offer. A program checked each of these, nobody copied them from a product page.
read 2026-10-17
- Registry nameapp.permtracker/perm-trackerverified in the MCP registry
The registry name sits under permtracker.app. The registry only lets a publisher use that namespace after proving control of the domain through DNS or HTTP.
- Stateanswerschecked 2026-10-17
- Tools6
- Server calls itselfpermtracker
- Server version1.0.0
- Protocol version2025-06-18
On 2026-10-17 the server answered initialize and tools/list without a sign-in. First answer in 124 ms.
- Its tools do estimate a likely decision date from the filing month, but not get an email when DOL changes a case's status.
Once connected
- For "estimate a likely decision date from the filing month", the likely first call is estimate_decision.
Said by rules from the measurements above. The likely first call is a model's pick from the tool list; read its description before relying on it.
- INITE MCP score86 of 100answers 100 · does the job 50 · definitions 100 · context 100 · connects 100
- What an agent can do with it1 of 2 use cases
- Answered100% of days16 of 16 daily checks
- Median first answer154 ms
- Space in an agent's context≈ 979 tokensthe definitions of all its tools (7), which an agent carries on every turn
- Tool definitionsA · 100 of 100
- Typed results0 of 7 toolsdeclared outputSchema: results come typed, read once
- Every tool passes all six checks.
What an agent can do with it
- not sure · check a PERM case's status against DOL data
- can do · estimate a likely decision date from the filing month
- cannot · get an email when DOL changes a case's status
Each of the product's use cases, put to Jev against this server's tool list: can an agent do it with these tools?
Worth a look
None of the five warning signs in these definitions.
A program checks the server once a day: initialize and tools/list, no model. Tokens are the definitions' length at about four characters a token. The grade averages six checks of every tool's name, description, schema and annotations; it says how well the tools are described, not whether they work. The score weighs what was measured and nothing else: answering (25%), doing the product's job (25%), definitions (20%), context (10%), use (10%) and how readily a client connects (10%). A part that was not measured is left out, and a hidden instruction caps the score at 40. The state of vendors' MCP servers: method and numbers →
lookup_caseOne DOL case by number: status, filing date, employer, job and, once decided, DOL's decided record. PERM (G-100-...), prevailing wage (P-100- to P-203-...), H-1B LCA (I-200-...) and H-2A, H-2B or CW-1 numbers. Example: {"case_number"…
estimate_decisionWhen a pending PERM case is likely to be decided, with a range, the model used and its caveats. Pass a case number, or a filing date for a case in analyst review. An estimate, not a promise. Examples: {"case_number": "G-100-26045-123456"}…
queue_statusDOL's processing times today: the month each PERM and prevailing wage queue is working on, average days to a decision, and how many PERM cases are pending from each filing month. Takes no arguments: {}.
visa_bulletinA visa bulletin's employment and family final action and dates for filing charts, as printed. The newest by default; months back to June 2005. Examples: {} for the newest, or {"month": "2026-10"}.
search_sponsorsSearch DOL's PERM records by name. Returns each match's record and the slug that employer_profile takes. Example: {"kind": "employer", "name": "Microsoft"}.
employer_profileCases in DOL's published files (certified, denied, median days to a decision, filings in the last 12 months, and for an occupation the median offered wage), plus how many of its cases are pending at DOL right now and at which stage. Find…
How to connect
Add the server to your MCP client config. Claude Desktop, Cursor and most other clients read this shape:
{
"mcpServers": {
"perm-tracker": {
"type": "http",
"url": "https://permtracker.app/mcp"
}
}
}Add it
Claude Code, in a terminal
claude mcp add --transport http permtracker https://permtracker.app/mcpclaude.ai, ChatGPT and other clients: add https://permtracker.app/mcp as a custom connector in the settings.
Each line is something a program found when it went looking: the registry entry, the server's own answer, a spec that parses. A missing line means we did not find it, not that it does not exist.
Before we count this visit
Analytics and ad measurement tell us which pages and which of our ads do their job: Google Analytics and Google Ads, the Meta pixel, Yandex Metrica, and one first-party id of our own. Nothing is stored until you answer, and declining changes nothing about the site.