vercel-mcp-python

amitpuri/vercel-mcp-python

3.2

If you are the rightful owner of vercel-mcp-python and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.

This document provides a comprehensive overview of a Model Context Protocol (MCP) server designed to run on Vercel's serverless platform using Python and FastMCP.

Tools
4
Resources
0
Prompts
0

AI Generated

Vercel MCP Python Server

A Model Context Protocol (MCP) server built with Python and FastMCP, designed to run on Vercel's serverless platform.

Project Structure

vercel-mcp-python/
โ”œโ”€โ”€ api/
โ”‚   โ””โ”€โ”€ index.py          # Main Vercel function
โ”œโ”€โ”€ src/
โ”‚   โ””โ”€โ”€ mcp_server.py     # Your MCP server logic
โ”œโ”€โ”€ client-app/           # Interactive MCP client
โ”‚   โ”œโ”€โ”€ mcp_client.py     # Rich client application
โ”‚   โ”œโ”€โ”€ requirements.txt  # Client dependencies
โ”‚   โ”œโ”€โ”€ setup.py          # Setup script
โ”‚   โ”œโ”€โ”€ README.md         # Client documentation
โ”‚   โ””โ”€โ”€ run_client.bat    # Windows launcher
โ”œโ”€โ”€ requirements.txt       # Server dependencies
โ”œโ”€โ”€ vercel.json           # Vercel configuration
โ””โ”€โ”€ README.md

Features

This MCP server provides the following tools:

  • echo: Echo back a provided message
  • get_time: Get the current server time
  • add_numbers: Add two numbers together
  • get_weather_info: Get mock weather information for a location

And the following resources:

  • config://server: Server configuration information

Prerequisites

Before setting up the project, you'll need to install the Vercel CLI:

Installing Vercel CLI

For Git Bash on Windows:

  1. Install Node.js (if not already installed):

  2. Install Vercel CLI globally:

    npm install -g vercel
    
  3. Verify installation:

    vercel --version
    

If you encounter PATH issues:

# Find npm global directory
npm config get prefix

# Add to PATH (add this to your ~/.bashrc)
export PATH=$PATH:$(npm bin -g)
source ~/.bashrc

Alternative methods:

# Using npx (no global installation)
npx vercel

# Using yarn
yarn global add vercel

Setup

  1. Create and activate virtual environment (Recommended):

    # Create virtual environment
    python -m venv venv
    
    # Activate virtual environment
    # On Windows PowerShell:
    .\venv\Scripts\Activate.ps1
    
    # On Windows Git Bash:
    source venv/Scripts/activate
    
    # On macOS/Linux:
    source venv/bin/activate
    
  2. Install dependencies:

    pip install -r requirements.txt
    
  3. Login to Vercel:

    vercel login
    
  4. Deploy to Vercel:

    vercel --prod
    

Local Development

To test locally, you can use Vercel's development server:

vercel dev

Troubleshooting Windows Issues

Note: Local development with vercel dev may have issues on Windows due to runtime initialization errors. This is a known limitation and doesn't affect production deployment.

If you encounter issues with vercel dev:

Solution 1: Deploy directly (Recommended)

vercel --prod

Your server will be available at the provided Vercel URL and works perfectly in production.

Solution 2: Test locally with Python (in virtual environment)

# Activate virtual environment first
.\venv\Scripts\Activate.ps1  # Windows PowerShell
# or
source venv/Scripts/activate  # Windows Git Bash

# Test MCP server functionality
python -c "
import sys, os
sys.path.append('src')
from mcp_server import mcp
import json

# Test echo tool
request = {
    'jsonrpc': '2.0',
    'id': 1,
    'method': 'tools/call',
    'params': {'name': 'echo', 'arguments': {'message': 'Hello from venv!'}}
}
response = mcp.handle_request(request)
print(json.dumps(response, indent=2))
"

Solution 3: Use the deployed version Your server will be available at your Vercel domain after deployment.

You can test it by:

  1. Opening the URL in your browser
  2. Using a tool like Postman or curl
  3. Connecting with an MCP client

Solution 4: Run as Administrator (if needed)

  1. Close your terminal
  2. Right-click on Git Bash/PowerShell and select "Run as administrator"
  3. Navigate back to your project: cd /d/repos/vercel-mcp-python
  4. Try vercel dev again

API Endpoints

  • GET /: Returns server information and status
  • POST /: Handles MCP protocol requests
  • OPTIONS /: Handles CORS preflight requests

Dependencies

  • fastmcp>=0.15.0: FastMCP framework for building MCP servers
  • uvicorn>=0.24.0: ASGI server for Python web applications
  • python-json-logger>=2.0.0: JSON logging for Python applications

Configuration

The server is configured through vercel.json with:

  • Python runtime using @vercel/python
  • 30-second maximum execution time
  • CORS enabled for cross-origin requests
  • Automatic routing to the main handler

Usage

Once deployed, your MCP server will be available at your Vercel domain. You can connect to it using any MCP-compatible client.

Using the Included Client App

A rich, interactive client application is included in the client-app/ directory:

# Navigate to client directory
cd client-app

# Setup (first time only)
python setup.py

# Configure environment (optional)
cp .env.example .env
# Edit .env to customize server URL and settings

# Run the client
python mcp_client.py

The client provides:

  • ๐Ÿ”Œ Connection testing
  • ๐Ÿ”ง Interactive tool calling
  • ๐Ÿ“š Resource management
  • ๐Ÿงช Automated testing of all tools
  • ๐ŸŽจ Beautiful console interface

See client-app/README.md for detailed usage instructions.

Additional Resources

License

MIT