Skip to main content
Glama

EAG v3 — MCP demo with Prefab UI

A FastMCP server with three tools that exercise (1) the internet, (2) local-file CRUD, and (3) generative UI via Prefab. Designed to run inside Claude Desktop.

Tools

Tool

Type

Purpose

web_search(query)

internet

DuckDuckGo Instant Answer API — returns abstract + related topics

notes_file(action, key, content)

local CRUD

one tool, action-dispatched (create / read / update / delete / list) over ./notes.json

show_dashboard()

UI

renders saved notes as a Prefab card grid (uses @mcp.tool(app=True))

Setup

Requires uv (brew install uv) and Claude Desktop.

cd /Users/nitingangwar/Documents/Code/eagv3/mcp
uv sync

Wire into Claude Desktop

Edit ~/Library/Application Support/Claude/claude_desktop_config.json and add (or merge) the mcpServers block:

{
  "mcpServers": {
    "eag-mcp-demo": {
      "command": "/opt/homebrew/bin/uv",
      "args": [
        "run",
        "--directory",
        "/Users/nitingangwar/Documents/Code/eagv3/mcp",
        "python",
        "server.py"
      ]
    }
  }
}

Restart Claude Desktop. The MCP indicator should show eag-mcp-demo with three tools.

plain-Python fallback (no uv)

python3 -m venv .venv
.venv/bin/pip install -e .

Then in Claude Desktop config use:

"command": "/Users/nitingangwar/Documents/Code/eagv3/mcp/.venv/bin/python",
"args": ["/Users/nitingangwar/Documents/Code/eagv3/mcp/server.py"]

Demo prompt

Paste this in Claude Desktop after the server is wired up:

Find the ownership details of Tata Sons via web search, save a 2–3 sentence summary into my notes file under the key tata_sons, then open the dashboard so I can see it.

Expected behavior:

  1. web_search("Tata Sons ownership") → DDG abstract.

  2. notes_file("create", "tata_sons", "<summary>") → writes to notes.json.

  3. show_dashboard() → renders a Prefab card grid inline with one card.

Re-run with another company (e.g. "Reliance Industries") and the dashboard now shows two cards.

Smoke test

# Server starts and blocks on stdin (correct):
uv run python server.py

# Or interactive inspector:
npx @modelcontextprotocol/inspector uv run python server.py

In the inspector: list tools, call web_search("Tata Sons"), then call notes_file("create", "x", "y") and confirm notes.json updates on disk.

Fallbacks

  • Prefab renderer doesn't engage (Claude Desktop returns JSON instead of UI): change the show_dashboard decorator from @mcp.tool(app=True) to plain @mcp.tool and have it return a Markdown table built from notes.json.

  • DuckDuckGo returns empty for the query: DDG only has Instant Answers for well-known entities. Use famous companies / people / places for the demo.

Files

server.py        # FastMCP server with the 3 tools
notes.json       # backing store for notes_file (starts as {})
pyproject.toml   # deps: fastmcp[apps], prefab-ui==0.19.1, httpx
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/SkinnyMonk/mcp-server'

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