# ImmigrationLayer

> USCIS fees, processing times, form editions, alerts, and the Visa Bulletin. Not legal advice.

- name: com.immigrationlayer/immigration-mcp
- version: 0.0.0
- connection class: R0 (autonomous)
- trust: 83/100 flags: no-repository
- quality: 83/100 (new)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/com.immigrationlayer%2Fimmigration-mcp
- tools: https://api.protogrid.dev/v1/servers/com.immigrationlayer%2Fimmigration-mcp/tools

**An agent can connect right now, no human step.** Remote endpoint, no authentication, reachable on the last probe.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "immigration-mcp": {
      "type": "http",
      "url": "https://immigrationlayer.com/mcp"
    }
  }
}
```


## Trust

- hygiene: 80
- liveness: 100
- freshness: 100
- provenance: 55
- drivers: +dns-namespace +website +reachable +uptime-100% +updated-6d-ago -no-repository
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 83/100 (new)

### protocol: 88 (weight 25)

- pass `protocol.modern`: supports 2026-07-28 (server/discover)
- pass `protocol.stateless`: answers without a session
- pass `protocol.transport`: streamable HTTP
- warn `protocol.list_ttl`: tools/list declares ttlMs 0, so clients re-fetch it on every use

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 79 (weight 30)

- pass `tools.descriptions`: every tool has a description
- warn `tools.description_length`: 1 tools have descriptions over 1,024 characters, which crowds the context
- pass `tools.schemas`: every tool has an object input schema
- pass `tools.annotations`: 8 of 8 tools declare readOnlyHint or destructiveHint
- fail `tools.directory_hints`: no tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: get_visa_bulletin_notes (idempotentHint, openWorldHint); list_form_changes (idempotentHint, openWorldHint); get_fee (idempotentHint, openWorldHint); …
- pass `tools.token_cost`: about 3,358 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: n/a (weight 15)

- n/a `stability.changes`, `stability.rug_pull`: tool history recorded for 5 of the 7 days needed

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 8, about 3,358 tokens to load them all
- tool set hash: 0e489f1a165bf9154e4c0a9fdc92b528
- tools last changed: 2026-10-19T08:10:10.975Z
- badge: [![protogrid quality](https://protogrid.dev/badge/com.immigrationlayer/immigration-mcp.svg)](https://protogrid.dev/servers/com.immigrationlayer/immigration-mcp)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

- 2026-10-19 `get_fee` changed (description, inputSchema, outputSchema)
  - before: Returns the general filing fee for a USCIS form and filing method, in US cents, with the date it took effect. Use it when the user asks what a form costs to file. Only the general fee is on file: category-specific fees are unavailable, so omit category. Covers I-90, I-130, I-140, I-485, I-539, I-765, and N-400, paper and online; any other form returns not_found. For the form's current edition, use check_form_edition. Requires sign-in at https://immigrationlayer.com/login and an active plan. Without a plan it returns subscription_required. Limit: 30 calls per minute per account, shared by all paid tools, then rate_limited. Not legal advice. Sources: the USCIS fee schedule (Form G-1055) and the 2024 USCIS fee rule (89 FR 6194).
  - after: Returns a published government fee and its effective date. For US (the default), the general filing fee for a USCIS form and filing method; category-specific US fees are unavailable, so omit category. US covers I-90, I-130, I-140, I-485, I-539, I-765, and N-400, paper and online; any other form returns not_found. For GB, the fee for a published Home Office fee category; pass the section heading as category when the name appears in more than one section. amount_cents is in the minor unit of currency. filing is "unspecified" when the source states no filing channel. It does not say which fee applies to a case. For a USCIS form's current edition, use check_form_edition. Requires sign-in at https://immigrationlayer.com/login and an active plan. Without a plan it returns subscription_required. Limit: 30 calls per minute per account, shared by all paid tools, then rate_limited. Not legal advice. Sources: for US, the USCIS fee schedule (Form G-1055) and the 2024 USCIS fee rule (89 FR 6194); for GB, the Home Office visa regulations revised table on gov.uk, used under the Open Government Licence v3.0.
- 2026-10-17 `list_form_changes` changed (description, inputSchema, outputSchema)
  - before: Lists every form edition change and every USCIS or Federal Register alert published on or after a date, newest first. Use it to catch up on what changed since a last check. For one form's current edition, use check_form_edition. To find alerts by keyword, use search_alerts. Returns all matches in one response with no paging; empty lists mean nothing changed. Free, no sign-in required. Limit: 20 calls per minute per IP, then rate_limited. Not legal advice. Sources: uscis.gov form pages or dated web.archive.org captures of them, USCIS newsroom alerts, and Federal Register notices. The top-level source URL identifies the exact aggregate query. Each alert and form change keeps its own source URL and content hash.
  - after: Lists form edition changes and USCIS or Federal Register alerts published on or after a date, newest first. Use it to catch up on what changed since a last check. For one form's current edition, use check_form_edition. To find alerts by keyword, use search_alerts. Returns at most 100 form edition changes and 100 alerts per page. Pass next_cursor as cursor, with the same since, to continue until next_cursor is null. Empty lists on the first page mean nothing changed. Free, no sign-in required. Limit: 20 calls per minute per IP, then rate_limited. Not legal advice. Sources: uscis.gov form pages or dated web.archive.org captures of them, USCIS newsroom alerts, and Federal Register notices. The top-level source URL identifies the exact aggregate query, including the page cursor. Each alert and form change keeps its own source URL and content hash.
- 2026-10-15 `get_visa_bulletin_notes` changed (description, inputSchema)
  - before: Every current lettered advisory note published in a month's Visa Bulletin (the forward-looking text, e.g. "EB-1 India may become unavailable"). An empty list means the month was loaded and had no notes; a month not on file returns an error. Free, no sign-in required. Not legal advice. Source: the Department of State Visa Bulletin (travel.state.gov).
  - after: Returns every lettered advisory note in a month's Visa Bulletin: the forward-looking text, e.g. "EB-1 India may become unavailable". Use it when the user asks whether dates are expected to advance, hold, or retrogress. For the chart dates themselves, use get_visa_bulletin or get_visa_bulletin_dv. An empty list means the month was loaded and had no notes; a month not on file returns not_found. Free, no sign-in required. Limit: 20 calls per minute per IP, then rate_limited. Not legal advice. Source: the Department of State Visa Bulletin (travel.state.gov).
- 2026-10-15 `get_visa_bulletin_dv` changed (description, inputSchema, outputSchema) **meaning changed**
  - before: Diversity Immigrant (DV) lottery cutoff or status for a region, and any listed country-specific exception within it. Free, no sign-in required. Not legal advice. Source: the Department of State Visa Bulletin (travel.state.gov).
  - after: Returns the Diversity Visa (DV lottery) rank cutoff for one region in a month's Visa Bulletin, or a country exception the bulletin lists within that region. Use it when a DV selectee asks whether their case number is current. For family and employment chart dates, use get_visa_bulletin. For the bulletin's advisory notes, use get_visa_bulletin_notes. A month or region not on file returns not_found. Free, no sign-in required. Limit: 20 calls per minute per IP, then rate_limited. Not legal advice. Source: the Department of State Visa Bulletin (travel.state.gov).
- 2026-10-15 `search_alerts` changed (description, inputSchema)
  - before: Search USCIS and DOS alerts and notices by keyword. Requires sign-in at https://immigrationlayer.com/login and an active plan. Not legal advice. Sources: USCIS newsroom alerts and Federal Register notices. Returns at most 100 matches per page, newest first. Pass next_cursor as cursor to continue until next_cursor is null. The top-level source URL identifies the exact aggregate query, including the page cursor; each result preserves its government URL, source, and content hash.
  - after: Searches USCIS newsroom alerts and Federal Register notices by keyword, newest first. Use it to find announcements about a form or topic, e.g. "I-765" or "fee". To list everything published since a date without a keyword, use list_form_changes, which is free. Returns at most 100 matches per page. Pass next_cursor as cursor to continue until next_cursor is null. No match returns an empty list, not an error. Requires sign-in at https://immigrationlayer.com/login and an active plan. Without a plan it returns subscription_required. Limit: 30 calls per minute per account, shared by all paid tools, then rate_limited. Not legal advice. Sources: USCIS newsroom alerts and Federal Register notices. The top-level source URL identifies the exact aggregate query, including the page cursor; each result preserves its government URL, source, and content hash.
- 2026-10-15 `get_visa_bulletin` changed (description, inputSchema, outputSchema) **meaning changed**
  - before: Monthly Visa Bulletin final-action or dates-for-filing chart entry. Requires sign-in at https://immigrationlayer.com/login and an active plan. Not legal advice. Source: the Department of State Visa Bulletin (travel.state.gov).
  - after: Returns one family- or employment-based cutoff from a month's State Department Visa Bulletin: the Final Action Date or Date for Filing for a preference category and chargeability country. Use it when the user asks whether a priority date is current. date_or_status is a YYYY-MM-DD cutoff, "C" (current), or "U" (unavailable). For Diversity Visa lottery cutoffs, use get_visa_bulletin_dv. For the bulletin's advisory notes on future movement, use get_visa_bulletin_notes. A month or combination not on file returns not_found. Requires sign-in at https://immigrationlayer.com/login and an active plan. Without a plan it returns subscription_required. Limit: 30 calls per minute per account, shared by all paid tools, then rate_limited. Not legal advice. Source: the Department of State Visa Bulletin (travel.state.gov).
- 2026-10-15 `get_processing_time` changed (description, inputSchema, outputSchema) **meaning changed**
  - before: USCIS processing-time estimate for a form (a percentile-basis figure, e.g. "80% of cases completed within N months"; unit varies by category). Requires sign-in at https://immigrationlayer.com/login and an active plan. Not legal advice. Source: the USCIS processing times tool (egov.uscis.gov).
  - after: Returns the USCIS processing-time estimate for one form, eligibility category, and office: the time within which 80% of cases were completed, in months, weeks, or days. Use it when the user asks how long USCIS takes to decide a form. Pass form, category, and office exactly as the USCIS processing times tool lists them. Every estimate on file has both a category and an office, so omitting either returns not_found. For Visa Bulletin waits, use get_visa_bulletin. Requires sign-in at https://immigrationlayer.com/login and an active plan. Without a plan it returns subscription_required. Limit: 30 calls per minute per account, shared by all paid tools, then rate_limited. Not legal advice. Source: the USCIS processing times tool (egov.uscis.gov).
- 2026-10-15 `get_fee` changed (description, inputSchema, outputSchema) **meaning changed**
  - before: Returns the general filing fee and effective date for a USCIS form; category-specific fees are unavailable in the current dataset. Requires sign-in at https://immigrationlayer.com/login and an active plan. Not legal advice. Sources: the USCIS fee schedule (Form G-1055) and the 2024 USCIS fee rule (89 FR 6194).
  - after: Returns the general filing fee for a USCIS form and filing method, in US cents, with the date it took effect. Use it when the user asks what a form costs to file. Only the general fee is on file: category-specific fees are unavailable, so omit category. Covers I-90, I-130, I-140, I-485, I-539, I-765, and N-400, paper and online; any other form returns not_found. For the form's current edition, use check_form_edition. Requires sign-in at https://immigrationlayer.com/login and an active plan. Without a plan it returns subscription_required. Limit: 30 calls per minute per account, shared by all paid tools, then rate_limited. Not legal advice. Sources: the USCIS fee schedule (Form G-1055) and the 2024 USCIS fee rule (89 FR 6194).
- 2026-10-15 `list_form_changes` changed (description) **meaning changed**
  - before: Form edition and alert changes published since a date. Free, no sign-in required. Not legal advice. Sources: uscis.gov form pages or dated web.archive.org captures of them, USCIS newsroom alerts, and Federal Register notices. The top-level source URL identifies the exact aggregate query. Alerts preserve their government URL, source, and content hash; form changes preserve their source URL (the uscis.gov form page or a dated web.archive.org capture of it) and content hash.
  - after: Lists every form edition change and every USCIS or Federal Register alert published on or after a date, newest first. Use it to catch up on what changed since a last check. For one form's current edition, use check_form_edition. To find alerts by keyword, use search_alerts. Returns all matches in one response with no paging; empty lists mean nothing changed. Free, no sign-in required. Limit: 20 calls per minute per IP, then rate_limited. Not legal advice. Sources: uscis.gov form pages or dated web.archive.org captures of them, USCIS newsroom alerts, and Federal Register notices. The top-level source URL identifies the exact aggregate query. Each alert and form change keeps its own source URL and content hash.
- 2026-10-15 `check_form_edition` changed (description, inputSchema, outputSchema) **meaning changed**
  - before: The edition of a form USCIS accepts today, its accepted-from and rejected-from dates. When USCIS has announced a future edition ahead of its own accepted-from date, announced_edition carries that edition and the date it takes effect; announced_edition is absent once that date arrives or when none has been announced. Free, no sign-in required. Not legal advice. Source: the form's page on uscis.gov, or a dated web.archive.org capture of that page.
  - after: Returns the edition of one USCIS form that USCIS accepts today, with its accept-from and reject-from dates. Use it to confirm a filer has the right form version before filing. If USCIS has announced a newer edition it does not accept yet, announced_edition gives that edition and its accept-from date. For edition changes across all forms since a date, use list_form_changes. Covers I-90, I-129, I-130, I-131, I-140, I-485, I-539, I-765, and N-400; any other form returns not_found. Free, no sign-in required. Limit: 20 calls per minute per IP, then rate_limited. Not legal advice. Source: the form's page on uscis.gov, or a dated web.archive.org capture of that page.

Full history: https://api.protogrid.dev/v1/servers/com.immigrationlayer%2Fimmigration-mcp/changes

## Remotes

- https://immigrationlayer.com/mcp (streamable-http, auth none, reachable true, uptime30d 1)

## Packages

_none_

## Tools (8)

- `check_form_edition`: Returns the edition of one USCIS form that USCIS accepts today, with its accept-from and reject-from dates. Use it to confirm a filer has the right form version before filing. If USCIS has announced a newer edition it does not accept yet, announced_edition gives that edition and its accept-from date. For edition changes across all forms since a date, use list_form_changes. Covers I-90, I-129, I-130, I-131, I-140, I-485, I-539, I-765, and N-400; any other form returns not_found. Free, no sign-in required. Limit: 20 calls per minute per IP, then rate_limited. Not legal advice. Source: the form's page on uscis.gov, or a dated web.archive.org capture of that page.
- `get_fee`: Returns a published government fee and its effective date. For US (the default), the general filing fee for a USCIS form and filing method; category-specific US fees are unavailable, so omit category. US covers I-90, I-130, I-140, I-485, I-539, I-765, and N-400, paper and online; any other form returns not_found. For GB, the fee for a published Home Office fee category; pass the section heading as category when the name appears in more than one section. amount_cents is in the minor unit of currency. filing is "unspecified" when the source states no filing channel. It does not say which fee applies to a case. For a USCIS form's current edition, use check_form_edition. Requires sign-in at https://immigrationlayer.com/login and an active plan. Without a plan it returns subscription_required. Limit: 30 calls per minute per account, shared by all paid tools, then rate_limited. Not legal advice. Sources: for US, the USCIS fee schedule (Form G-1055) and the 2024 USCIS fee rule (89 FR 6194); for GB, the Home Office visa regulations revised table on gov.uk, used under the Open Government Licence v3.0.
- `get_processing_time`: Returns the USCIS processing-time estimate for one form, eligibility category, and office: the time within which 80% of cases were completed, in months, weeks, or days. Use it when the user asks how long USCIS takes to decide a form. Pass form, category, and office exactly as the USCIS processing times tool lists them. Every estimate on file has both a category and an office, so omitting either returns not_found. For Visa Bulletin waits, use get_visa_bulletin. Requires sign-in at https://immigrationlayer.com/login and an active plan. Without a plan it returns subscription_required. Limit: 30 calls per minute per account, shared by all paid tools, then rate_limited. Not legal advice. Source: the USCIS processing times tool (egov.uscis.gov).
- `get_visa_bulletin`: Returns one family- or employment-based cutoff from a month's State Department Visa Bulletin: the Final Action Date or Date for Filing for a preference category and chargeability country. Use it when the user asks whether a priority date is current. date_or_status is a YYYY-MM-DD cutoff, "C" (current), or "U" (unavailable). For Diversity Visa lottery cutoffs, use get_visa_bulletin_dv. For the bulletin's advisory notes on future movement, use get_visa_bulletin_notes. A month or combination not on file returns not_found. Requires sign-in at https://immigrationlayer.com/login and an active plan. Without a plan it returns subscription_required. Limit: 30 calls per minute per account, shared by all paid tools, then rate_limited. Not legal advice. Source: the Department of State Visa Bulletin (travel.state.gov).
- `get_visa_bulletin_dv`: Returns the Diversity Visa (DV lottery) rank cutoff for one region in a month's Visa Bulletin, or a country exception the bulletin lists within that region. Use it when a DV selectee asks whether their case number is current. For family and employment chart dates, use get_visa_bulletin. For the bulletin's advisory notes, use get_visa_bulletin_notes. A month or region not on file returns not_found. Free, no sign-in required. Limit: 20 calls per minute per IP, then rate_limited. Not legal advice. Source: the Department of State Visa Bulletin (travel.state.gov).
- `get_visa_bulletin_notes`: Returns every lettered advisory note in a month's Visa Bulletin: the forward-looking text, e.g. "EB-1 India may become unavailable". Use it when the user asks whether dates are expected to advance, hold, or retrogress. For the chart dates themselves, use get_visa_bulletin or get_visa_bulletin_dv. An empty list means the month was loaded and had no notes; a month not on file returns not_found. Free, no sign-in required. Limit: 20 calls per minute per IP, then rate_limited. Not legal advice. Source: the Department of State Visa Bulletin (travel.state.gov).
- `list_form_changes`: Lists form edition changes and USCIS or Federal Register alerts published on or after a date, newest first. Use it to catch up on what changed since a last check. For one form's current edition, use check_form_edition. To find alerts by keyword, use search_alerts. Returns at most 100 form edition changes and 100 alerts per page. Pass next_cursor as cursor, with the same since, to continue until next_cursor is null. Empty lists on the first page mean nothing changed. Free, no sign-in required. Limit: 20 calls per minute per IP, then rate_limited. Not legal advice. Sources: uscis.gov form pages or dated web.archive.org captures of them, USCIS newsroom alerts, and Federal Register notices. The top-level source URL identifies the exact aggregate query, including the page cursor. Each alert and form change keeps its own source URL and content hash.
- `search_alerts`: Searches USCIS newsroom alerts and Federal Register notices by keyword, newest first. Use it to find announcements about a form or topic, e.g. "I-765" or "fee". To list everything published since a date without a keyword, use list_form_changes, which is free. Returns at most 100 matches per page. Pass next_cursor as cursor to continue until next_cursor is null. No match returns an empty list, not an error. Requires sign-in at https://immigrationlayer.com/login and an active plan. Without a plan it returns subscription_required. Limit: 30 calls per minute per account, shared by all paid tools, then rate_limited. Not legal advice. Sources: USCIS newsroom alerts and Federal Register notices. The top-level source URL identifies the exact aggregate query, including the page cursor; each result preserves its government URL, source, and content hash.
