home / mcp / medicine carousel mcp server

Medicine Carousel MCP Server

Provides an interactive medicine catalog with OAuth 2.1 authentication, user profile integration, and direct purchase links.

Installation
Add the following to your MCP client configuration file.

Configuration

View docs
{
  "mcpServers": {
    "sudheerarava222-appsdk-mcp": {
      "url": "https://your-app.onrender.com/mcp",
      "headers": {
        "PORT": "8000",
        "NODE_ENV": "production",
        "AUTH0_DOMAIN": "your-tenant.auth0.com",
        "AUTH0_AUDIENCE": "https://your-api-gateway-url.com",
        "AUTH0_CLIENT_ID": "your_client_id",
        "AUTH0_CLIENT_SECRET": "your_client_secret",
        "AUTH0_ISSUER_BASE_URL": "https://your-tenant.auth0.com"
      }
    }
  }
}

You can run a TypeScript MCP server that serves an interactive medicine catalog with OAuth 2.1 authentication, display an FDA-approved carousel, and fetch authenticated user data from AWS API Gateway. This guide walks you through practical usage and setup to get you from install to a working server you can query from an MCP client.

How to use

You access the medicine catalog MCP server through an MCP client to browse the interactive medicine carousel, view FDA-approved badges, and obtain direct Lilly Direct purchase links. When you are authenticated, you can retrieve your user profile data and see personalized widgets in the interface. Use the public tool to show all medicines or request a specific medicine, and use the authenticated tool to fetch your user profile after completing the OAuth login flow.

How to install

Prerequisites you need before installing and running the server: a machine with Node.js 18+ installed, and access to the project files where the MCP server code is located.

Step 1: Prepare your environment. Ensure Node.js 18+ is installed on your system. You can verify with node -v and npm -v.

Step 2: Install dependencies. From your project directory, install the required packages.

npm install

Step 3: Run the development server to test locally.

npm run dev

Step 4: Build for production to optimize assets and compile TypeScript. You will then start the production server.

npm run build

Step 5: Start the production server. This runs the compiled code and serves MCP requests.

npm start

Configuration, security, and deployment notes

Configuration focuses on running in a cloud or local environment with authentication via OAuth 2.1 + PKCE and secure calls to AWS API Gateway. The server exposes an MCP endpoint at /mcp that accepts tool invocations and resource requests from your MCP client.

Environment and deployment details

The server runs with key environment variables for authentication and deployment. You typically provide these when hosting on a cloud provider or during local tests.

Security and compliance notes

OAuth 2.1 + PKCE is used for user authentication. JWT tokens are validated by AWS API Gateway for authenticated requests. Tokens are stored in memory and not persisted. All external assets are served over HTTPS. No personal identifiable information is stored on the MCP server.

Example MCP configuration for usage

You can initiate actions against the MCP endpoint using an MCP client configuration like the following. This example shows how Client tools may call the MCP URL for tool invocations.

{
  "medicine-carousel-mcp": {
    "command": "curl", 
    "args": ["-X", "POST", "https://your-app.onrender.com/mcp"]
  }
}

Available tools and what they do

The MCP server provides a set of tools you can invoke from your MCP client. Public tools do not require authentication while authenticated tools require you to log in via the OAuth flow.

Notes on data and catalog

The medicine catalog contains seven FDA-approved medicines with interactive carousel presentation, FDA badges, free delivery indicators, and direct purchase links to Lilly Direct. This catalog is designed for a responsive user experience across ChatGPT display modes.

Available tools

show-all-medicines

Display all medicines in the interactive carousel without requiring user authentication for access to the catalog.

show-medicine

Display a specific medicine by name in the carousel, providing details and purchase links.

get-user-profile

Fetch the authenticated user profile from AWS API Gateway and display user name and organization in an interactive widget.