Verify US & international addresses and send physical mail (postcards, letters, checks) via Lob.
Maintain this server? Claim it
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.
Cancel a postcard before its send_date so it is never mailed (and not billed). Fails if the send window has passed. Lob API: DELETE /v1/postcards/{id}.
Postcard id (psc_…) to cancel.
The server marks this tool as destructive. Running it may delete or overwrite data on the server or in any account you connected with your headers.
Cancel a postcard before its send_date so it is never mailed (and not billed). Fails if the send window has passed. Lob API: DELETE /v1/postcards/{id}.
| Argument | Type | Description |
|---|---|---|
| id* | string | Postcard id (psc_…) to cancel. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "Postcard id (psc_…) to cancel."
}
}
}Create a reusable saved address record (does NOT send any mail). Returns an address id (adr_…) usable as `to`/`from` in mail tools. Lob API: POST /v1/addresses.
| Argument | Type | Description |
|---|---|---|
| name | string | Recipient name (required unless `company` is set). |
| company | string | |
| address_zip | string | ZIP / postal code. |
| description | string | Internal label for this address. |
| address_city | string | |
| address_line1* | string | Primary street address. |
| address_line2 | string | Unit/suite/apt. |
| address_state | string | 2-letter state/province code. |
| address_country | string | 2-letter ISO country code. Defaults to US. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"address_line1"
],
"properties": {
"name": {
"type": "string",
"description": "Recipient name (required unless `company` is set)."
},
"company": {
"type": "string"
},
"address_zip": {
"type": "string",
"description": "ZIP / postal code."
},
"description": {
"type": "string",
"description": "Internal label for this address."
},
"address_city": {
"type": "string"
},
"address_line1": {
"type": "string",
"description": "Primary street address."
},
"address_line2": {
"type": "string",
"description": "Unit/suite/apt."
},
"address_state": {
"type": "string",
"description": "2-letter state/province code."
},
"address_country": {
"type": "string",
"description": "2-letter ISO country code. Defaults to US."
}
}
}⚠️ SENDS A REAL LETTER and charges your Lob account (use a test_ key to avoid real mail/charges). `to`/`from` accept an address id (adr_…) or inline object. `file` accepts an HTML string, a hosted PDF/URL, or a template id (tmpl_…). `color` is required. Cancelable only before `send_date`. Lob API: POST /v1/letters.
| Argument | Type | Description |
|---|---|---|
| to* | any | Either an existing address id (adr_…) or an inline address object. |
| file* | string | Letter body: HTML string, asset/PDF URL, or template id (tmpl_…). |
| from* | any | Return address (id or inline object). Required for letters. |
| color* | boolean | true = color printing, false = black & white. |
| send_date | string | ISO-8601 date/time to schedule the send (future). Cancelable until then. |
| description | string | Internal label. |
| double_sided | boolean | Print on both sides. Default true. |
| merge_variables |
⚠️ SENDS A REAL POSTCARD and charges your Lob account (use a test_ key to avoid real mail/charges). `to` and `from` accept an existing address id (adr_…) or an inline address object. `front`/`back` accept an HTML string, a hosted asset URL, or a template id (tmpl_…). Cancelable only before `send_date`. Lob API: POST /v1/postcards.
| Argument | Type | Description |
|---|---|---|
| to* | any | Either an existing address id (adr_…) or an inline address object. |
| back* | string | Back artwork: HTML string, asset URL, or template id (tmpl_…). |
| from | any | Return address (id or inline object). Optional. |
| size | string | Postcard size. Default 4x6. |
| front* | string | Front artwork: HTML string, asset URL, or template id (tmpl_…). |
| mail_type | string | USPS mail class. |
| send_date | string | ISO-8601 date/time to schedule the send (future). Cancelable until then. |
| description | string |
Retrieve a single saved address record by id. Lob API: GET /v1/addresses/{id}.
| Argument | Type | Description |
|---|---|---|
| id* | string | Address id (adr_…). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "Address id (adr_…)."
}
}
}Retrieve a single check by id, including amount, status, and check number. Lob API: GET /v1/checks/{id}.
| Argument | Type | Description |
|---|---|---|
| id* | string | Check id (chk_…). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "Check id (chk_…)."
}
}
}Retrieve a single letter by id, including status, PDF url, and tracking. Lob API: GET /v1/letters/{id}.
| Argument | Type | Description |
|---|---|---|
| id* | string | Letter id (ltr_…). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "Letter id (ltr_…)."
}
}
}Retrieve a single postcard by id, including status, PDF url, and expected delivery. Lob API: GET /v1/postcards/{id}.
| Argument | Type | Description |
|---|---|---|
| id* | string | Postcard id (psc_…). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "Postcard id (psc_…)."
}
}
}List saved address records, newest first. Lob API: GET /v1/addresses.
| Argument | Type | Description |
|---|---|---|
| after | string | Cursor for the next page (from a previous response's next_url). |
| limit | integer | Max results per page (1–100). Default 10. |
| before | string | Cursor for the previous page (from a previous response's previous_url). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"after": {
"type": "string",
"description": "Cursor for the next page (from a previous response's next_url)."
},
"limit": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Max results per page (1–100). Default 10."
},
"before": {
"type": "string",
"description": "Cursor for the previous page (from a previous response's previous_url)."
}
}
}List sent/scheduled checks, newest first. Lob API: GET /v1/checks.
| Argument | Type | Description |
|---|---|---|
| after | string | Cursor for the next page (from a previous response's next_url). |
| limit | integer | Max results per page (1–100). Default 10. |
| before | string | Cursor for the previous page (from a previous response's previous_url). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"after": {
"type": "string",
"description": "Cursor for the next page (from a previous response's next_url)."
},
"limit": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Max results per page (1–100). Default 10."
},
"before": {
"type": "string",
"description": "Cursor for the previous page (from a previous response's previous_url)."
}
}
}List sent/scheduled letters, newest first. Lob API: GET /v1/letters.
| Argument | Type | Description |
|---|---|---|
| after | string | Cursor for the next page (from a previous response's next_url). |
| limit | integer | Max results per page (1–100). Default 10. |
| before | string | Cursor for the previous page (from a previous response's previous_url). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"after": {
"type": "string",
"description": "Cursor for the next page (from a previous response's next_url)."
},
"limit": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Max results per page (1–100). Default 10."
},
"before": {
"type": "string",
"description": "Cursor for the previous page (from a previous response's previous_url)."
}
}
}List sent/scheduled postcards, newest first. Lob API: GET /v1/postcards.
| Argument | Type | Description |
|---|---|---|
| after | string | Cursor for the next page (from a previous response's next_url). |
| limit | integer | Max results per page (1–100). Default 10. |
| before | string | Cursor for the previous page (from a previous response's previous_url). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"after": {
"type": "string",
"description": "Cursor for the next page (from a previous response's next_url)."
},
"limit": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Max results per page (1–100). Default 10."
},
"before": {
"type": "string",
"description": "Cursor for the previous page (from a previous response's previous_url)."
}
}
}List sent/scheduled self-mailers, newest first. Lob API: GET /v1/self_mailers.
| Argument | Type | Description |
|---|---|---|
| after | string | Cursor for the next page (from a previous response's next_url). |
| limit | integer | Max results per page (1–100). Default 10. |
| before | string | Cursor for the previous page (from a previous response's previous_url). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"after": {
"type": "string",
"description": "Cursor for the next page (from a previous response's next_url)."
},
"limit": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Max results per page (1–100). Default 10."
},
"before": {
"type": "string",
"description": "Cursor for the previous page (from a previous response's previous_url)."
}
}
}List saved HTML templates usable as postcard/letter artwork. Lob API: GET /v1/templates.
| Argument | Type | Description |
|---|---|---|
| after | string | Cursor for the next page (from a previous response's next_url). |
| limit | integer | Max results per page (1–100). Default 10. |
| before | string | Cursor for the previous page (from a previous response's previous_url). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"after": {
"type": "string",
"description": "Cursor for the next page (from a previous response's next_url)."
},
"limit": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Max results per page (1–100). Default 10."
},
"before": {
"type": "string",
"description": "Cursor for the previous page (from a previous response's previous_url)."
}
}
}Suggest complete US addresses from a partial primary line — useful for address entry. Non-mutating. Lob API: POST /v1/us_autocompletions.
| Argument | Type | Description |
|---|---|---|
| city | string | Optional city to narrow suggestions. |
| state | string | Optional 2-letter state to narrow suggestions. |
| zip_code | string | Optional ZIP to narrow suggestions. |
| address_prefix* | string | Partial primary line, e.g. '185 Berr'. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"address_prefix"
],
"properties": {
"city": {
"type": "string",
"description": "Optional city to narrow suggestions."
},
"state": {
"type": "string",
"description": "Optional 2-letter state to narrow suggestions."
},
"zip_code": {
"type": "string",
"description": "Optional ZIP to narrow suggestions."
},
"address_prefix": {
"type": "string",
"description": "Partial primary line, e.g. '185 Berr'."
}
}
}Return the cities and state associated with a US ZIP code. Non-mutating. Lob API: POST /v1/us_zip_lookups.
| Argument | Type | Description |
|---|---|---|
| zip_code* | string | A 5-digit US ZIP code, e.g. '94107'. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"zip_code"
],
"properties": {
"zip_code": {
"type": "string",
"description": "A 5-digit US ZIP code, e.g. '94107'."
}
}
}Validate & standardize a non-US address. `country` (2-letter ISO code) is required. Non-mutating (no mail sent). Lob API: POST /v1/intl_verifications.
| Argument | Type | Description |
|---|---|---|
| city | string | |
| state | string | State / province / region. |
| country* | string | 2-letter ISO country code, e.g. 'GB', 'DE', 'CA'. |
| postal_code | string | |
| primary_line* | string | Primary delivery line. |
| secondary_line | string |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"primary_line",
"country"
],
"properties": {
"city": {
"type": "string"
},
"state": {
"type": "string",
"description": "State / province / region."
},
"country": {
"type": "string",
"description": "2-letter ISO country code, e.g. 'GB', 'DE', 'CA'."
},
"postal_code": {
"type": "string"
},
"primary_line": {
"type": "string",
"description": "Primary delivery line."
},
"secondary_line": {
"type": "string"
}
}
}Validate & standardize a US address, returning deliverability, corrected components, and a confidence score. Pass either a single freeform `address` string OR structured `primary_line`/`city`/`state`/`zip_code`. Non-mutating (no mail sent). Lob API: POST /v1/us_verifications.
| Argument | Type | Description |
|---|---|---|
| city | string | |
| state | string | 2-letter state code, e.g. 'CA'. |
| address | string | Freeform single-line address (alternative to the structured fields). |
| zip_code | string | 5-digit or ZIP+4. |
| primary_line | string | Primary delivery line, e.g. '210 King Street'. |
| secondary_line | string | Secondary line, e.g. 'Suite 6100'. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"city": {
"type": "string"
},
"state": {
"type": "string",
"description": "2-letter state code, e.g. 'CA'."
},
"address": {
"type": "string",
"description": "Freeform single-line address (alternative to the structured fields)."
},
"zip_code": {
"type": "string",
"description": "5-digit or ZIP+4."
},
"primary_line": {
"type": "string",
"description": "Primary delivery line, e.g. '210 King Street'."
},
"secondary_line": {
"type": "string",
"description": "Secondary line, e.g. 'Suite 6100'."
}
}
}| object |
| Key/value data merged into HTML templates. |
| address_placement | string | Where the recipient address is placed. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"to",
"from",
"file",
"color"
],
"properties": {
"to": {
"anyOf": [
{
"type": "string",
"description": "Existing Lob address id (adr_…)."
},
{
"type": "object",
"required": [
"address_line1"
],
"properties": {
"name": {
"type": "string"
},
"company": {
"type": "string"
},
"address_zip": {
"type": "string",
"description": "ZIP / postal code."
},
"address_city": {
"type": "string"
},
"address_line1": {
"type": "string",
"description": "Primary street address, e.g. '210 King St'."
},
"address_line2": {
"type": "string",
"description": "Unit/suite/apt, e.g. 'Suite 6100'."
},
"address_state": {
"type": "string",
"description": "2-letter state/province code for US/CA."
},
"address_country": {
"type": "string",
"description": "2-letter ISO country code. Defaults to US."
}
},
"description": "Inline address object."
}
],
"description": "Either an existing address id (adr_…) or an inline address object."
},
"file": {
"type": "string",
"description": "Letter body: HTML string, asset/PDF URL, or template id (tmpl_…)."
},
"from": {
"anyOf": [
{
"type": "string",
"description": "Existing Lob address id (adr_…)."
},
{
"type": "object",
"required": [
"address_line1"
],
"properties": {
"name": {
"type": "string"
},
"company": {
"type": "string"
},
"address_zip": {
"type": "string",
"description": "ZIP / postal code."
},
"address_city": {
"type": "string"
},
"address_line1": {
"type": "string",
"description": "Primary street address, e.g. '210 King St'."
},
"address_line2": {
"type": "string",
"description": "Unit/suite/apt, e.g. 'Suite 6100'."
},
"address_state": {
"type": "string",
"description": "2-letter state/province code for US/CA."
},
"address_country": {
"type": "string",
"description": "2-letter ISO country code. Defaults to US."
}
},
"description": "Inline address object."
}
],
"description": "Return address (id or inline object). Required for letters."
},
"color": {
"type": "boolean",
"description": "true = color printing, false = black & white."
},
"send_date": {
"type": "string",
"description": "ISO-8601 date/time to schedule the send (future). Cancelable until then."
},
"description": {
"type": "string",
"description": "Internal label."
},
"double_sided": {
"type": "boolean",
"description": "Print on both sides. Default true."
},
"merge_variables": {
"type": "object",
"description": "Key/value data merged into HTML templates.",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"address_placement": {
"enum": [
"top_first_page",
"insert_blank_page",
"bottom_first_page_center",
"bottom_first_page"
],
"type": "string",
"description": "Where the recipient address is placed."
}
}
}| Internal label. |
| merge_variables | object | Key/value data merged into HTML templates. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"to",
"front",
"back"
],
"properties": {
"to": {
"anyOf": [
{
"type": "string",
"description": "Existing Lob address id (adr_…)."
},
{
"type": "object",
"required": [
"address_line1"
],
"properties": {
"name": {
"type": "string"
},
"company": {
"type": "string"
},
"address_zip": {
"type": "string",
"description": "ZIP / postal code."
},
"address_city": {
"type": "string"
},
"address_line1": {
"type": "string",
"description": "Primary street address, e.g. '210 King St'."
},
"address_line2": {
"type": "string",
"description": "Unit/suite/apt, e.g. 'Suite 6100'."
},
"address_state": {
"type": "string",
"description": "2-letter state/province code for US/CA."
},
"address_country": {
"type": "string",
"description": "2-letter ISO country code. Defaults to US."
}
},
"description": "Inline address object."
}
],
"description": "Either an existing address id (adr_…) or an inline address object."
},
"back": {
"type": "string",
"description": "Back artwork: HTML string, asset URL, or template id (tmpl_…)."
},
"from": {
"anyOf": [
{
"type": "string",
"description": "Existing Lob address id (adr_…)."
},
{
"type": "object",
"required": [
"address_line1"
],
"properties": {
"name": {
"type": "string"
},
"company": {
"type": "string"
},
"address_zip": {
"type": "string",
"description": "ZIP / postal code."
},
"address_city": {
"type": "string"
},
"address_line1": {
"type": "string",
"description": "Primary street address, e.g. '210 King St'."
},
"address_line2": {
"type": "string",
"description": "Unit/suite/apt, e.g. 'Suite 6100'."
},
"address_state": {
"type": "string",
"description": "2-letter state/province code for US/CA."
},
"address_country": {
"type": "string",
"description": "2-letter ISO country code. Defaults to US."
}
},
"description": "Inline address object."
}
],
"description": "Return address (id or inline object). Optional."
},
"size": {
"enum": [
"4x6",
"6x9",
"6x11"
],
"type": "string",
"description": "Postcard size. Default 4x6."
},
"front": {
"type": "string",
"description": "Front artwork: HTML string, asset URL, or template id (tmpl_…)."
},
"mail_type": {
"enum": [
"usps_first_class",
"usps_standard"
],
"type": "string",
"description": "USPS mail class."
},
"send_date": {
"type": "string",
"description": "ISO-8601 date/time to schedule the send (future). Cancelable until then."
},
"description": {
"type": "string",
"description": "Internal label."
},
"merge_variables": {
"type": "object",
"description": "Key/value data merged into HTML templates.",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
}
}