Skip to main content
Glama
jaceryan5150

Composite MCP Sales Intelligence

by jaceryan5150

Composite MCP Sales Intelligence

Inside sales intelligence for an MSP — bridges ConnectWise (PSA) and TD Synnex StreamOne (distributor) into composite sales workflows via MCP.

Components

1. Sales Agent (sales_agent/)

MCP server with 6 composite tools for sales workflows:

Tool

Description

customer_profile

Aggregates CW company + agreements + configs + tickets + TD Synnex subs

suggest_upsells

Analyzes stack gaps, suggests products from TD Synnex catalog

price_comparison

TD Synnex cost vs CW sell price — margin per product

build_quote

Creates TD Synnex cart as draft quote

renewal_radar

Upcoming CW agreement + TD Synnex subscription expirations

opportunity_enrichment

Enriches CW opportunity with customer context + catalog matches

2. TD Synnex StreamOne Adapter (tdsynnex/)

Full StreamOne Ion V3 API client + 15-tool MCP server for direct distributor operations.

API Coverage: Auth (OAuth2 with token rotation), Customers, Catalog, Orders, Subscriptions, Carts, Provisioning.

Setup

# Python 3.10+ required
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt

# Configure credentials
cp .env.example .env
# Fill in CW + TD Synnex credentials

Running

Sales Agent MCP Server

python -m sales_agent.mcp.server

TD Synnex MCP Server

python -m tdsynnex.mcp.server

Claude Code Integration

Add to your .mcp.json:

{
  "mcpServers": {
    "composite-mcp": {
      "command": "python",
      "args": ["-m", "sales_agent.mcp.server"],
      "cwd": "/path/to/composite-mcp",
      "env": {
        "CW_SITE_URL": "https://your-instance.connectwise.com/v4_6_release/apis/3.0",
        "CW_COMPANY_ID": "your_company_id",
        "CW_PUBLIC_KEY": "...",
        "CW_PRIVATE_KEY": "...",
        "CW_CLIENT_ID": "...",
        "TDSYNNEX_HOSTNAME": "...",
        "TDSYNNEX_ACCOUNT_ID": "...",
        "TDSYNNEX_REFRESH_TOKEN": "..."
      }
    },
    "tdsynnex": {
      "command": "python",
      "args": ["-m", "tdsynnex.mcp.server"],
      "cwd": "/path/to/composite-mcp",
      "env": {
        "TDSYNNEX_HOSTNAME": "...",
        "TDSYNNEX_ACCOUNT_ID": "...",
        "TDSYNNEX_REFRESH_TOKEN": "..."
      }
    }
  }
}

Stack

  • Python 3.10+

  • httpx (async HTTP)

  • pydantic / pydantic-settings (config)

  • MCP Python SDK (tool serving)

  • Ollama (future — AI-powered product matching)

A
license - permissive license
-
quality - not tested
C
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/jaceryan5150/composite-mcp'

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