Customer Order MCP
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Customer Order MCPCreate a pending order for customer 1001 for 3 units of SKU-123 at $15.00 each"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Customer Order MCP (Python)
A safe Python 3.11+ MCP server modeled on the Java/Spring project
weibxiao/internal-mcp-server.
It uses the official MCP Python SDK and exposes Streamable HTTP at
http://localhost:8000/mcp.
Tools
create_customer(customer_id, name, email)creates an ACTIVE demo customer.search_customers(query, limit=10)searches ID, name, and email (1–25 results).get_customer(customer_id)returns one minimal customer profile.create_pending_order(customer_id, sku, quantity, unit_price)creates an order inPENDING_REVIEWonly. It never charges, submits, reserves, or fulfills.get_orders_by_customer(customer_id)lists the customer's orders.run_health_check()returns safe service status.Resource:
internal://service-info.
Related MCP server: tastytrade-mcp
Run locally
Using uv:
uv sync --extra test
uv run pytest
uv run customer-order-mcpOr using standard Python:
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
python -m pip install -e ".[test]"
pytest
customer-order-mcpConnect an MCP client or the MCP Inspector to http://localhost:8000/mcp.
npx -y @modelcontextprotocol/inspectorFixing 421 Misdirected Request
The MCP SDK protects local servers from DNS-rebinding attacks. A 421 response
means the request's Host header is not allowed. This commonly happens with an
ngrok URL, reverse proxy, LAN hostname, or when connecting to 0.0.0.0.
For a tunnel such as https://example-name.ngrok-free.app, start the server with
the exact public host and browser origin:
MCP_ALLOWED_HOSTS="example-name.ngrok-free.app" \
MCP_ALLOWED_ORIGINS="https://example-name.ngrok-free.app" \
uv run customer-order-mcpMultiple values are comma-separated. Do not include https:// in
MCP_ALLOWED_HOSTS; do include it in MCP_ALLOWED_ORIGINS. If a proxy sends a
port in the Host header, add example-name.ngrok-free.app:* instead. Keep this
allowlist narrow rather than disabling the protection.
To listen on all network interfaces for local Docker or LAN testing:
MCP_HOST=0.0.0.0 uv run customer-order-mcpBinding to 0.0.0.0 makes the process reachable beyond localhost and disables
the SDK's automatic localhost-only allowlist unless explicit allowlists are set.
Container
docker build -t customer-order-mcp:0.1.0 .
docker run --rm -p 8000:8000 customer-order-mcp:0.1.0Design and storage
The MCP layer (server.py) is deliberately thin. service.py owns validation and
business rules, while store.py is the storage boundary. InMemoryStore is
thread-safe and contains two demo customers; all changes disappear on restart.
Replace it with an authenticated database/API adapter for real use while preserving
the service-facing methods.
Validation includes unique customer IDs/emails, validated email format, nonblank search/SKU fields, search limits of 1–25, quantities of 1–100, positive finite prices with at most two decimal places, and an existing customer requirement.
Production safety
Do not expose this demo publicly with real customer data. Add OAuth or an API
gateway, authorize every lookup and mutation, audit tool calls without logging
secrets or sensitive payloads, use least-privilege integrations, and replace
in-memory storage. Order creation intentionally stops at PENDING_REVIEW.
Note about the Java reference
The Python server includes the Java repository's current customer creation and customer-order lookup tools in addition to the tools listed in its README. Its MCP annotations correctly mark customer/order creation as state-changing and non-idempotent.
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
- Alicense-qualityCmaintenanceA Python MCP server with 65 deterministic tools across 8 groups, supporting stdio, HTTP, and REST API transports for consistent MCP protocol testing.Last updated1MIT
- FlicenseAqualityCmaintenanceMCP server for the tastytrade brokerage API, providing tools for account management, market data, and order execution.Last updated18
- Flicense-qualityBmaintenanceDemo MCP server that exposes order and customer data as read-only tools for AI assistants, simulating a business API or internal data source.Last updated
- Flicense-qualityCmaintenanceA Python-based MCP server for interacting with Odoo ERP, offering example tools such as health checks, customer search, customer details, and listing sale orders.Last updated
Related MCP Connectors
A paid remote MCP for hosted MCP server, built to return verdicts, receipts, usage logs, and audit-r
A basic MCP server to operate on the Postman API.
MCP server exposing the Backtest360 engine API as tools for AI agents.
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/weibxiao/python-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server