OpenAI Agents SDK + Nextmail
An inboxfor OpenAI Agents SDK.
Agents built with OpenAI Agents SDK 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 agents import Agent, Runnerfrom agents.mcp import MCPServerStdio, create_static_tool_filter async def main(): async with MCPServerStdio( name="Nextmail", params={"command": "npx", "args": ["-y", "@nextmail/cli", "mcp", "serve"]}, client_session_timeout_seconds=30, tool_filter=create_static_tool_filter( allowed_tool_names=["whoAmI", "listThreads", "getThread"] ), ) as server: agent = Agent( name="Inbox assistant", instructions="Read the mailbox with the Nextmail tools. Never send anything.", mcp_servers=[server], ) result = await Runner.run(agent, "Summarise my unread mail.") print(result.final_output) asyncio.run(main())The agent starts the local bridge as an MCP server, with a filter on its tools. The guide also covers TypeScript.
Three steps.
Then it works on its own.
- 01
Install the adapter
Run pip install openai-agents 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
OpenAI Agents SDK starts the bridge, npx -y @nextmail/cli mcp serve, and gets the tools your approval allows. Hand the agent only the ones it needs.
What your OpenAI Agents SDK agent can do with it.
Through one connection.
$ nextmail temp newTasks for your OpenAI Agents SDK 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