Skip to main content
Glama
mohsin-shaikh

@zuupee/mcp-server

Zuupee MCP

Monorepo for Zuupee's Model Context Protocol (MCP) tooling and website chatbot stack.

Packages

Package

Status

Description

mcp-server

Available

General-purpose MCP server with pluggable modules, stdio and HTTP transports

mcp-client

In progress

Multi-server MCP client with namespaced tools

chat-orchestrator

Available

Custom ReAct agent loop with OpenAI + MCP tools

chat-api

Available

HTTP API + SSE for the website chatbot

chat-widget

Available

Embeddable chat UI (Vite → single JS bundle)

mock-api-server

Available

Local JSON orders API for dev and tests

Domain plugins live under mcp-server/plugins/ — see the orders plugin for a reference integration.

See docs/chatbot-implementation-plan.md for the full build plan.

Related MCP server: Modular MCP Server

Getting started

pnpm install
pnpm build
pnpm test

MCP server

pnpm -C mcp-server dev

MCP client smoke test

pnpm -C mcp-client dev

Mock API server

pnpm dev:mock-api-server

Then run mcp-server with MCP_MODULES=meta,orders and ORDERS_API_BASE_URL=http://127.0.0.1:3999.

Chat orchestrator (terminal demo)

Set OPENAI_API_KEY in .env, then:

# Terminal 1
pnpm dev:mock-api-server

# Terminal 2
MCP_SERVERS_CONFIG=./config/mcp-servers.chat.example.json \
pnpm dev:orchestrator -- "What is the status of order ord_123?"

Chat API

Set OPENAI_API_KEY in .env.local, then:

# Terminal 1
pnpm dev:mock-api-server

# Terminal 2
pnpm dev:chat

Create a session and stream a reply:

SESSION=$(curl -s -X POST http://127.0.0.1:3200/chat/sessions | jq -r .sessionId)
curl -N -X POST "http://127.0.0.1:3200/chat/sessions/$SESSION/messages" \
  -H "Content-Type: application/json" \
  -d '{"content":"What is the status of order ord_123?"}'

Copy .env.example to .env.local at the repo root and set OPENAI_API_KEY for orchestrator demos.

Chat widget

# Terminal 1
pnpm dev:mock-api-server

# Terminal 2
pnpm dev:chat

# Terminal 3
pnpm dev:widget

Open http://localhost:5173 and use the chat button. The widget proxies API calls to chat-api via /api in dev.

Embed on any site:

<script
  src="https://cdn.example.com/chat-widget.js"
  data-api-url="https://chat.example.com"
  data-theme="light"
></script>

Docker Compose demo

Build the widget, then start the stack (reads OPENAI_API_KEY from .env.local):

pnpm -C chat-widget build
pnpm docker:chat

Open http://localhost:8080 for the widget and http://localhost:3200/health for API status.

Production hardening

  • Redis sessions: set CHAT_REDIS_URL=redis://127.0.0.1:6379 (Docker Compose includes Redis)

  • OTEL traces: set OTEL_ENABLED=true and point OTEL_EXPORTER_OTLP_ENDPOINT at your collector

  • Per-environment MCP config: set CHAT_ENV=staging or production (uses config/mcp-servers.<env>.json)

  • Load test: pnpm load-test:chat (targets p95 < 10s for session create)

See docs/e2e-manual-checklist.md for the full E2E checklist.

Repository layout

.
├── mcp-server/          # @zuupee/mcp-server
├── mcp-client/          # @zuupee/mcp-client
├── chat-orchestrator/   # @zuupee/chat-orchestrator
├── chat-api/            # @zuupee/chat-api
├── chat-widget/         # @zuupee/chat-widget
├── mock-api-server/     # @zuupee/mock-api-server
├── config/              # Shared MCP server config for local dev
└── docs/

License

MIT

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.

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/mohsin-shaikh/chatbot-with-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server