ext-apps/examples/budget-allocator-server
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Anton Pidkuiko 8550545ccb
fix: add mimeType to resource declarations in examples (#149)
According to spec, mimeType should be present in both the resource
declaration and the resource content. This adds the missing mimeType
to the registerResource() declaration (third parameter) in all example
servers and the quickstart documentation.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: ochafik <olivier.chafik@gmail.com>
2025-12-15 12:09:47 +00:00
..
src Fix widget layout to use full available width 2025-12-08 14:01:28 +00:00
mcp-app.html Add budget-allocator-server example 2025-12-04 14:33:01 -06:00
package.json Implement BYO zod v3 or v4 2025-12-12 11:29:02 +01:00
README.md Smoothen the process of getting started (#103) 2025-12-09 16:15:32 +01:00
server.ts fix: add mimeType to resource declarations in examples (#149) 2025-12-15 12:09:47 +00:00
tsconfig.json Add budget-allocator-server example 2025-12-04 14:33:01 -06:00
vite.config.ts Add budget-allocator-server example 2025-12-04 14:33:01 -06:00

Example: Budget Allocator App

An interactive budget allocation tool demonstrating real-time data visualization with MCP Apps.

Initial Over budget Tech-heavy

Features

  • Interactive Sliders: Adjust budget allocation across 5 categories (Marketing, Engineering, Operations, Sales, R&D)
  • Donut Chart: Real-time visualization of allocation distribution using Chart.js
  • Sparkline Trends: 24-month historical allocation data per category
  • Percentile Badges: Compare your allocation vs. industry benchmarks
  • Stage Selector: Switch between Seed, Series A, Series B, and Growth benchmarks
  • Budget Presets: Quick selection of $50K, $100K, $250K, or $500K totals

Running

  1. Install dependencies:

    npm install
    
  2. Build and start the server:

    npm run start:http  # for Streamable HTTP transport
    # OR
    npm run start:stdio  # for stdio transport
    
  3. View using the basic-host example or another MCP Apps-compatible host.

Architecture

Server (server.ts)

Exposes a single get-budget-data tool that returns:

  • Category definitions with colors and default allocations
  • Historical data (~120 data points) - 24 months of allocation history per category
  • Industry benchmarks (~60 data points) - Aggregated percentile data by company stage

The tool is linked to a UI resource via _meta[RESOURCE_URI_META_KEY].

App (src/mcp-app.ts)

  • Uses Chart.js for the donut chart visualization
  • Renders sparkline trends using inline SVG
  • Computes percentile rankings client-side from benchmark data
  • Updates all UI elements reactively on slider changes