Not legal advice

Developer docs

Full reference for the ImmigrationLayer MCP server: quick start, every tool's arguments and response shape, auth, rate limits, versioning, and the changelog. The machine-readable version is at /docs/llms-full.txt.

Quick start

Adds the server as a remote MCP connector over Streamable HTTP.

claude mcp add --transport http immigration-layer https://mcp.immigrationlayer.com/mcp

Tool and endpoint reference

Generated from the same zod schemas workers/mcp registers each tool with, so this can't drift from what's actually deployed.

check_form_edition

Current USCIS-accepted edition of a form, its accepted-from and rejected-from dates, and the alert that announced it. Free, no sign-in required. Not legal advice. Source: the form's page on uscis.gov.

ArgumentTypeRequiredDescription
formstringYesUSCIS form number, e.g. "I-765"
check_form_edition({ form: "I-765" })
{
  "data": {
    "form": "I-765",
    "edition_date": "09/15/26",
    "accept_from": "2026-09-15",
    "reject_from": null
  },
  "as_of": "2026-09-15T00:00:00Z",
  "source_url": "https://www.uscis.gov/i-765",
  "content_hash": "sha256:example",
  "not_legal_advice": true
}

Not legal advice. Verify against the cited source before filing.

list_form_changes

Form edition and alert changes published since a date. Free, no sign-in required. Not legal advice. Source: uscis.gov form pages and the USCIS newsroom alerts page.

ArgumentTypeRequiredDescription
sincestringYesISO 8601 date/time; returns changes after this timestamp
list_form_changes({ since: "2026-08-01" })
{
  "data": {
    "form_editions": [
      {
        "kind": "inserted",
        "changed_at": "2026-09-15T00:00:00Z",
        "form": "I-765",
        "edition_date": "09/15/26",
        "accept_from": "2026-09-15",
        "reject_from": null,
        "source_url": "https://www.uscis.gov/i-765",
        "content_hash": "sha256:example"
      }
    ],
    "alerts": [
      {
        "id": "alert_123",
        "published_at": "2026-08-14T00:00:00Z",
        "title": "USCIS to publish new editions of Form I-539 and Form I-765",
        "url": "https://www.uscis.gov/newsroom/alerts/example",
        "summary": null,
        "forms_json": "[\"I-539\",\"I-765\"]",
        "content_hash": "sha256:example"
      }
    ]
  },
  "as_of": "2026-09-15T00:00:00Z",
  "source_url": "https://www.uscis.gov/i-765",
  "content_hash": "sha256:example",
  "not_legal_advice": true
}

Not legal advice. Verify against the cited source before filing.

get_feeSign-in required

Filing fee and effective date for a USCIS form. Requires sign-in at https://immigrationlayer.com. Not legal advice. Source: the USCIS fee schedule (Form G-1055).

ArgumentTypeRequiredDescription
formstringYesUSCIS form number, e.g. "I-765"
filingpaper | onlineYesFiling method
categorystringNoEligibility category, when the fee depends on it
get_fee({ form: "I-765", filing: "online" })
Not implemented yet - always returns a sign-in prompt

Not legal advice. Verify against the cited source before filing.

get_processing_timeSign-in required

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. Not legal advice. Source: the USCIS processing times tool (egov.uscis.gov).

ArgumentTypeRequiredDescription
formstringYesUSCIS form number, e.g. "I-765"
categorystringNoEligibility category
officestringNoUSCIS field office or service center
get_processing_time({ form: "I-765" })
Not implemented yet - always returns a sign-in prompt

Not legal advice. Verify against the cited source before filing.

get_visa_bulletinSign-in required

Monthly Visa Bulletin final-action or dates-for-filing chart entry. Requires sign-in at https://immigrationlayer.com. Not legal advice. Source: the Department of State Visa Bulletin (travel.state.gov).

ArgumentTypeRequiredDescription
monthstringYese.g. "2026-10"
chartfinal_action | dates_for_filingYesWhich chart to read
categorystringYesPreference category, e.g. "F2A"
countrystringYesChargeability country
get_visa_bulletin({ month: "2026-10", chart: "final_action", category: "F2A", country: "India" })
Not implemented yet - always returns a sign-in prompt

Not legal advice. Verify against the cited source before filing.

search_alertsSign-in required

Search USCIS and DOS alerts and notices by keyword. Requires sign-in at https://immigrationlayer.com. Not legal advice. Source: the USCIS newsroom alerts page (uscis.gov/newsroom/alerts).

ArgumentTypeRequiredDescription
querystringYesKeyword to search for
sincestringNoISO 8601 date/time; limits results to alerts published after it
search_alerts({ query: "I-765" })
Not implemented yet - always returns a sign-in prompt

Not legal advice. Verify against the cited source before filing.

Auth

check_form_edition andlist_form_changes need no sign-in at all - they're rate-limited by IP instead. Every other tool needs a caller identity.

  • MCP clients (Claude, ChatGPT, Cursor, Claude Code): the server implements OAuth 2.1 with dynamic client registration and Client ID Metadata Documents, so "add connector" with the server URL alone is enough. Authorization opens an email magic-link page hosted at https://immigrationlayer.com; no password, no separate account creation step.
  • Scripts: create an API key athttps://immigrationlayer.com/account (sign in with the same email magic link first), then send it asAuthorization: Bearer <key> on the MCP request. It authenticates against the same /mcp JSON-RPC endpoint as an OAuth client - there's no separate REST surface yet (tracked in#50).

Rate limits, versioning, changelog, status

Rate limits

The two sign-in-free tools and the changes resource share one cap: 20 calls per minute per IP address. There's no monthly quota enforced yet - Stripe-backed plan entitlements and usage meters are tracked in#13, not shipped.

Versioning

The server negotiates the MCP protocol version at connect time, per the MCP spec. A tool's name and required arguments won't change without a new tool name; optional arguments may be added. There's no separate REST API version, since there's no REST API yet.

Changelog

Every form edition, fee, and Visa Bulletin change, plus USCIS and DOS alerts, as RSS or JSON: immigrationlayer.com/changes.rssand immigrationlayer.com/changes.json.

Status

There's no dedicated status page yet. The server runs on Cloudflare Workers; seeCloudflare's own status page for platform-wide incidents.