# How to integrate Lob MCP with Claude Code

```json
{
  "title": "How to integrate Lob MCP with Claude Code",
  "toolkit": "Lob",
  "toolkit_slug": "lob",
  "framework": "Claude Code",
  "framework_slug": "claude-code",
  "url": "https://composio.dev/toolkits/lob/framework/claude-code",
  "markdown_url": "https://composio.dev/toolkits/lob/framework/claude-code.md",
  "updated_at": "2026-10-12T14:15:52.081Z"
}
```

## Introduction

Manage your Lob directly from Claude Code with zero worries about OAuth hassles, API-breaking issues, or reliability and security concerns.
You can do this in two different ways:
- Via [Composio Connect](https://dashboard.composio.dev/login?utm_source=toolkits&utm_medium=framework_template&utm_campaign=claude-code&utm_content=composio_connect&next=%2F~%2Forg%2Fconnect%2Fclients%2Fclaude-code) - Direct and easiest approach
- Via [Composio SDK](https://docs.composio.dev/docs?utm_source=toolkits&utm_medium=framework_template&utm_campaign=claude-code&utm_content=composio_sdk) - Programmatic approach with more control

## Also integrate Lob with

- [Claude Cowork](https://composio.dev/toolkits/lob/framework/claude-cowork)
- [OpenAI Agents SDK](https://composio.dev/toolkits/lob/framework/open-ai-agents-sdk)
- [Claude Agent SDK](https://composio.dev/toolkits/lob/framework/claude-agents-sdk)
- [Codex](https://composio.dev/toolkits/lob/framework/codex)
- [OpenClaw](https://composio.dev/toolkits/lob/framework/openclaw)
- [Hermes](https://composio.dev/toolkits/lob/framework/hermes-agent)
- [Atomic Agent](https://composio.dev/toolkits/lob/framework/atomic-agent)
- [Google ADK](https://composio.dev/toolkits/lob/framework/google-adk)
- [LangChain](https://composio.dev/toolkits/lob/framework/langchain)
- [Vercel AI SDK](https://composio.dev/toolkits/lob/framework/ai-sdk)
- [Mastra AI](https://composio.dev/toolkits/lob/framework/mastra-ai)
- [LlamaIndex](https://composio.dev/toolkits/lob/framework/llama-index)
- [CrewAI](https://composio.dev/toolkits/lob/framework/crew-ai)
- [Pydantic AI](https://composio.dev/toolkits/lob/framework/pydantic-ai)
- [AutoGen](https://composio.dev/toolkits/lob/framework/autogen)

## TL;DR

- Only one MCP URL to connect multiple apps with Claude Code with zero auth hassles.
- Programmatic tool calling allows LLMs to write its code in a remote workbench to handle complex tool chaining. Reduces to-and-fro with LLMs for frequent tool calling.
- Handling Large tool responses out of LLM context to minimize context rot.
- Dynamic just-in-time access to 20,000 tools across 1500+ other Apps for cross-app workflows. It loads the tools you need, so LLMs aren't overwhelmed by tools you don't need.

## Connect Lob to Claude Code

### Connecting Lob to Claude Code using Composio
1. Add the Composio MCP to Claude

```bash
claude mcp add --scope user --transport http composio https://connect.composio.dev/mcp
```

## What is Claude Code?

Claude Code is Anthropic's command line developer tool that lets you use Claude directly inside your terminal. Instead of switching between your editor, browser, and chat, you can stay in your project folder and ask Claude to help you build, debug, refactor, and understand code right where you're working.
Key features include:
- Terminal-Native Experience: Work with Claude directly in your command line without switching contexts
- MCP Support: Built-in support for Model Context Protocol servers to extend Claude's capabilities
- Project Context: Claude understands your project structure and can read, write, and modify files
- Interactive Development: Ask questions, debug code, and get help in real-time while coding
- Multi-Platform: Works on macOS, Linux, WSL, and Windows

## What is the Lob MCP server, and what's possible with it?

The Lob MCP server is an implementation of the Model Context Protocol that connects your AI agent and assistants like Claude, Cursor, etc directly to your Lob account. It provides structured and secure access to your custom domains, shortened links, and identity validation tools, so your agent can create links, manage domains, review link records, and validate whether a name is associated with an address on your behalf.
- Custom domain creation: Have your agent add a custom domain for creating branded shortened links.
- Domain review and cleanup: Let the agent list your registered domains, retrieve details for a specific domain, or delete one you no longer use.
- Shortened link creation: Direct your agent to turn a long web address into a shortened Lob link.
- Link lookup and review: Instruct your agent to list existing shortened links or retrieve the details of a specific link.
- Name and address validation: Have your agent check whether a given person's name is associated with a supplied address.

## Supported Tools

| Tool slug | Name | Description |
|---|---|---|
| `LOB_CREATE_DOMAIN` | Create Domain | Tool to add a new custom domain for creating custom links. Use when you need to register a domain for short link customization. |
| `LOB_CREATE_LINK` | Create Link | Tool to create a shortened URL from a long URL using Lob's link shortening service. Use when you need to shorten a long URL either by using a custom domain or Lob's own short domain. |
| `LOB_DELETE_DOMAIN` | Delete Domain | Tool to delete a registered domain. Use only after confirming all associated links with the domain are deleted. |
| `LOB_DELETE_LINK` | Delete Link | Tool to delete a shortened link. Use when you need to remove a previously created short link from the system. |
| `LOB_DELETE_UPLOAD` | Delete Upload | Tool to delete an existing upload by its unique identifier. Use when you need to permanently remove an upload and its associated data. |
| `LOB_GET_DOMAIN` | Get Domain | Tool to retrieve details for a single domain from Lob. Use when you need to get configuration status, redirect links, or other metadata for a specific domain. |
| `LOB_GET_LINK` | Get Link | Tool to retrieve a single shortened link. Use when you need to fetch details about a specific link by its ID. |
| `LOB_LIST_DOMAINS` | List Domains | Tool to retrieve a list of all created domains. Use when you need to view or manage custom domains configured for URL shortening. Supports pagination and filtering by configuration status. |
| `LOB_LIST_LINKS` | List Shortened Links | Tool to retrieve a list of shortened links. The list is sorted by creation date, with the most recently created appearing first. Use when you need to view all links or filter by campaign or domain. |
| `LOB_LIST_QR_CODE_ANALYTICS` | List QR Code Analytics | Tool to retrieve a list of your QR codes and their analytics data. The QR codes are returned sorted by scan date, with the most recently scanned QR codes appearing first. |
| `LOB_LIST_UPLOADS` | List Uploads | Tool to list uploads from Lob. Use when you need to retrieve all uploads or filter uploads by campaign ID. |
| `LOB_UPDATE_LINK` | Update Link | Tool to update any properties of a shortened link. Use when you need to modify the redirect URL, title, or metadata of an existing Lob shortened link. Requires the link_id and at least the redirect_link to update. |
| `LOB_VALIDATE_IDENTITY` | Validate Identity | Tool to validate whether a given name is associated with an address. Use when you need to verify identity information by checking if a recipient name matches address records. |

## Supported Triggers

None listed.

## Creating MCP Server - Stand-alone vs Composio SDK

The Lob MCP server is an implementation of the Model Context Protocol that connects Claude Code (and other AI assistants like Claude and Cursor) directly to your Lob account. It provides structured and secure access so Claude can perform Lob operations on your behalf.
With Composio's managed implementation, you don't have to create your own developer app. For production, if you're building an end product, we recommend using your own credentials. The managed server helps you prototype fast and go from 0-1 faster.

## Step-by-step Guide

### 1. Prerequisites

Before starting, make sure you have:
- Claude Pro, Max, or API billing enabled Anthropic account
- Composio API Key
- A Lob account
- Basic knowledge of Python or TypeScript

### 1. Install Claude Code

To install Claude Code, use one of the following methods based on your operating system:
```bash
# macOS, Linux, WSL
curl -fsSL https://claude.ai/install.sh | bash

# Windows PowerShell
irm https://claude.ai/install.ps1 | iex

# Windows CMD
curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd
```

### 2. Set up Claude Code

Open a terminal, go to your project folder, and start Claude Code:
- Claude Code will open in your terminal
- Follow the prompts to sign in with your Anthropic account
- Complete the authentication flow
- Once authenticated, you can start using Claude Code
```bash
cd your-project-folder
claude
```

### 3. Set up environment variables

Create a .env file in your project root with the following variables:
- COMPOSIO_API_KEY authenticates with Composio (get it from [Composio dashboard](https://dashboard.composio.dev/login?utm_source=toolkits&utm_medium=framework_template&utm_campaign=claude-code&utm_content=api_key&next=%2F~%2Forg%2Fconnect%2Fclients%2Fclaude-code))
- USER_ID identifies the user for session management (use any unique identifier)
```bash
COMPOSIO_API_KEY=your_composio_api_key_here
USER_ID=your_user_id_here
```

### 4. Install Composio library

No description provided.
```python
pip install composio-core python-dotenv
```

```typescript
npm install @composio/core dotenv
```

### 5. Generate Composio MCP URL

No description provided.
```python
import os
from composio import Composio
from dotenv import load_dotenv

load_dotenv()

COMPOSIO_API_KEY = os.getenv("COMPOSIO_API_KEY")
USER_ID = os.getenv("USER_ID")

composio_client = Composio(api_key=COMPOSIO_API_KEY)

composio_session = composio_client.create(
    user_id=USER_ID,
    toolkits=["lob"],
)

COMPOSIO_MCP_URL = composio_session.mcp.url

print(f"MCP URL: {COMPOSIO_MCP_URL}")
print(f"\nUse this command to add to Claude Code:")
print(f'claude mcp add --transport http lob-composio "{COMPOSIO_MCP_URL}" --headers "X-API-Key:{COMPOSIO_API_KEY}"')
```

```typescript
import 'dotenv/config';
import { Composio } from '@composio/core';

const { COMPOSIO_API_KEY, USER_ID } = process.env;

if (!COMPOSIO_API_KEY || !USER_ID) {
  throw new Error('COMPOSIO_API_KEY and USER_ID required in .env');
}

const composioClient = new Composio({ apiKey: COMPOSIO_API_KEY });

const composioSession = await composioClient.create(USER_ID, {
  toolkits: ['lob'],
});

const composioMcpUrl = composioSession?.mcp.url;

console.log(`MCP URL: ${composioMcpUrl}`);
console.log(`\nUse this command to add to Claude Code:`);
console.log(`claude mcp add --transport http lob-composio "${composioMcpUrl}" --headers "X-API-Key:${COMPOSIO_API_KEY}"`);
```

### 6. Run the script and copy the MCP URL

No description provided.
```python
python generate_mcp_url.py
```

```typescript
node --loader ts-node/esm generate_mcp_url.ts
# or if using tsx
tsx generate_mcp_url.ts
```

### 7. Add Lob MCP to Claude Code

In your terminal, add the MCP server using the command from the previous step. The command format is:
- claude mcp add registers a new MCP server with Claude Code
- --transport http specifies that this is an HTTP-based MCP server
- The server name (lob-composio) is how you'll reference it
- The URL points to your Composio Tool Router session
- --headers includes your Composio API key for authentication
After running the command, close the current Claude Code session and start a new one for the changes to take effect.
```bash
claude mcp add --transport http lob-composio "YOUR_MCP_URL_HERE" --headers "X-API-Key:YOUR_COMPOSIO_API_KEY"

# Then restart Claude Code
exit
claude
```

### 8. Verify the installation

Check that your Lob MCP server is properly configured.
- This command lists all MCP servers registered with Claude Code
- You should see your lob-composio entry in the list
- This confirms that Claude Code can now access Lob tools
If everything is wired up, you should see your lob-composio entry listed:
```bash
claude mcp list
```

### 9. Authenticate Lob

The first time you try to use Lob tools, you'll be prompted to authenticate.
- Claude Code will detect that you need to authenticate with Lob
- It will show you an authentication link
- Open the link in your browser (or copy/paste it)
- Complete the Lob authorization flow
- Return to the terminal and start using Lob through Claude Code
Once authenticated, you can ask Claude Code to perform Lob operations in natural language. For example:
- "Send a postcard to a verified address"
- "Validate this list of mailing addresses"
- "Track delivery status for recent letters"

## Complete Code

```python
import os
from composio import Composio
from dotenv import load_dotenv

load_dotenv()

COMPOSIO_API_KEY = os.getenv("COMPOSIO_API_KEY")
USER_ID = os.getenv("USER_ID")

composio_client = Composio(api_key=COMPOSIO_API_KEY)

composio_session = composio_client.create(
    user_id=USER_ID,
    toolkits=["lob"],
)

COMPOSIO_MCP_URL = composio_session.mcp.url

print(f"MCP URL: {COMPOSIO_MCP_URL}")
print(f"\nUse this command to add to Claude Code:")
print(f'claude mcp add --transport http lob-composio "{COMPOSIO_MCP_URL}" --headers "X-API-Key:{COMPOSIO_API_KEY}"')
```

```typescript
import 'dotenv/config';
import { Composio } from '@composio/core';

const { COMPOSIO_API_KEY, USER_ID } = process.env;

if (!COMPOSIO_API_KEY || !USER_ID) {
  throw new Error('COMPOSIO_API_KEY and USER_ID required in .env');
}

const composioClient = new Composio({ apiKey: COMPOSIO_API_KEY });

const composioSession = await composioClient.create(USER_ID, {
  toolkits: ['lob'],
});

const composioMcpUrl = composioSession?.mcp.url;

console.log(`MCP URL: ${composioMcpUrl}`);
console.log(`\nUse this command to add to Claude Code:`);
console.log(`claude mcp add --transport http lob-composio "${composioMcpUrl}" --headers "X-API-Key:${COMPOSIO_API_KEY}"`);
```

## Conclusion

You've successfully integrated Lob with Claude Code using Composio's MCP server. Now you can interact with Lob directly from your terminal using natural language commands.
Key features of this setup:
- Terminal-native experience without switching contexts
- Natural language commands for Lob operations
- Secure authentication through Composio's managed MCP
- Tool Router for dynamic tool discovery and execution
Next steps:
- Try asking Claude Code to perform various Lob operations
- Add more toolkits to your Tool Router session for multi-app workflows
- Integrate this setup into your development workflow for increased productivity
You can extend this by adding more toolkits, implementing custom workflows, or building automation scripts that leverage Claude Code's capabilities.

## How to build Lob MCP Agent with another framework

- [Claude Cowork](https://composio.dev/toolkits/lob/framework/claude-cowork)
- [OpenAI Agents SDK](https://composio.dev/toolkits/lob/framework/open-ai-agents-sdk)
- [Claude Agent SDK](https://composio.dev/toolkits/lob/framework/claude-agents-sdk)
- [Codex](https://composio.dev/toolkits/lob/framework/codex)
- [OpenClaw](https://composio.dev/toolkits/lob/framework/openclaw)
- [Hermes](https://composio.dev/toolkits/lob/framework/hermes-agent)
- [Atomic Agent](https://composio.dev/toolkits/lob/framework/atomic-agent)
- [Google ADK](https://composio.dev/toolkits/lob/framework/google-adk)
- [LangChain](https://composio.dev/toolkits/lob/framework/langchain)
- [Vercel AI SDK](https://composio.dev/toolkits/lob/framework/ai-sdk)
- [Mastra AI](https://composio.dev/toolkits/lob/framework/mastra-ai)
- [LlamaIndex](https://composio.dev/toolkits/lob/framework/llama-index)
- [CrewAI](https://composio.dev/toolkits/lob/framework/crew-ai)
- [Pydantic AI](https://composio.dev/toolkits/lob/framework/pydantic-ai)
- [AutoGen](https://composio.dev/toolkits/lob/framework/autogen)

## Related Toolkits

- [Google Sheets](https://composio.dev/toolkits/googlesheets) - Google Sheets is a cloud-based spreadsheet tool for real-time collaboration and data analysis. It lets teams work together from anywhere, updating information instantly.
- [Notion](https://composio.dev/toolkits/notion) - Notion is a collaborative workspace for notes, docs, wikis, and tasks. It streamlines team knowledge, project tracking, and workflow customization in one place.
- [Airtable](https://composio.dev/toolkits/airtable) - Airtable combines the flexibility of spreadsheets with the power of a database for easy project and data management. Teams use Airtable to organize, track, and collaborate with custom views and automations.
- [Asana](https://composio.dev/toolkits/asana) - Asana is a collaborative work management platform for teams to organize and track projects. It streamlines teamwork, boosts productivity, and keeps everyone aligned on goals.
- [Google Tasks](https://composio.dev/toolkits/googletasks) - Google Tasks is a to-do list and task management tool integrated into Gmail and Google Calendar. It helps you organize, track, and complete tasks across your Google ecosystem.
- [Linear](https://composio.dev/toolkits/linear) - Linear is a modern issue tracking and project planning tool for fast-moving teams. It helps streamline workflows, organize projects, and boost productivity.
- [Jira](https://composio.dev/toolkits/jira) - Jira is Atlassian’s platform for bug tracking, issue tracking, and agile project management. It helps teams organize work, prioritize tasks, and deliver projects efficiently.
- [Clickup](https://composio.dev/toolkits/clickup) - ClickUp is an all-in-one productivity platform for managing tasks, docs, goals, and team collaboration. It streamlines project workflows so teams can work smarter and stay organized in one place.
- [Monday](https://composio.dev/toolkits/monday) - Monday.com is a customizable work management platform for project planning and collaboration. It helps teams organize tasks, automate workflows, and track progress in real time.
- [Addressfinder](https://composio.dev/toolkits/addressfinder) - Addressfinder is a data quality platform for verifying addresses, emails, and phone numbers. It helps you ensure accurate customer and contact data every time.
- [Agiled](https://composio.dev/toolkits/agiled) - Agiled is an all-in-one business management platform for CRM, projects, and finance. It helps you streamline workflows, consolidate client data, and manage business processes in one place.
- [AirOps MCP](https://composio.dev/toolkits/airops_mcp) - AirOps MCP is AirOps' managed content platform exposing brand context, knowledge bases, and workflows. Use it to give agents brand-aware content, automate content workflows, and track Brand Kit edits.
- [Amazing Marvin](https://composio.dev/toolkits/amazing_marvin) - Amazing Marvin is a personal productivity app for tasks, projects, habits, planning, time tracking, and rewards. It helps you build a flexible workflow that matches how you actually work.
- [AnyDB](https://composio.dev/toolkits/any_db) - AnyDB is a flexible collaborative database platform for organizing records, files, and automated workflows. It helps teams centralize data, collaborate on records, and automate routine tasks.
- [ApptiveGrid](https://composio.dev/toolkits/apptivegrid) - ApptiveGrid is a collaborative no-code database and app platform for spaces, grids, forms, and structured records. It helps teams organize operational data, collect inputs, and build lightweight business apps without custom backend work.
- [Ascora](https://composio.dev/toolkits/ascora) - Ascora is a cloud-based field service management platform for service businesses. It streamlines scheduling, invoicing, and customer operations in one place.
- [Atlassian MCP](https://composio.dev/toolkits/atlassian_mcp) - Atlassian Rovo MCP connects agents to Jira, Jira Service Management, Confluence, Bitbucket, Compass, and Teamwork Graph workflows. It lets teams surface and act on Atlassian data while respecting existing user permissions.
- [Basecamp](https://composio.dev/toolkits/basecamp) - Basecamp is a project management and team collaboration tool by 37signals. It helps teams organize tasks, share files, and communicate efficiently in one place.
- [Beeminder](https://composio.dev/toolkits/beeminder) - Beeminder is an online goal-tracking platform that uses monetary pledges to keep you motivated. Stay accountable and hit your targets with real financial incentives.
- [Boxhero](https://composio.dev/toolkits/boxhero) - Boxhero is a cloud-based inventory management platform for SMBs, offering real-time updates, barcode scanning, and team collaboration. It helps businesses streamline stock tracking and analytics for smarter inventory decisions.

## Frequently Asked Questions

### What are the differences in Tool Router MCP and Lob MCP?

With a standalone Lob MCP server, the agents and LLMs can only access a fixed set of Lob tools tied to that server. However, with the Composio Tool Router, agents can dynamically load tools from Lob and many other apps based on the task at hand, all through a single MCP endpoint.

### Can I use Tool Router MCP with Claude Code?

Yes, you can. Claude Code fully supports MCP integration. You get structured tool calling, message history handling, and model orchestration while Tool Router takes care of discovering and serving the right Lob tools.

### Can I manage the permissions and scopes for Lob while using Tool Router?

Yes, absolutely. You can configure which Lob scopes and actions are allowed when connecting your account to Composio. You can also bring your own OAuth credentials or API configuration so you keep full control over what the agent can do.

### How safe is my data with Composio Tool Router?

All sensitive data such as tokens, keys, and configuration is fully encrypted at rest and in transit. Composio is SOC 2 Type 2 compliant and follows strict security practices so your Lob data and credentials are handled as safely as possible.

---
[See all toolkits](https://composio.dev/toolkits) · [Composio docs](https://docs.composio.dev/llms.txt)
