FastMCP Orders Server
FastMCP Orders Server
Ein Server für das Model Context Protocol (MCP), erstellt mit FastMCP, der ein Tool zur Abfrage von Kundenbestellungen aus einer PostgreSQL-Datenbank bereitstellt.
Projektstruktur
├── mcp_server.py # FastMCP server — stdio transport (default), HTTP optional
├── mcp_client.py # Demo client — connects via stdio, calls the tool
├── .env.example # Template for DB credentials
├── requirements.txt # Python dependencies
├── schema.sql # DDL to create customers + orders tables
├── seed.sql # Sample data for local testing
└── README.md # This fileRelated MCP server: Mock Store MCP Server
Voraussetzungen
Python ≥ 3.10
PostgreSQL-Instanz mit einer Datenbank, die das unten beschriebene Schema enthält
Datenbankschema
Der Server erwartet zwei Tabellen:
Tabelle | Spalten |
|
|
|
|
Führen Sie die bereitgestellten SQL-Dateien aus, um diese zu erstellen:
psql -d orders_db -f schema.sql
psql -d orders_db -f seed.sqlEinrichtung
1. Abhängigkeiten installieren
pip install -r requirements.txt2. Datenbank-Zugangsdaten konfigurieren
Kopieren Sie die Umgebungsvariablen-Vorlage und füllen Sie Ihre Verbindungsdetails aus:
cp .env.example .env
nano .env # edit values to match your PostgreSQL instanceServer ausführen
Stdio-Transport (Standard)
python mcp_server.pyDies ist der Standardmodus für lokale MCP-Server und funktioniert mit Claude Desktop, dem MCP Inspector und jedem stdio-kompatiblen Client.
HTTP-Transport (optional – entfernte Clients)
python mcp_server.py --transport http --port 9000Nützlich, wenn Clients einen entfernten HTTP-Endpunkt anstelle eines lokalen Prozesses benötigen.
Demo-Client ausführen
Der gebündelte Client verbindet sich über stdio mit dem Server und führt drei Testszenarien aus:
python mcp_client.pyErwartete Ausgabe (mit geladenen Beispieldaten):
[TEST 1] Orders for customer_id=1 with min_amount=100.0
Order ID Date Amount (€) Status
--------------------------------------------------------
5 2025-06-15 180.75 € completed
3 2025-03-01 520.00 € shipped
1 2025-01-10 250.00 € completed
→ 3 order(s) found
[TEST 2] Orders for 'carlos@example.com' with min_amount=300.0
Order ID Date Amount (€) Status
--------------------------------------------------------
8 2025-05-10 890.00 € shipped
6 2025-02-01 340.00 € completed
→ 2 order(s) found
[TEST 3] Lookup nonexistent email (expecting error)
⚠ Customer not found (nobody@nowhere.com)Testen mit dem MCP Inspector
Der MCP Inspector ist ein interaktives Werkzeug zur Erkundung von MCP-Servern.
npx @modelcontextprotocol/inspector node mcp_server.jsFür Python-Server:
npx @modelcontextprotocol/inspector python mcp_server.pyDer Inspector öffnet ein Browserfenster unter
http://localhost:6287.Suchen Sie in der Benutzeroberfläche unter Tools nach get_customer_orders_above_amount.
Geben Sie Parameter ein (z. B.
{"customer_id": 1, "min_amount": 100}) und klicken Sie auf Call.Untersuchen Sie die strukturierte JSON-Antwort.
Tool-Spezifikation
get_customer_orders_above_amount
Ruft die Bestellungen eines Kunden ab, deren Gesamtsumme einen Mindestbetrag in Euro überschreitet.
Parameter | Typ | Erforderlich | Beschreibung |
|
| Nein | Primärschlüssel des Kunden (hat Vorrang, wenn beide angegeben) |
|
| Nein | E-Mail-Adresse für alternative Suche |
|
| Nein | Mindestbestellwert in € (inklusiv, Standard 0.0) |
Mindestens einer der Parameter customer_id oder customer_email muss angegeben werden.
Rückgabe: list[dict] – jedes dict enthält die Schlüssel order_id, order_date, total_amount, status. Die Ergebnisse sind absteigend nach order_date sortiert.
Fehlerantworten werden als Liste mit einem einzigen dict zurückgegeben, das einen "error"-Schlüssel enthält (keine rohen Stack-Traces gelangen zum Client).
Sicherheitshinweise
Keine fest codierten Zugangsdaten – alle DB-Parameter stammen aus Umgebungsvariablen, die über
python-dotenvgeladen werden.Nur parametrisierte Abfragen – SQL-Injection wird durch die durchgängige Verwendung von
$1,$2-Platzhaltern verhindert.Verbindungspooling – ein
asyncpg-Pool (2–10 Verbindungen) wird einmalig beim Serverstart erstellt und beim Herunterfahren geschlossen.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- -license-quality-maintenanceEnables connection to PostgreSQL databases for EC solution platforms to query and manage e-commerce data including orders, members, and other business information. Provides tools for direct SQL execution, table structure analysis, and specialized e-commerce data retrieval functions.
- Flicense-qualityDmaintenanceEnables AI agents to explore and query a mock e-commerce store's data including customers, products, inventory, and orders through conversational interactions backed by PostgreSQL.
- Flicense-qualityDmaintenanceEnables interaction with the Pagila sample PostgreSQL database through natural language queries and SQL execution, supporting safe SELECT operations and text-to-SQL conversion.
- AlicenseAqualityAmaintenanceEnables read-only interaction with PostgreSQL databases through natural language queries, supporting dynamic connections and secure query validation.31952MIT
Related MCP Connectors
Query PostgreSQL databases in plain English — LLM-generated, safety-validated SQL.
Comprehensive PostgreSQL documentation and best practices, including ecosystem tools
Manage Supabase projects end to end across database, auth, storage, realtime, and migrations. Moni…
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/masalinas/poc-ai-mcp-claude-code'
If you have feedback or need assistance with the MCP directory API, please join our Discord server