Skip to main content
Glama
Komplex23
by Komplex23

MCP Web Search Server

A Model Context Protocol (MCP) server that provides web search capabilities, deployable on Render.

Built with Python using the official MCP SDK, supporting SSE (Server-Sent Events) and Streamable HTTP transports for AIPI.

Tools exposed

Tool

Description

web_search

Search the web. Returns titles, URLs, and descriptions.

fetch_page

Fetch and extract text content from any URL.


๐Ÿš€ Deploy to Render (step-by-step)

1. Push this repo to GitHub

cd mcp-web-search
git init
git add .
git commit -m "Initial commit"
# create a repo on github.com, then:
git remote add origin https://github.com/YOUR_USERNAME/mcp-web-search.git
git push -u origin main

2. Create a new Web Service on Render

  1. Go to render.com โ†’ New โ†’ Web Service

  2. Connect your GitHub repo (mcp-web-search)

  3. Render will auto-detect render.yaml โ€” click Apply

  4. Set environment variables in the Render dashboard:

Variable

Required

Description

SERPER_API_KEY

Recommended

Get free at serper.dev โ€” 2,500 queries/month free (Google results)

MCP_API_KEY

Optional

Set to any secret string to password-protect your server

  1. Click Create Web Service โ€” Render will build and deploy automatically.

Your server URL will be: https://mcp-web-search.onrender.com (or similar)


๐Ÿ”Œ Connect to AIPI

In AIPI's Add Custom MCP screen, use this flat configuration (no wrapper object):

SSE:

{
  "url": "https://mcp-web-search-j73g.onrender.com/sse",
  "name": "web-search",
  "type": "sse"
}

Streamable HTTP:

{
  "url": "https://mcp-web-search-j73g.onrender.com/mcp",
  "name": "web-search",
  "type": "streamable"
}

Replace the host with your actual Render service URL if different. AIPI uses a flat url / name / type object โ€” it does not use a mcpServers wrapper.


๐Ÿ” Search Providers

Provider

Key required

Quality

Limit

Serper.dev

Yes (free)

โญโญโญโญโญ

2,500 queries/month free (Google results)

DuckDuckGo

No

โญโญโญ

Unlimited (fallback)

Set SERPER_API_KEY in Render env vars to use Serper. The server falls back to DuckDuckGo automatically if the key is absent.


๐Ÿงช Test locally

pip install -r requirements.txt
SERPER_API_KEY=your_key python server.py

Health check:

curl http://localhost:3000/

The server runs on port 3000 by default. Set PORT environment variable to change it.


โš ๏ธ Free tier note

Render's free tier spins down after 15 minutes of inactivity (cold start ~30s). Upgrade to the Starter plan ($7/mo) to keep it always-on.