Skip to main content
Glama
aito-do

poptarts-mcp

by aito-do

poptarts-mcp

Public Model Context Protocol server for DigitalOcean App Platform.

Surfaces

Surface

Behavior

MCP tool get_droplet

Proxies DigitalOcean droplets MCP droplet-get using DO_API_TOKEN, with chaos outcomes.

MCP tool list_droplets

Proxies droplet-list. Optional page / perPage.

MCP tool get_random_poptart_flavor

Random Pop-Tarts flavor with the same chaos outcomes.

GET /droplet/:id

Same as get_droplet (HTTP 500 on simulated failure).

GET /droplets

Same as list_droplets (?page=&per_page=).

GET /flavor

Same as get_random_poptart_flavor.

Chaos outcomes

Each chaotic request independently picks one of (~25% each):

  1. error_4xx — simulated client error (400 / 401 / 403 / 404 / 429)

  2. error_5xx — simulated server error (500 / 502 / 503)

  3. delayed — sleep ~10s, then succeed

  4. ok — succeed immediately

Override with CHAOS=error_4xx|error_5xx|error|delayed|ok|random (error ≡ error_5xx).

Logging + tracing

Tools emit structured JSON logs: info on success, error on chaotic failure or DO API errors.

Each tool log includes chosen traceId / spanId / traceparent / traceSource when present (no full header dump).

Trace preference order:

  1. MCP _meta.traceparent / _meta.tracestate (MCP SDK TRACEPARENT_META_KEY)

  2. HTTP traceparent / tracestate

  3. Zipkin B3 x-b3-traceid / x-b3-spanid

Related MCP server: Jarvis MCP Server

Local development

export DO_API_TOKEN=dop_v1_...
npm install
npm run dev
# MCP:      http://127.0.0.1:8080/mcp
# Droplet:  http://127.0.0.1:8080/droplet/123456789
# Droplets: http://127.0.0.1:8080/droplets
# Flavor:   http://127.0.0.1:8080/flavor
# Health:   http://127.0.0.1:8080/health

Environment:

Variable

Default

Meaning

DO_API_TOKEN

(required for droplet)

DigitalOcean personal access token (Bearer)

CHAOS

random

Force error_4xx, error_5xx, error, delayed, ok, or random

CHAOS_DELAY_MS

10000

Sleep when outcome is delayed

DROPLET_CHAOS / DROPLET_CHAOS_DELAY_MS

—

Legacy aliases for CHAOS / CHAOS_DELAY_MS

PORT

8080

HTTP listen port

ALLOWED_HOSTS

(unset)

Optional Host allowlist

Deploy to DigitalOcean App Platform

  1. Create the app from aito-do/poptarts-mcp (Dockerfile, port 8080, health /health).

  2. Set secret DO_API_TOKEN in App Platform env (encrypted).

  3. Or: doctl apps create --spec .do/app.yaml then set the secret in the UI / doctl.

doctl apps create --spec .do/app.yaml

Connect an MCP client

https://<your-app>.ondigitalocean.app/mcp
{
  "mcpServers": {
    "poptarts": {
      "url": "https://<your-app>.ondigitalocean.app/mcp"
    }
  }
}

License

MIT

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    D
    maintenance
    A Model Context Protocol (MCP) server that provides a simple sleep/wait tool, useful for adding delays between operations such as waiting between API calls or testing eventually consistent systems.
    1
    48 npm
    21
    ISC
  • A
    license
    Not graded
    quality
    C
    maintenance
    A minimal MCP server that tells an interactive knock-knock joke suitable for children, supporting both local stdio and HTTP deployments.
    21 npm
    ISC
  • A
    license
    Not graded
    quality
    B
    maintenance
    A lightweight mock MCP server for local testing and resilience experiments, providing predictable tool responses with simulated latency and errors.
    1
    MIT