Skip to main content

PassportMCP Python SDK

PassportMCP (ppmcp) lets you build MCP servers for any given website with automatic browser auth syncing. Every website is fair game. It wraps FastMCP and automatically adds necessary auth headers and cookies from the browser to outbound requests. As long as you log in through the browser, it's ready to be used. Often easier than paying for developer APIs (ex: twitter/X), avoiding rate limits, waiting for approval, or great for sites that don't have one.

Features

  • Automatic browser auth syncing (for any auth type)
  • Normal MCP tool creation
  • Works with any website
  • Always uses latest auth state
  • All credentials stay on your machine

Quick Start

  1. Install the Package
pip install ppmcp
  1. Set Up Native Messaging and Auth Syncing
ppmcp setup  # Sets up with Chrome Web Store extension
  1. Enable Request Monitoring

    • Click the PassportMCP extension icon in Chrome
    • Toggle "Monitor Requests" on
    • Visit and log into your target website
  2. Create Your First MCP Tool

from passportmcp import PassportMCP

# Create an MCP instance
mcp = PassportMCP("example", "example.com")

# Define a tool
@mcp.tool()
async def get_data():
    response = mcp.client.get("https://example.com/api/data")
    return response.json()

Installation Options

pip install ppmcp
ppmcp setup

Option 2: Local Development

  1. Build the Extension
git clone https://github.com/joshmayerr/passport-mcp.git
cd extension
npm install
npm run build  # or npm run dev for watch mode
  1. Load in Chrome

    • Open Chrome and go to chrome://extensions
    • Enable "Developer mode" in the top right
    • Click "Load unpacked" and select the extension/dist directory
    • Note the extension ID from Chrome (shown under the extension name)
  2. Set Up Native Messaging

ppmcp setup --local --extension-id=your_extension_id
# OR
ppmcp setup --local  # You'll be prompted for the ID

CLI Commands

  • ppmcp setup - Set up native messaging
  • ppmcp doctor - Check installation status
  • ppmcp uninstall - Remove PassportMCP

How It Works

PassportMCP consists of three main components:

  1. Chrome Extension

    • Monitors web requests
    • Captures authentication state
    • Sends to native host
  2. Native Host

    • Receives data from extension
    • Stores authentication state
    • Provides data to SDK
  3. SDK

    • PassportMCP: High-level MCP tool creation
    • BrowserPassport: Low-level auth handling

Advanced Example: LinkedIn API

from passportmcp import PassportMCP

mcp = PassportMCP("linkedin", "linkedin.com")

@mcp.tool()
async def search_linkedin(query: str):
    response = mcp.client.get(
        "https://www.linkedin.com/voyager/api/graphql",
        params={
            "includeWebMetadata": "true",
            "variables": "()",
            "queryId": "voyagerDashMySettings.7ea6de345b41dfb57b660a9a4bebe1b8"
        }
    )
    return response.json()

Security

  • ✅ Credentials never leave your machine
  • ✅ No cloud storage or transmission
  • ✅ Limited to authorized domains
  • ✅ LLMs never see your credentials

Unlike services like Anon and Rabbit that automate accounts in the cloud, PassportMCP keeps everything local.

Development

For SDK development:

cd sdks/python
pip install -e .

Roadmap

  • TypeScript SDK
  • Firefox extension
  • Safari extension
  • Auth state sharing
  • Enterprise features
  • More language SDKs

License

MIT License - see LICENSE for details

Metadata

Release files for iflow-mcp-joshmayerr-passport-mcp 0.1.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for iflow-mcp-joshmayerr-passport-mcp 0.1.5
File Size Uploaded
iflow_mcp_joshmayerr_passport_mcp-0.1.5.tar.gz 9.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for iflow-mcp-joshmayerr-passport-mcp 0.1.5
File Interpreter ABI Platform
iflow_mcp_joshmayerr_passport_mcp-0.1.5-py3-none-any.whl Python 3 none any Details

Total release size: 22.4 kB

Release files / iflow_mcp_joshmayerr_passport_mcp-0.1.5.tar.gz

Download URL iflow_mcp_joshmayerr_passport_mcp-0.1.5.tar.gz
Size 9.9 kB
Tags Source
SHA-256 checksum
How to use checksums
8426bc3a388c2aac4aa1a5d4f5005587b38696c5463dd732ac5ed2002873d963
BLAKE2b-256 checksum
How to use checksums
e6b73df4201a245bc87e6734dba148c28c9aa845d1189610b17c3287bad7a547
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.14

Release files / iflow_mcp_joshmayerr_passport_mcp-0.1.5-py3-none-any.whl

Download URL iflow_mcp_joshmayerr_passport_mcp-0.1.5-py3-none-any.whl
Size 12.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a6a3b49d97849a4d352761bc3ffd3f05f7830046277405b4984731712b7bcc91
BLAKE2b-256 checksum
How to use checksums
0330a3c8ef08e62215ddaf66f8fbf9fcad504f87ab2ece33f206fe16e33c387f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.14

Release history Release notifications | RSS feed

This release

0.1.5 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page