MCP server for CloudSense customer upgrade assessment, analysis, and impact verification.
Project description
CloudSense Customer Compass
MCP server for CloudSense customer upgrade assessment, analysis, and impact verification.
| Package | cloudsense-customer-compass |
| Version | 0.7.0 |
| Python | >=3.10 |
| License | MIT |
Prerequisites
- Python 3.10+
- Salesforce CLI (
sf) — install
Installation
# Via uvx (recommended — no install needed, always runs latest)
uvx cloudsense-customer-compass
# Or install globally via pip
pip install cloudsense-customer-compass
MCP Configuration
Cursor IDE
Go to Settings → MCP Servers and add:
{
"mcpServers": {
"CloudSense Customer Compass": {
"command": "uvx",
"args": ["cloudsense-customer-compass"]
}
}
}
Claude Desktop
Add to your config file:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json - Linux:
~/.config/Claude/claude_desktop_config.json
{
"mcpServers": {
"CloudSense Customer Compass": {
"command": "uvx",
"args": ["cloudsense-customer-compass"]
}
}
}
Claude CLI
claude mcp add "CloudSense Customer Compass" -- uvx cloudsense-customer-compass
Available Tools
| Tool | Description |
|---|---|
connect_lma |
Authorize the CloudSense LMA Salesforce org. First tool to call for any workflow. |
find_customer |
Search for a customer by name (SOQL LIKE primary, SOSL fallback). Returns matches with region and industry for disambiguation. On confirmation, returns full account profile (industry, region, parent company, description, website, LinkedIn) for AI context. |
get_customer_licenses |
Retrieve all production and sandbox licenses for a customer. Searches both Account links and Company name to ensure complete coverage. Returns compact package and org summary. Writes full data to customers/<slug>/licenses.json. |
get_portfolio_data |
Fetch ALL active/trial production licenses enriched with seat utilization, version currency, account context (region, industry, parent company), and corporate group analysis. Saves timestamped snapshots for change detection. AI applies composite scoring framework from editable portfolio/scoring-rules.md. |
save_report |
Save AI-generated analysis, insights, or discussion notes as a shareable markdown file. Works across any MCP client (Cursor, Claude Desktop, etc.). |
Workflows
Single Customer Analysis
connect_lma → Authorize the CloudSense LMA org
find_customer → Search by name, confirm (returns full account profile)
get_customer_licenses → License, package, and org summary
Portfolio Analysis
connect_lma → Authorize the CloudSense LMA org
get_portfolio_data → Full portfolio snapshot with health-scoring data
(seats, versions, region, industry, parent groups)
Auto-creates portfolio/scoring-rules.md on first run
Saves timestamped snapshot + detects changes
AI scoring → Composite health score per customer (4 dimensions)
Corporate group analysis, opportunity flags
Uses rules from portfolio/scoring-rules.md
save_report → Persist ranked insights as shareable markdown
Supports persona-based reports (exec, sales, tech, CS)
Customising Health Scores
Edit portfolio/scoring-rules.md to change weights, thresholds, core
packages, opportunity detection rules, or report persona templates.
Changes take effect on the next get_portfolio_data call. You can also
override any rule conversationally (e.g. "for this analysis, treat csbb
as critical") or run what-if scenarios ("what if we drop R35 support?").
Coming Soon
get_installed_packages → Per-package baseline from customer sandbox
list_metadata → Discover metadata members by type
retrieve_metadata → Pull metadata in chunks
get_repo_mapping → Map packages to GitHub repos
clone_package_repos → Clone repos for version diff
Workspace Output Structure
Tools write their output to a structured workspace directory:
workspace/
├── assessment.json # LMA connection info only
├── customers/ # per-customer data
│ ├── nbn-co-ltd/
│ │ ├── licenses.json
│ │ └── analysis-2026-03-14.md
│ └── starhub/
│ └── licenses.json
├── portfolio/ # cross-customer analysis
│ ├── scoring-rules.md # editable health scoring rules
│ ├── portfolio-data.json
│ ├── history/ # timestamped snapshots for trend analysis
│ │ ├── portfolio-data-2026-03-01.json
│ │ └── portfolio-data-2026-03-14.json
│ └── insights-2026-03-14.md
├── packages/ # per-package artifacts (coming soon)
│ ├── <namespace>/
│ │ ├── package-info.json
│ │ ├── version-map.json
│ │ ├── repo-from/
│ │ └── repo-to/
│ └── _skipped/
└── reference-docs/
Safety
- Read-only against customer Salesforce orgs — never deploys, inserts, updates, or deletes
- Whitelist-enforced — only approved
sfCLI subcommands can execute - LMA queries scoped to
AccountandsfLma__*objects only - Customer org queries limited to CloudSense configuration objects
- All sf CLI commands are logged for auditability
Development
python3 -m pip install -e ".[dev]"
# Run server locally
python3 -m cloudsense_customer_compass.server
# Run tests
pytest
# Build & publish
python3 -m build
uv publish dist/*
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file cloudsense_customer_compass-0.8.0.tar.gz.
File metadata
- Download URL: cloudsense_customer_compass-0.8.0.tar.gz
- Upload date:
- Size: 28.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.7.18
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
56405375a0d14f69b658b9877b0334923fed7c5629d4f83379314401b7d5ffb6
|
|
| MD5 |
14f5a7218031076e4fc4eee3fcf2891e
|
|
| BLAKE2b-256 |
36797e38caf2f2e918c4c88842ad771bc55593505474895d8957a71c7ebca729
|
File details
Details for the file cloudsense_customer_compass-0.8.0-py3-none-any.whl.
File metadata
- Download URL: cloudsense_customer_compass-0.8.0-py3-none-any.whl
- Upload date:
- Size: 37.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.7.18
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bc6d6e5867cd7563162c7320775f453f08dd9fbf258712e6ad7d81102323e9d6
|
|
| MD5 |
39bd01665dfac0d1283addcae824b38e
|
|
| BLAKE2b-256 |
830ff0370e12dc4940715006e23795874b0aa42ee9491f25b2e2f895067c55e1
|