Skip to main content

MCP Server for Online Boutique AI Assistant - exposing microservices via Model Context Protocol

Project description

Online Boutique AI Assistant MCP Server

PyPI version Python License: MIT Downloads

Model Context Protocol (MCP) Server for Online Boutique AI Assistant

Expose microservices through the standardized Model Context Protocol, enabling any MCP client to access complete e-commerce functionality.

๐Ÿ“ฆ Available on PyPI

Table of Contents

  1. Features
  2. Architecture
  3. Installation
  4. Usage
  5. Available Functions
  6. Configuration
  7. Development
  8. Requirements
  9. Use Cases
  10. Contributing
  11. License

Features

  • Complete E-commerce: 18 microservice functions for products, cart, checkout, payments, shipping
  • Standard MCP Protocol: Works with any MCP client (Claude, ChatGPT, custom tools)
  • Google ADK Integration: Built using Google Agent Development Kit patterns
  • Dynamic Configuration: Environment variable based configuration
  • Production Ready: Comprehensive logging and error handling

Architecture

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚   MCP Client    โ”‚โ”€โ”€โ”€โ”€โ”‚  MCP Server      โ”‚โ”€โ”€โ”€โ”€โ”‚  Microservices      โ”‚
โ”‚ (Any LLM/Agent) โ”‚    โ”‚ (This Package)   โ”‚    โ”‚ (Online Boutique)   โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

Installation

Install from PyPI:

pip install ai-boutique-assit-mcp

Or install from source:

git clone https://github.com/arjunprabhulal/ai-boutique-assit-mcp.git
cd ai-boutique-assit-mcp
pip install -e .

Usage

1. Start MCP Server

The server supports two modes of operation:

HTTP Mode (Web/API Access)

# Standalone HTTP server (default)
boutique-mcp-server --port 8080

# Or explicitly force HTTP mode
boutique-mcp-server --http --port 8081

Stdio Mode (ADK Integration)

# Force stdio mode for direct ADK integration
boutique-mcp-server --stdio

# ADK will automatically launch in stdio mode when using StdioConnectionParams

Available Options

boutique-mcp-server --help

# Options:
#   --port PORT    Port for HTTP mode (default: 8080)
#   --stdio        Force stdio mode (for ADK integration)
#   --http         Force HTTP mode (for web/API access)

2. Connect with ADK Agent

HTTP Connection (Manual Server Start)

from google.adk.agents import Agent
from google.adk.tools.mcp_tool import McpToolset, SseConnectionParams

agent = Agent(
    name="boutique_assistant",
    model="gemini-2.0-flash",
    instruction="You are a helpful e-commerce assistant.",
    tools=[
        McpToolset(
            connection_params=SseConnectionParams(
                url="http://localhost:8081/mcp"
            )
        )
    ]
)

Stdio Connection (Automatic Server Launch)

from google.adk.agents import Agent
from google.adk.tools.mcp_tool import McpToolset, StdioConnectionParams, StdioServerParameters

agent = Agent(
    name="boutique_assistant", 
    model="gemini-2.0-flash",
    instruction="You are a helpful e-commerce assistant.",
    tools=[
        McpToolset(
            connection_params=StdioConnectionParams(
                server_params=StdioServerParameters(
                    command="boutique-mcp-server",
                    args=["--stdio"],
                    env={
                        "PRODUCT_CATALOG_SERVICE": "localhost:3550",
                        "CART_SERVICE": "localhost:7070",
                        # Add other service endpoints as needed
                    }
                )
            )
        )
    ]
)

Available Functions

The MCP server exposes 18 e-commerce functions:

Products & Catalog

  • list_products() - Browse all products
  • search_products(query) - Search product catalog
  • get_product(product_id) - Get product details
  • get_product_with_image(product_id) - Product with image
  • filter_products_by_price(max_price_usd) - Price filtering

Shopping Cart

  • add_item_to_cart(user_id, product_id, quantity) - Add to cart
  • get_cart(user_id) - View cart contents
  • empty_cart(user_id) - Clear cart

Checkout & Orders

  • place_order(user_id, currency, address, email, credit_card) - Complete purchase
  • initiate_checkout() - Start checkout process

Shipping & Logistics

  • get_shipping_quote(address, items) - Calculate shipping
  • ship_order(address, items) - Arrange shipping

Payment & Currency

  • charge_card(amount, credit_card) - Process payment
  • get_supported_currencies() - Available currencies
  • convert_currency(from_amount, to_currency) - Currency conversion

Communication

  • send_order_confirmation(email, order) - Email confirmations

Marketing

  • get_ads(context_keys) - Promotional content
  • list_recommendations(user_id, product_ids) - Product suggestions

Configuration

Environment Variables

The server connects to Online Boutique microservices using these default endpoints (Kubernetes service names):

# Default endpoints (production/GKE environment)
PRODUCT_CATALOG_SERVICE="productcatalogservice:3550"
CART_SERVICE="cartservice:7070"
RECOMMENDATION_SERVICE="recommendationservice:8080"
SHIPPING_SERVICE="shippingservice:50051"
CURRENCY_SERVICE="currencyservice:7000"
PAYMENT_SERVICE="paymentservice:50051"
EMAIL_SERVICE="emailservice:5000"
CHECKOUT_SERVICE="checkoutservice:5050"
AD_SERVICE="adservice:9555"

For local testing, override with localhost endpoints:

export PRODUCT_CATALOG_SERVICE="localhost:3550"
export CART_SERVICE="localhost:7070"
export RECOMMENDATION_SERVICE="localhost:8080"
export SHIPPING_SERVICE="localhost:50051"
export CURRENCY_SERVICE="localhost:7000"
export PAYMENT_SERVICE="localhost:50052"
export EMAIL_SERVICE="localhost:5000"
export CHECKOUT_SERVICE="localhost:5050"
export AD_SERVICE="localhost:9555"

Development

Local Development

# 1. Clone the repository
git clone https://github.com/arjunprabhulal/ai-boutique-assit-mcp.git
cd ai-boutique-assit-mcp

# 2. Install dependencies
pip install -r requirements.txt

# 3. Start MCP server
boutique-mcp-server --port 8081

# Or use Python module directly
python -m ai_boutique_assit_mcp.mcp_server --port 8081

# 4. Test with ADK (stdio mode)
adk run your_agent.py

# 5. Test with ADK (HTTP mode - start server first)
boutique-mcp-server --http --port 8081
# Then in another terminal: adk run your_agent.py

Build and Publish

# Build package
python -m build

# Publish to PyPI
python -m twine upload dist/*

Requirements

  • Python: 3.9 or higher
  • Google ADK: For MCP integration
  • gRPC: For microservice communication
  • Target microservices: Compatible gRPC services

Use Cases

  • AI Agents: Connect any LLM to e-commerce microservices
  • API Gateway: Unified access to distributed services
  • Testing: Mock or test e-commerce workflows
  • Integration: Standard protocol for microservice access
  • Multi-platform: Use from Python, Node.js, any MCP client

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

Repository: https://github.com/arjunprabhulal/ai-boutique-assit-mcp

  1. Fork the repository
  2. Create your feature branch
  3. Commit your changes
  4. Push to the branch
  5. Create a Pull Request

License

MIT License - see LICENSE file for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ai_boutique_assit_mcp-1.0.4.tar.gz (22.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ai_boutique_assit_mcp-1.0.4-py3-none-any.whl (20.7 kB view details)

Uploaded Python 3

File details

Details for the file ai_boutique_assit_mcp-1.0.4.tar.gz.

File metadata

  • Download URL: ai_boutique_assit_mcp-1.0.4.tar.gz
  • Upload date:
  • Size: 22.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.11

File hashes

Hashes for ai_boutique_assit_mcp-1.0.4.tar.gz
Algorithm Hash digest
SHA256 b1aa7b6899ae21e7a2446633ac3ef8c8796b5b67675c9a9fd5d813b90b5c126f
MD5 ff259c17e506a5ac2f66fe48cf23bfe6
BLAKE2b-256 5ede185855fe4016bb62cc6347a14d4d34c47a3a26d7cf9db362ff3a4027327f

See more details on using hashes here.

File details

Details for the file ai_boutique_assit_mcp-1.0.4-py3-none-any.whl.

File metadata

File hashes

Hashes for ai_boutique_assit_mcp-1.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 4dd54a1039d9ecf90398c719c1215e881bc337be077236928581610d844cdb1e
MD5 ae7f8b359939032a53fae0f520f53908
BLAKE2b-256 784db585cace025192552f86a637ffe9e79bd0684c4676fd6fcf3e5c9ec0c170

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page