Skip to main content
Glama
masalinas

FastMCP Orders Server

by masalinas

FastMCP 订单服务器

一个基于 FastMCP 构建的模型上下文协议 (MCP) 服务器,提供了一个用于从 PostgreSQL 数据库查询客户订单的工具。


项目结构

├── 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 file

Related MCP server: Mock Store MCP Server

先决条件

  • Python ≥ 3.10

  • PostgreSQL 实例,包含一个具有以下描述的数据库

数据库模式

服务器期望两张表:

customers

id (主键), name (文本), email (文本, 唯一)

orders

id (主键), customer_id (外键→customers), order_date, total_amount (数值, €), status

运行提供的 SQL 文件来创建它们:

psql -d orders_db -f schema.sql
psql -d orders_db -f seed.sql

设置

1. 安装依赖项

pip install -r requirements.txt

2. 配置数据库凭据

复制环境变量模板并填写你的连接信息:

cp .env.example .env
nano .env   # edit values to match your PostgreSQL instance

运行服务器

Stdio 传输(默认)

python mcp_server.py

这是本地 MCP 服务器的标准模式,适用于 Claude Desktop、MCP Inspector 以及任何兼容 stdio 的客户端。

HTTP 传输(可选——远程客户端)

python mcp_server.py --transport http --port 9000

当客户端需要远程 HTTP 端点而不是本地进程时很有用。


运行演示客户端

捆绑的客户端通过 stdio 连接到服务器,并运行三个测试场景:

python mcp_client.py

预期输出(加载种子数据后):

[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)

使用 MCP Inspector 测试

MCP Inspector 是一个用于探索 MCP 服务器的交互式工具。

npx @modelcontextprotocol/inspector node mcp_server.js

对于 Python 服务器:

npx @modelcontextprotocol/inspector python mcp_server.py
  1. Inspector 会在浏览器中打开一个窗口,地址为 http://localhost:6287

  2. 在 UI 中,找到 get_customer_orders_above_amount 位于 Tools 下。

  3. 填写参数(例如 {"customer_id": 1, "min_amount": 100})并点击 Call

  4. 检查结构化的 JSON 响应。


工具规范

get_customer_orders_above_amount

检索总金额超过指定欧元最小值的客户订单。

参数

类型

必需

描述

customer_id

int | None

客户的主键(如果同时提供,则优先使用)

customer_email

str | None

用于替代查找的电子邮件地址

min_amount

float

最小订单金额(欧元,包含,默认 0.0)

必须至少提供 customer_idcustomer_email 中的一个。

返回: list[dict]——每个字典包含键 order_idorder_datetotal_amountstatus。结果按 order_date 降序排列。

错误响应 返回为一个包含单个字典的列表,字典中有一个 "error" 键(原始的堆栈跟踪不会泄露给客户端)。


安全注意事项

  • 没有硬编码的凭据——所有数据库参数都来自通过 python-dotenv 加载的环境变量。

  • 仅使用参数化查询——通过在所有地方使用 $1$2 占位符来防止 SQL 注入。

  • 连接池——在服务器启动时创建一个 asyncpg 连接池(2–10 个连接),并在关闭时销毁。

F
license - not found
-
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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
    -
    maintenance
    Enables 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.
  • F
    license
    -
    quality
    D
    maintenance
    Enables interaction with the Pagila sample PostgreSQL database through natural language queries and SQL execution, supporting safe SELECT operations and text-to-SQL conversion.
  • A
    license
    A
    quality
    A
    maintenance
    Enables read-only interaction with PostgreSQL databases through natural language queries, supporting dynamic connections and secure query validation.
    3
    195
    2
    MIT

View all related MCP servers

Related MCP Connectors

View all MCP Connectors

Latest Blog Posts

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