HMM / browser-use-main /examples /mcp /advanced_client.py
Speedofmastery's picture
Merge Landrun + Browser-Use + Chromium with AI agent support (without binary files)
d7b3d84
"""
Advanced example: Using multiple MCP servers together.
This example demonstrates how to:
1. Connect multiple MCP servers (Gmail + Filesystem) to browser-use
2. Sign up for a new account on a website
3. Save registration details to a file
4. Retrieve the verification link from Gmail
5. Complete the verification process
"""
import asyncio
import os
from browser_use import Agent, Tools
from browser_use.llm.openai.chat import ChatOpenAI
from browser_use.mcp.client import MCPClient
async def main():
"""Sign up for account, save details, and verify via Gmail."""
# Initialize tools
tools = Tools()
# Connect to Gmail MCP Server
# Requires Gmail API credentials - see: https://github.com/GongRzhe/Gmail-MCP-Server#setup
gmail_env = {}
if client_id := os.getenv('GMAIL_CLIENT_ID'):
gmail_env['GMAIL_CLIENT_ID'] = client_id
if client_secret := os.getenv('GMAIL_CLIENT_SECRET'):
gmail_env['GMAIL_CLIENT_SECRET'] = client_secret
if refresh_token := os.getenv('GMAIL_REFRESH_TOKEN'):
gmail_env['GMAIL_REFRESH_TOKEN'] = refresh_token
gmail_client = MCPClient(server_name='gmail', command='npx', args=['gmail-mcp-server'], env=gmail_env)
# Connect to Filesystem MCP Server for saving registration details
filesystem_client = MCPClient(
server_name='filesystem',
command='npx',
args=['-y', '@modelcontextprotocol/server-filesystem', os.path.expanduser('~/Desktop')],
)
# Connect and register tools from both servers
print('Connecting to Gmail MCP server...')
await gmail_client.connect()
await gmail_client.register_to_tools(tools)
print('Connecting to Filesystem MCP server...')
await filesystem_client.connect()
await filesystem_client.register_to_tools(tools)
# Create agent with extended system prompt for using multiple MCP servers
agent = Agent(
task='Sign up for a new Anthropic account using the email example@gmail.com, save the registration details to a file',
llm=ChatOpenAI(model='gpt-4.1-mini'),
tools=tools,
extend_system_message="""
You have access to both Gmail and Filesystem tools through MCP servers. When signing up for accounts:
1. Fill out registration forms with the provided email address
2. Use the filesystem tools to create a file called 'anthropic_registration.txt' on the Desktop containing:
- Email used for registration
- Timestamp of registration
- Any username or account details
3. After submitting the registration, use the Gmail MCP tools to check for verification emails
4. Search for recent emails (within the last 5 minutes) from the service you're signing up for
5. Look for verification links or codes in those emails
6. Append the verification details to the registration file
7. Use any verification links or codes found to complete the account setup
8. Update the file with the final account status
Available tools include:
Gmail tools:
- search_emails: Search for emails by query (e.g., "from:noreply@anthropic.com")
- get_email: Get full email content by ID
- list_emails: List recent emails
Filesystem tools:
- read_file: Read content from a file
- write_file: Write content to a file
- list_directory: List files in a directory
Always wait a few seconds after submitting a form before checking Gmail to allow the email to arrive.
""",
)
# Run the agent
result = await agent.run()
print('\nTask completed!')
print(f'Result: {result}')
# Disconnect both MCP clients
await gmail_client.disconnect()
await filesystem_client.disconnect()
if __name__ == '__main__':
# Prerequisites:
# 1. Install both MCP servers:
# npm install -g gmail-mcp-server
# npm install -g @modelcontextprotocol/server-filesystem
# 2. Set up Gmail API credentials following: https://github.com/GongRzhe/Gmail-MCP-Server#setup
# 3. Set these environment variables:
# export GMAIL_CLIENT_ID="your-client-id"
# export GMAIL_CLIENT_SECRET="your-client-secret"
# export GMAIL_REFRESH_TOKEN="your-refresh-token"
asyncio.run(main())