MCP Server Suite

MCP Server Suite

This suite provides five production-ready MCP servers for restaurant orders, web search, browser automation, and filesystem operations, supporting both stdio and HTTP/SSE transports.

Category
Visit Server

README

MCP Server Suite

Five production-ready Model Context Protocol (MCP) servers built with the official Python SDK. Supports both stdio and HTTP/SSE transports.

This suite enables any MCP-compatible client (Claude Desktop, Cursor, OpenCode) to interact with restaurant data, web search, browser automation, and filesystem operations.


What is MCP?

MCP is an open standard that lets AI applications connect to external tools and data sources through a uniform interface. Think of it as USB-C for AI tools — write once, integrate everywhere.


Servers

1. restaurant_server (stdio)

Wraps restaurant ordering tools for MCP clients.

Tools: get_menu, check_dish_availability, check_quantity, add_item_to_cart, view_cart, get_suggestions, finalize_order

2. searxng_server (stdio)

Wraps a local SearXNG meta-search engine.

Tools: web_search, image_search

  • Supports categories, language, safesearch, time range, and result count
  • Uses httpx.AsyncClient for non-blocking requests

3. pinchtab_server (stdio)

Wraps a local PinchTab headless browser.

Tools: navigate, snapshot, click, fill, extract_text

  • Enables LLM-driven web browsing and form interaction
  • Communicates via PinchTab's REST API

4. filesystem_server (stdio)

Sandboxed filesystem operations with path traversal protection.

Tools: read_file, write_file, list_directory, search_files, file_stat, move_file, copy_file, delete_file

  • _resolve() enforces workspace sandboxing via Path.relative_to()
  • Binary files returned as base64

5. filesystem_server_sse (HTTP/SSE)

The same filesystem server exposed over Server-Sent Events on HTTP.

  • Built with Starlette + uvicorn + anyio memory streams
  • Per-session JSON-RPC message routing
  • Endpoints: / (info), /sse (event stream), /messages (POST)

Quick Start

1. Install

pip install -r requirements.txt

2. Configure MCP Client

Copy mcp.json.example to your client's config directory and update URLs:

cp mcp.json.example ~/.config/claude/mcp.json   # Claude Desktop
cp mcp.json.example ~/.config/opencode/mcp.json # OpenCode

3. Run Individual Servers

# stdio servers (spawned by MCP client)
python -m mcp_servers.restaurant_server
python -m mcp_servers.searxng_server
python -m mcp_servers.pinchtab_server
python -m mcp_servers.filesystem_server /path/to/workspace

# SSE server (runs as HTTP daemon)
python -m mcp_servers.filesystem_server_sse /path/to/workspace
# Then connect to http://localhost:3000/sse

SSE Transport Deep Dive

The SSE server is the most technically interesting component:

# Per-session memory streams
rx_send, rx_recv = anyio.create_memory_object_stream(100)
tx_send, tx_recv = anyio.create_memory_object_stream(100)

# MCP server runs in background asyncio task
await server.run(rx_recv, tx_send, server.create_initialization_options())

# SSE handler serializes messages as JSON events
yield f"event: message\ndata: {message.model_dump_json()}\n\n"

# Client POSTs to /messages, injected into receive stream
await SESSIONS[session_id]["rx_send"].send(JSONRPCMessage.model_validate(data))

Key design decisions:

  • Memory streams decouple HTTP I/O from MCP protocol logic
  • Session cleanup on disconnect prevents resource leaks
  • JSON-RPC message validation ensures protocol compliance

Environment Variables

Variable Default Description
SEARXNG_URL http://localhost:8080 SearXNG base URL
PINCHTAB_URL http://localhost:9867 PinchTab API URL
RESEARCH_WORKSPACE ~/workspace/research Research report output directory
MCP_HOST 0.0.0.0 SSE server bind host
MCP_PORT 3000 SSE server bind port

Architecture

MCP Client (Claude Desktop / Cursor / OpenCode)
        |
        v
+-- stdio transport --+     +-- SSE transport --+
|  python -m server  |     |  http://host:3000 |
+--------------------+     +-------------------+
        |                           |
        v                           v
  Restaurant Data            Filesystem Ops
  SearXNG Search             (remote access)
  PinchTab Browser

Security Notes

  • Filesystem sandboxing: _resolve() prevents path traversal above workspace root
  • stdio transport: No open network ports — most secure option
  • SSE transport: Bind to 127.0.0.1 or use reverse proxy with TLS for remote access
  • PinchTab IDPI: Restricts browsing to allowed origins by default

Testing

Each server can be tested manually:

# Test SearXNG MCP server
python -m mcp_servers.searxng_server
# Then send JSON-RPC messages via stdin

# Test filesystem SSE server
curl http://localhost:3000/
curl http://localhost:3000/sse

Tech Stack

Component Technology
MCP Framework mcp Python SDK
HTTP Client httpx (async)
SSE Server starlette + uvicorn + anyio
Data Format JSON / JSON-RPC

License

MIT

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured