Skip to main content
Glama
Inform-Growth

Inform Growth Demo MCP

Official

Inform Growth — Beacon Software demo MCP

A standalone MCP server that demonstrates Inform Growth's Camber Core platform using a fictional B2B SaaS company (Beacon Software, ~$15M ARR, ~80 employees). All data is synthetic; all tool shapes are real.

What it does

Connect any MCP-capable AI client. The server exposes ~20 tools across five categories — crm_*, marketing_*, billing_*, support_*, ops_* — plus three orchestration tools for a guided 5-step walkthrough.

A prospect plays the CEO of Beacon Software, runs a few prompts against their agent, and experiences the cross-system rollups, anomaly detection, and workflow capture they'd get from a real Camber Core deployment.

Connect from an AI client

After the server is live (e.g. on Railway), point your client at the URL.

Claude Desktop

Add to ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "inform-demo": {
      "url": "https://<your-railway-host>/mcp"
    }
  }
}

Claude Code (CLI)

claude mcp add inform-demo --transport http https://<your-railway-host>/mcp

One-line bootstrap prompt

Connect to the Inform Growth demo MCP at <URL>. Read the welcome://demo resource, then call start_demo() and walk me through the 5 steps as the CEO of Beacon Software.

Run locally

pip install ".[dev]"

# stdio (Claude Code / Inspector)
python server.py

# HTTP
MCP_TRANSPORT=streamable-http python server.py
# server on http://localhost:8000/mcp

Regenerate synthetic data

python scripts/generate_beacon.py
# writes data/beacon.json (deterministic — seed=42)

Seeded patterns the walkthrough depends on:

  • Companies 7, 23, 41 → expansion-risk (high MRR growth + tickets + low CSAT)

  • Deals 102, 118 → stalling (no activity 60+ days)

  • Campaign 14 → surprising attribution win

  • Project 23 → at-risk, blocking revenue recognition

Internal analytics

Every meaningful event emits a JSON line to stdout. Railway aggregates these in the service log view. To get a funnel out of them:

railway logs --service demo-mcp \
  | grep '"event":' \
  | jq -s 'group_by(.event) | map({event: .[0].event, count: length})'

Event types:

event

when

server_started

server boot

session_started

a prospect calls start_demo

step_reached

next_step advances the walkthrough (step in payload)

workflow_saved

a prospect calls save_workflow

session_ended

walkthrough completes (step 5)

Deploy to Railway

  1. Create a new Railway service pointed at this repo (Inform-Growth/inform-demo-mcp, main branch)

  2. Railway auto-detects the Dockerfile at the repo root. No further config needed.

  3. Optional env overrides:

    • MCP_TRANSPORT (default streamable-http)

    • MCP_SERVER_NAME (default inform-demo-mcp)

    • PORT (Railway injects this; the server binds to it automatically)

    • ALLOWED_HOSTS — comma-separated hostnames that pass DNS-rebinding protection. Supports host:* for any port. Default: unset, which disables the check (appropriate for a public demo). Set to the Railway hostname (e.g. inform-demo-mcp.up.railway.app) to lock it down.

  4. Public networking — toggle on in Railway so prospects can connect

After deploy, the URL is https://<service>.up.railway.app/mcp.

File tree

.
├── README.md                 # this file
├── Dockerfile                # Railway image
├── pyproject.toml            # mcp[cli] + uvicorn; faker only in dev
├── server.py                 # FastMCP entry point
├── beacon/
│   ├── __init__.py
│   ├── data.py               # beacon.json loader + helpers
│   ├── crm.py                # 5 tools (deals, companies, contacts, activities)
│   ├── marketing.py          # 3 tools (campaigns, attribution)
│   ├── billing.py            # 3 tools (subscriptions, MRR metrics)
│   ├── support.py            # 3 tools (tickets, support metrics)
│   ├── ops.py                # 3 tools (projects, at-risk rollup)
│   └── orchestration.py      # start_demo, next_step, save_workflow + welcome text
├── analytics/
│   ├── __init__.py
│   └── events.py             # log_event — JSON line to stdout
├── scripts/
│   └── generate_beacon.py    # faker(seed=42) generator
└── data/
    └── beacon.json           # ~720KB committed synthetic data

Design notes

  • No auth, no init gate — public by design. Locked in inform-notes/notes/track-a2-v0-scope.md D5.

  • Per-connection session statestart_demo returns a session_id; client passes it to next_step / save_workflow. State is in-memory and lost on reconnect (D6).

  • save_workflow persists only for the duration of the connection. Honest about the demo nature (D4).

  • 20 tools, 5 categories — generic prefixes so prospects don't anchor on "we use a different tool" (D1).

  • Deterministic dataFaker.seed(42) plus surgical pattern injection. Anyone who regenerates gets identical output (D2).

  • Hosting — Railway, deployed from this repo's main branch. D7's Calendly placeholder lives in beacon/orchestration.py.

For the full design rationale see Inform-Growth/inform-notes/notes/track-a2-v0-scope.md.

F
license - not found
-
quality - not tested
C
maintenance

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/Inform-Growth/inform-demo-mcp'

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