Find DOJ-authorized immigration legal help near you.
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Get one published immigration legal provider by its slug.
The listing slug.
Get one published immigration legal provider by its slug.
| Argument | Type | Description |
|---|---|---|
| slug* | string | The listing slug. |
{
"type": "object",
"required": [
"slug"
],
"properties": {
"slug": {
"type": "string",
"pattern": "^[a-z0-9]+(-[a-z0-9]+)*$",
"maxLength": 100,
"minLength": 1,
"description": "The listing slug."
}
},
"additionalProperties": false
}Get the number of published immigration legal providers, places and categories, and when the data last changed.
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}List categories with their immigration legal provider counts.
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}List countries, regions and cities that have immigration legal providers.
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}List where the immigration legal provider data comes from, with the license and refresh of each source.
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}Search published immigration legal providers by text, place and category.
| Argument | Type | Description |
|---|---|---|
| q | string | Search text, with at least one letter or digit. Matches name, categories, attributes, description and place. Typos fall back to close matches. |
| city | string | City slug, from /places. |
| sort | string | `relevance` needs `q` and is the default with it. `name` is the default without `q`. `recent` is newest first. |
| limit | integer | Items per page. |
| cursor | string | `page.nextCursor` from the previous response. Opaque. Send the same filters and `limit`. |
| region | string | Region slug, from /places. |
| country | string | ISO 3166-1 alpha-2 country code, any case. A country the directory does not cover, as listed in /places, gives 400. |
| category | string | Category slug, from /categories. A parent slug also matches its children. |
{
"type": "object",
"properties": {
"q": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Search text, with at least one letter or digit. Matches name, categories, attributes, description and place. Typos fall back to close matches."
},
"city": {
"type": "string",
"pattern": "^[a-z0-9]+(-[a-z0-9]+)*$",
"maxLength": 100,
"minLength": 1,
"description": "City slug, from /places."
},
"sort": {
"enum": [
"relevance",
"name",
"recent"
],
"type": "string",
"description": "`relevance` needs `q` and is the default with it. `name` is the default without `q`. `recent` is newest first."
},
"limit": {
"type": "integer",
"default": 20,
"maximum": 50,
"minimum": 1,
"description": "Items per page."
},
"cursor": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "`page.nextCursor` from the previous response. Opaque. Send the same filters and `limit`."
},
"region": {
"type": "string",
"pattern": "^[a-z0-9]+(-[a-z0-9]+)*$",
"maxLength": 100,
"minLength": 1,
"description": "Region slug, from /places."
},
"country": {
"type": "string",
"pattern": "^[A-Za-z]{2}$",
"description": "ISO 3166-1 alpha-2 country code, any case. A country the directory does not cover, as listed in /places, gives 400."
},
"category": {
"type": "string",
"pattern": "^[a-z0-9]+(-[a-z0-9]+)*$",
"maxLength": 100,
"minLength": 1,
"description": "Category slug, from /categories. A parent slug also matches its children."
}
},
"additionalProperties": false
}