1. Conduid
  2. Developer Tools
  3. Ice Cream MCP
MCP server · Developer Tools

Ice Cream MCP

This is a minimal Model Context Protocol (MCP) server that showcases how to build MCP tools with elicitation capabilities

Unclaimed MIT last commit a year ago typescriptmcp-serverelicitationdevtools
57Fair

Scored 3 months ago · breakdown

About Ice Cream MCP

Ice Cream MCP is an MCP server published by nickperkins in the Developer Tools category: this is a minimal Model Context Protocol (MCP) server that showcases how to build MCP tools with elicitation capabilities. It has been installed 0 times through Conduid.

The repository has 1 stars and 0 forks, with the last commit a year ago. Six months or more without a commit doesn't mean the server is broken, but check the open issues (0) before depending on it in production.

Install

Install
npx ice-cream-mcp

This server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.

Ask AI

Ask AI about Ice Cream MCP

Powered by Claude · Grounded in docs

I know everything about Ice Cream MCP. Ask me about installation, configuration, usage, or troubleshooting.

Security checks

  • ·README presentNot checked yet.
  • ·License declaredNot checked yet.
  • ·Tests presentNot checked yet.
  • ·Dependencies pinnedNot checked yet.
  • ·No dynamic code executionNot checked yet.
  • !Scoped permissionsDoesn't declare a permission scope. Assume it can do anything its process can.

README

Ice Cream Topping Recommender MCP Server

🍦 A Demonstration Repository for MCP Elicitation

This is a minimal Model Context Protocol (MCP) server that showcases how to build MCP tools with elicitation capabilities. It serves as a practical learning resource for developers interested in creating interactive MCP servers that can prompt users for input when needed.

What This Demo Shows

This repository demonstrates several key MCP development patterns:

  • 🔄 Elicitation (Interactive Input): The tool prompts users for missing parameters using schema-driven UI
  • ✅ Input Validation: Type-safe validation using Zod schemas with helpful error messages
  • 🏗️ Modular Architecture: Clean separation between server setup, tool registration, and business logic
  • 🛠️ Production Patterns: Proper error handling, logging, and TypeScript configuration
  • 🔌 Client Integration: Ready-to-use configuration for VS Code and Claude Desktop

The Core Feature

The server exposes a single tool: ice_cream_topping_recommender that recommends toppings based on ice cream flavours (vanilla, strawberry, or chocolate). When you invoke the tool without specifying a flavour, it demonstrates MCP's elicitation capability by prompting you to select one.

Example interaction:

🤖 Tool called without flavour parameter

📝 Prompts: "Which ice cream flavour do you want toppings for?"

👤 User selects: "vanilla"

🍦 Response: "For vanilla ice cream, the best toppings are: caramel sauce, rainbow sprinkles, crushed cookies."

Quick Start

  1. Install dependencies and build:

    yarn install
    yarn build
    
  2. Run the server:

    yarn start
    
  3. Integration with MCP clients:

    • VS Code: The server auto-configures via .vscode/mcp.json
    • Claude Desktop: Add the server to your MCP configuration

Project Structure

ice-cream-mcp/
├── src/
│   ├── index.ts              # Entry point & server bootstrap
│   └── server/
│       └── McpServer.ts      # Complete MCP server implementation
├── .vscode/
│   └── mcp.json             # VS Code MCP integration
├── package.json             # Dependencies & scripts
└── tsconfig.json            # TypeScript configuration

Key Learning Points

1. Elicitation Pattern

See how the tool handles missing input by prompting users with a schema-driven interface:

if (!flavour && elicitInput) {
  const result = await elicitInput({
    message: "Which ice cream flavour do you want toppings for?",
    requestedSchema: {
      type: "object",
      properties: {
        flavour: {
          type: "string",
          enum: ["vanilla", "strawberry", "chocolate"]
        }
      }
    }
  });
}

2. Modular Tool Architecture

Tools follow a consistent interface pattern:

  • getName(): Unique identifier
  • getDescription(): Human-readable description
  • getInputSchema(): Zod validation schema
  • execute(args, elicitInput?): Main logic with elicitation support

3. Type Safety

All input is validated using Zod schemas before processing, ensuring robust error handling and clear user feedback.

Technical Details

  • Language: TypeScript with ESM modules
  • MCP SDK: @modelcontextprotocol/sdk v1.15.1
  • Validation: Zod schemas for input validation
  • Transport: stdio (standard input/output)
  • Integration: VS Code MCP extension, Claude Desktop

Blog Post

📖 Read the detailed blog post about this implementation →

Next Steps

  • Clone this repository to explore the code
  • Modify the tool to add new flavours or different recommendation logic
  • Use this as a template for building your own MCP servers with elicitation
  • Check out the detailed blog post (link above) for implementation insights

Perfect for: Developers learning MCP, building interactive tools, or wanting to understand elicitation patterns.

License

This project is licensed under the MIT License - see the LICENSE file for details.

README mirrored from the source repository 3 months ago. The original is authoritative.

Questions

About Ice Cream MCP

How do I install Ice Cream MCP?

Run npx ice-cream-mcp, then add the server to your MCP client's configuration. Conduid has recorded 0 installs, so the command is known to work with current clients.

Is Ice Cream MCP safe to use with an AI agent?

Its trust score is 57 out of 100 (fair). It passes 0 of 1 static security checks; the failures are listed above. It has no ConduID identity yet, so agent calls to it are not receipted.

Is Ice Cream MCP still maintained?

The last commit was a year ago, with 0 open issues. That's long enough that you should check whether the maintainer is responding to issues before depending on it.