protogrid

Search / io.github.jeshuadomingo-byte/caption-pack

Caption-Pack

not classified

Deterministic social-caption API: hooks, bodies, CTAs + hashtags as JSON. No LLM in the loop.

v1.0.0 · active · website · descriptor JSON · versions

Not classified yet.The remote endpoints have not been probed successfully, or the listing has nothing to connect to.
Quality79new
Trust53of 100
Uptime, 30 days80%
Latency p50368 ms

Connect

8 clients · secrets stay placeholders
{
  "mcpServers": {
    "caption-pack": {
      "type": "http",
      "url": "https://caption-pack-mcp.onrender.com/mcp"
    }
  }
}
claude mcp add --transport http caption-pack https://caption-pack-mcp.onrender.com/mcp
[mcp_servers.caption-pack]
url = "https://caption-pack-mcp.onrender.com/mcp"
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "caption-pack": {
      "type": "remote",
      "url": "https://caption-pack-mcp.onrender.com/mcp",
      "enabled": true
    }
  }
}
{
  "mcpServers": {
    "caption-pack": {
      "type": "http",
      "url": "https://caption-pack-mcp.onrender.com/mcp"
    }
  },
  "deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=caption-pack&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vY2FwdGlvbi1wYWNrLW1jcC5vbnJlbmRlci5jb20vbWNwIn0%3D"
}
{
  "servers": {
    "caption-pack": {
      "type": "http",
      "url": "https://caption-pack-mcp.onrender.com/mcp"
    }
  }
}
{
  "mcpServers": {
    "caption-pack": {
      "httpUrl": "https://caption-pack-mcp.onrender.com/mcp"
    }
  }
}
extensions:
  "caption-pack":
    enabled: true
    name: "caption-pack"
    type: streamable_http
    uri: "https://caption-pack-mcp.onrender.com/mcp"
    timeout: 300

Quality 79 / 100new

protocol88 · weight 25
  • pass
    protocol.modernsupports 2026-07-28 (server/discover)
  • pass
    protocol.statelessanswers without a session
  • pass
    protocol.transportstreamable HTTP
  • warn
    protocol.list_ttltools/list declares ttlMs 0, so clients re-fetch it on every use
authorizationn/a · weight 15
  • n/a
    auth.prm, auth.as_metadata, auth.cimdno remote uses OAuth
  • n/a
    auth.secret_in_urlno templated URL
tool hygiene71 · weight 30
  • pass
    tools.descriptionsevery tool has a description
  • pass
    tools.description_lengthdescriptions are concise
  • pass
    tools.schemasevery tool has an object input schema
  • fail
    tools.annotationsno tool declares readOnlyHint or destructiveHint, so clients cannot tell safe calls from risky ones
  • fail
    tools.directory_hintsno tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: generate_captions (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); check_balance (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); mint_free_trial (readOnlyHint, destructiveHint, idempotentHint, openWorldHint)
  • pass
    tools.token_costabout 410 tokens to load every tool
  • pass
    tools.api_dumptools are not a one-to-one API dump
stabilityn/a · weight 15
  • n/a
    stability.changes, stability.rug_pulltool history recorded for 2 of the 7 days needed
dependenciesn/a · weight 15
  • n/a
    deps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI package

3 tools, about 410 tokens to load them all · tool set 41ea762567a1 · checked 2026-10-20 14:54 UTC

Tool changes

No tool definition changes recorded. A server's first observation is its baseline; later probes record what changes.

Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.

Trust 53 / 100

no-repository
provenance45
liveness12
freshness100
hygiene80

+website -unreachable(2 failures) +updated-3d-ago -no-repository

Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.

Endpoints

remoteauthreachableuptime 30dp50protocollast ok
https://caption-pack-mcp.onrender.com/mcp streamable-httpnoneno (2 failures)80%368 ms2026-07-282026-10-19

Tools (3)

check_balanceUse before generating when you're unsure the key still has credits, or when the user asks about their plan, tier, or expiry. Shows remaining API credits, key tier, and expiry.
generate_captionsUse when the user wants ready-to-post social captions — hooks, post bodies, CTAs, and hashtags as JSON for LinkedIn, Instagram, TikTok, or X. Deterministic template engine (no LLM): best for on-brand, repeatable captions, not open-ended creative writing. tone: warm | bold | professional | playful platform: linkedin | instagram | tiktok | x count: 1-10 captions. Costs 1 API credit per call.
mint_free_trialUse when no API key is configured and the user wants to try Caption-Pack free. Only call after the user agrees to the free tier — never mint silently. Mints a 25-call trial API key (no card, no account). Abuse guards: one key per IP per day, 7-day expiry, free keys can never convert to paid. The key is shown ONCE — save it as CAPTIONPACK_API_KEY immediately.

Schemas: list_tools.

Similar MCP servers

Official server.json
{
  "name": "io.github.jeshuadomingo-byte/caption-pack",
  "title": "Caption-Pack",
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
  "remotes": [
    {
      "url": "https://caption-pack-mcp.onrender.com/mcp",
      "type": "streamable-http"
    }
  ],
  "version": "1.0.0",
  "websiteUrl": "https://muse.ai/s/caption-pack-api-xfxt62ya0xcxlxhh",
  "description": "Deterministic social-caption API: hooks, bodies, CTAs + hashtags as JSON. No LLM in the loop."
}