LangChain + Nextmail
An inboxfor LangChain.
Agents built with LangChain read, reply and send from the addresses you approve. They load the Nextmail tools over MCP, with a sign-in you give once.
import asyncio from langchain.agents import create_agentfrom langchain.mcp import MCPAdapter SERVERS = { "mcpServers": { "nextmail": {"command": "npx", "args": ["-y", "@nextmail/cli", "mcp", "serve"]} }}TOOLS = {"whoAmI", "listThreads", "getThread"} async def main(): async with MCPAdapter(SERVERS) as adapter: tools = [tool for tool in await adapter.list_tools() if tool.name in TOOLS] agent = create_agent("claude-sonnet-5", tools) result = await agent.ainvoke( {"messages": [{"role": "user", "content": "Summarise my unread mail."}]} ) print(result["messages"][-1].text) asyncio.run(main())LangChain's MCP adapter starts the local bridge and hands the agent only the tools it needs. The guide also covers TypeScript.
Three steps.
Then it works on its own.
- 01
Install the adapter
Run pip install "langchain[mcp]>=1.4" langchain-anthropic in your project.
- 02
Sign in once
Run npx @nextmail/cli login and approve in your browser what the agent may reach. On a server, add --no-browser and paste the code back.
- 03
Load the tools
LangChain starts the bridge, npx -y @nextmail/cli mcp serve, and gets the tools your approval allows. Hand the agent only the ones it needs.
Tasks for your LangChain agent.
In plain words.
Each prompt shows the tools it is likely to call.
Summarise my unread mail at [email protected] and draft replies. Don't send them yet.
- listThreads
- getThread
- createDraft
Answer Ada's refund question in her thread, then file it under refunds.
- getThread
- replyToEmail
- modifyLabels
Find the invoice Jonas sent last month and sum up the thread.
- listThreads
- getThreadSummary
Add Noor Haddad to my contacts and to the Beta audience.
- createContact
- addContactToAudience
You approve it.
Like any other app.
When the client signs in, you pick the workspace, what it may do, which addresses it reaches and for how long. Account → Connected apps changes or removes it later.
- Your role is the ceiling
- An app never holds a permission you lack, and when your role loses one, the app loses it on its next call.
- Some things are never granted
- No app can create or rotate API keys, open billing or manage the workspace, whatever you tick.
- Risky changes wait for you
- Adding a webhook, writing a rule, changing roles or removing a domain needs your verification code, or a 60-minute allowance you switch on for that app.
Asked first.
Answered plainly.
More frameworks and tools.
Same server, your stack.
Give it an address.
Watch it work.
MCP, the API and the command line come with every plan, the free one included. Connect a client and approve exactly what it reaches.
claude mcp add --transport http nextmail https://api.nextmail.sh/mcp
Google Workspace