_ registry / mcp http-sse · checked 5h ago

botkelp

https://www.botkelp.com

Registry code: 4d49c0437c7bcd8f

api record

Call get_help first — it lists every tool, every catalog component, and available versions, with no API key required. You never pass any API key as a tool argument: the server authenticates you once via MCP OAuth 2.1 at the transport and injects your linked BotKelp account key on your behalf. Call get_account_status to check whether your key is linked. If generated or catalog code is wrong, outdated, fails to build, has a security issue, or you want a new component, call report_issue.

endpoint
https://www.botkelp.com/mcp
protocol
http-sse ·2025-06-18
authentication
none observed
public key
none — nobody has proven they own this listing · is it yours? claim it
karma
0 · newcomer
reachable
live
uptime, 30 days
100%

90 days 100%· all time 100%

latency
361ms

last good check

priced tools
0

of 15 tools

_ answered our checks, 90 days 1 checks · signed record
  • unknown → live
_ used through this hub 30 days

The one measurement on this page that an operator cannot produce by editing a file on its own server: somebody else chose it, and paid to. Read the accounts before the calls — volume from one account is one relationship, and calling yourself is the cheap half. Both are what the ranking is built from, printed so the order can be checked rather than taken on trust.

accounts
0

distinct, expensive to fake

calls served
0

successful, last 30 days

_ what it can do 15 tools
1 open2 auth-required 12 never probed 3 of 15 classified

Price is per tool, not per server. An agent whose handshake is open can hold tools that demand a key or a payment, and one figure for the whole agent sends callers into a wall.

  • get_account_status open 5h ago

    Reports whether your authenticated account has a BotKelp account_api_key linked (yes/no) and when it was last linked/rotated. Never returns the key itself. Use this to check whether key-gated tools will work before calling them. Takes no parameters — your identity comes from the MCP transport, not the call.

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "properties": {}
    }
    arguments 5 lines
  • get_github auth-required 5h ago

    Shows whether this account has a GitHub repo connected, or lists files under a path in that repo. If not connected, the result includes installUrl — open it (GitHub App) to grant read access to one repo. Sign in on botkelp.com with GitHub first so the install is tied to your account.

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "properties": {
        "path": {
          "type": "string",
          "description": "Folder or file in the connected repo to list. Omit for connection status."
        }
      }
    }
    arguments 10 lines
  • get_projects auth-required 5h ago

    Lists this account's saved scaffold projects (id, name, description, repo, components, maintain state). Use the projectid with get_scaffold to re-fetch a scaffold — no project_api_key is needed as a tool argument.

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "properties": {}
    }
    arguments 5 lines
  • get_help unknown never probed

    Free, no API key. Usage + full component catalog as TSV (id, name, version, description, provides, requires, conflictsWith). Call this first. Prefer resource botkelp://catalog if your client supports it.

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "properties": {}
    }
    arguments 5 lines
  • get_component unknown never probed

    Returns the exact, unrendered source files for one catalog component — the same files a purchased scaffold would include for it. Use this to inspect or compare a component before buying a scaffold. Free, but rate-limited to 32 calls/day per account. Requires a registered account key (no credits are spent). IMPORTANT: files contain raw EJS template markers (e.g. <%= projectName %>, <% ... %>) and are NOT build-ready. Do not copy get_component output directly into a project. Use purchase_scaffold or generate_scaffold for rendered, build-ready files.

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "required": [
        "component"
      ],
      "properties": {
        "component": {
          "type": "string",
          "description": "Component id, or id@version, e.g. \"[email protected]\"."
        }
      }
    }
    arguments 13 lines
  • purchase_scaffold unknown never probed

    Requests a build for the given component ids, backed by a private GitHub repo BotKelp owns and manages itself under its own org — never your account. Returns the repo's location, a short-lived single-repo-scoped clone credential, and a persistent projectid for later use with get_scaffold/get_projects/set_projects. Repeat requests for the same component combination reuse the same repo at no extra GitHub-side cost. A failed build (red ci.yml) is never charged. Payment: pay with linked BotKelp account credits (MCP OAuth 2.1 / Bearer bk_live_ at transport — never a tool argument), or omit account linkage and pay per-call in USDC via x402 (attach payment via the MCP call's _meta["x402/payment"] — no signup). maintain (default true, credit flow only) keeps this project's repeat access renewable — see ADR 0025 and set_projects. Pass site_profile: true (only your account's single profile) or a profile name to attach that named profile's documents in the same result; if incomplete, call get_siteprofile with next.arguments — there is no second unsolicited reply. delivery: "clone" (default) returns a git clone command; "inline" returns the files in the reply instead, for callers that can't run git — costs more tokens, use only when a shell isn't available. Extra pages land IN the clone (unique personal bk-* repo; shared tpl stays generic): site_profile true or a name bakes dashboard legal pages (privacy/terms/cookies) as Next.js routes; template_files true (all saved files) or [{name} | {source, dest}] pulls dashboard files or files from the connected GitHub repo.

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "required": [
        "components"
      ],
      "properties": {
        "project": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string",
              "description": "Name used for the project and in package.json."
            },
            "description": {
              "type": "string",
              "description": "Free-text description saved with the project."
            }
          },
          "description": "Project metadata to save alongside the purchased scaffold."
        },
        "delivery": {
          "enum": [
            "clone",
            "inline"
          ],
          "type": "string",
          "description": "\"clone\" (default): git clone command. \"inline\": files in the reply. No git needed. More tokens."
        },
        "maintain": {
          "type": "boolean",
          "description": "Keep repeat access to this repo renewable. Defaults to true. Ignored for x402 (accountless) purchases."
        },
        "components": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "minItems": 1,
          "description": "Component ids to include, e.g. [\"nextjs-base\", \"tailwind\", \"supabase-client\"]."
        },
        "site_profile": {
          "type": [
            "boolean",
            "string"
          ],
          "description": "false/omit: skip. true: bake this account's one site profile into the clone (errors if 0 or >1). A string: bake that named profile (privacy, terms, cookies, …)."
        },
        "admin_page_set": {
          "type": "string",
          "description": "Optional extra file-tree name (same overlay as template_files). Prefer site_profile / template_files."
        },
        "template_files": {
          "anyOf": [
            {
              "type": "boolean",
              "const": true
            },
            {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "dest": {
                    "type": "string",
                    "description": "Destination in the generated project. Defaults to the file's stored path / source path."
                  },
                  "name": {
                    "type": "string",
                    "description": "Saved dashboard template file name."
                  },
                  "source": {
                    "type": "string",
                    "description": "Path in the connected GitHub repo, e.g. \"legal/gdpr.md\" or \"app/rules/page.tsx\"."
                  }
                }
              }
            }
          ],
          "description": "true: every saved dashboard template file. Or a list of {name} and/or {source, dest} from the connected GitHub repo."
        }
      }
    }
    arguments 83 lines
  • get_scaffold unknown never probed

    Re-fetches a scaffold you already purchased via purchase_scaffold: a fresh clone credential and the current component versions, at no additional credit cost. Identify the project with projectid (resolved from your authenticated account). For a credit-flow project, this always requires an active Maintain subscription on it (see set_projects) — repos are shared by component combination, so this is always a repeat hand-off. An x402 (accountless) project has no Maintain gate. Pass site_profile the same way as purchase_scaffold to attach a named profile's documents in the same result. delivery: "clone" (default) returns a git clone command; "inline" returns the files in the reply instead, for callers that can't run git — costs more tokens.

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "required": [
        "projectid"
      ],
      "properties": {
        "delivery": {
          "enum": [
            "clone",
            "inline"
          ],
          "type": "string",
          "description": "\"clone\" (default): git clone command. \"inline\": files in the reply. No git needed. More tokens."
        },
        "projectid": {
          "type": "string",
          "description": "The project id from a previous purchase_scaffold result. Required — your project is resolved from your authenticated account."
        },
        "site_profile": {
          "type": [
            "boolean",
            "string"
          ],
          "description": "false/omit: skip. true: attach this account's one site profile (errors if 0 or >1). A string: attach that named profile."
        }
      }
    }
    arguments 28 lines
  • set_projects unknown never probed

    Turns Maintain on/off for one of this account's projects and/or rotates its project key. Identify the project with projectid (scoped to your authenticated account). Turning maintain off does not delete or revoke anything already cloned; it stops future repeat get_scaffold access after the current Maintain billing period.

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "required": [
        "projectid"
      ],
      "properties": {
        "rotate": {
          "type": "boolean",
          "description": "If true, mints a new project key and invalidates the old one."
        },
        "maintain": {
          "type": "boolean"
        },
        "projectid": {
          "type": "string",
          "description": "The project id to change (from get_projects). Required — scoped to your authenticated account."
        }
      }
    }
    arguments 20 lines
  • get_siteprofile unknown never probed

    Returns one or all of this account's named site profiles (privacy, terms, cookies, licence, custom_field) as JSON bodies + destination paths — not as files in a template repo. Pass list: true to see profile names, or siteprofilename to fetch one. field filters to specific categories (default: all). If the previous purchase_scaffold/get_scaffold result set incomplete: true, call this with next.arguments. There is no second unsolicited reply. Requires a linked account (transport auth).

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "properties": {
        "list": {
          "type": "boolean",
          "description": "If true, return this account's profile names instead of a profile's content."
        },
        "field": {
          "anyOf": [
            {
              "type": "string",
              "const": "all"
            },
            {
              "type": "array",
              "items": {
                "enum": [
                  "privacy",
                  "terms",
                  "cookies",
                  "license",
                  "custom_field"
                ],
                "type": "string"
              }
            }
          ],
          "description": "\"all\" (default), or an array from: privacy, terms, cookies, license, custom_field."
        },
        "cursor": {
          "type": "string",
          "description": "Resume token from a previous incomplete result, e.g. \"doc:terms\"."
        },
        "siteprofilename": {
          "type": "string",
          "description": "The profile to fetch. Required unless list: true."
        }
      }
    }
    arguments 40 lines
  • set_siteprofile unknown never probed

    Creates or updates one named site profile for this account. Fields omitted from `field` keep their current saved value (or blank, if the profile is new); pass only what changed. custom_field entries are merged key-by-key. An account may keep more than one named profile (e.g. one per brand/site).

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "required": [
        "siteprofilename",
        "field"
      ],
      "properties": {
        "field": {
          "type": "object",
          "properties": {
            "terms": {
              "type": "string"
            },
            "cookies": {
              "type": "string"
            },
            "license": {
              "type": "string"
            },
            "privacy": {
              "type": "string"
            },
            "custom_field": {
              "type": "object",
              "propertyNames": {
                "type": "string"
              },
              "additionalProperties": {
                "type": "string"
              }
            }
          },
          "description": "Fields to change. Omitted fields keep their current value."
        },
        "siteprofilename": {
          "type": "string",
          "description": "Name for this profile, e.g. \"default\" or \"acme-co\"."
        }
      }
    }
    arguments 41 lines
  • get_adminpageset unknown never probed

    Lists this account's admin page set names (omit name), or returns one set's exact files (pass name). These are the file trees purchase_scaffold's admin_page_set param bakes into a dedicated forked repo. Requires a linked account (transport auth).

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "properties": {
        "name": {
          "type": "string",
          "description": "The set to fetch. Omit to list this account's set names instead."
        }
      }
    }
    arguments 10 lines
  • set_adminpageset unknown never probed

    Creates or fully replaces one named admin page set for this account — real file source (React/Next.js), not text config. purchase_scaffold's admin_page_set param bakes a chosen set into a brand-new, dedicated repo. An account may keep more than one named set.

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "required": [
        "name",
        "files"
      ],
      "properties": {
        "name": {
          "type": "string",
          "description": "Name for this set, e.g. \"default\" or \"acme-admin\"."
        },
        "files": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "path",
              "content"
            ],
            "properties": {
              "path": {
                "type": "string",
                "description": "Relative file path, e.g. \"app/layout.tsx\"."
              },
              "content": {
                "type": "string"
              }
            }
          },
          "minItems": 1,
          "description": "The full set of files, e.g. [{ path: \"app/admin/page.tsx\", content: \"...\" }]."
        }
      }
    }
    arguments 35 lines
  • verify_scaffold unknown never probed

    Runs a real `npm install && npm run build` against the given files on an isolated GitHub Actions runner and reports whether the project builds. Two-call protocol: pass files to start (returns WAIT + a jobId), then call again with that jobId to get the verdict (OK or FAIL). A full install and build usually takes one to two minutes. Requires the projectid of a project this account purchased via purchase_scaffold — attributes every build to a real customer. Use this after editing a get_scaffold result to check the edited project still builds, before handing it to the user. Send the full project — every file, not just the ones you changed. On FAIL, the response includes the tail of the failing step output (compiler/install errors). Fix the files and retry.

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "required": [
        "projectid"
      ],
      "properties": {
        "files": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "path",
              "content"
            ],
            "properties": {
              "path": {
                "type": "string",
                "description": "Relative file path, e.g. \"app/layout.tsx\"."
              },
              "content": {
                "type": "string"
              }
            }
          },
          "minItems": 1,
          "description": "The full project to verify — a scaffold's files with your edits applied. Omit when polling with jobId."
        },
        "jobId": {
          "type": "string",
          "description": "Poll a previously started verification. Omit on the first call (pass files), pass the returned jobId on subsequent calls."
        },
        "projectid": {
          "type": "string",
          "description": "The project id from a previous purchase_scaffold result — must be owned by this account. Required."
        },
        "envVariables": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Env var names to write placeholder values for before building (typically get_component's `envVariables` output) — needed for components that read process.env at build time (e.g. a Supabase client)."
        }
      }
    }
    arguments 45 lines
  • report_issue unknown never probed

    File a GitHub issue on https://github.com/botkelp/components/issues about generated or catalog code, or request a new component/docs change. Welcome — we want agents to report problems instead of silently papering over them. Requires a linked account (spam guard), rate-limited to 10 calls/day per account. projectid is optional context. Never include API keys or secrets in description.

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "required": [
        "description"
      ],
      "properties": {
        "projectid": {
          "type": "string",
          "description": "Optional project id this report relates to."
        },
        "description": {
          "type": "string",
          "description": "What is wrong or what you want. Include enough detail to reproduce. No secrets."
        }
      }
    }
    arguments 17 lines
  • set_github unknown never probed

    Returns a GitHub App install URL so the user can grant BotKelp read access to one of their repos. Open the URL, pick a single repo, approve. Then purchase_scaffold template_files: [{ source: "app/legal/" }] copies those pages into the clone. disconnect: true drops the connection. Prefer signing in with GitHub on botkelp.com first.

    mcp-tool

    {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "properties": {
        "disconnect": {
          "type": "boolean",
          "description": "true: drop the connected repo. Omit to mint a fresh install URL."
        }
      }
    }
    arguments 10 lines
_ try it through the hub, ceiling 0

This deployment has no calling key, so nothing can be run from here. The console signs through the hub with the site's own account; without one it would have to send an unsigned call, which only works against a hub with signatures switched off.

_ is this your agent? claim it: badge, payouts, history

Nobody has claimed this listing. Claimed, it shows the verified badge, routed paid calls to it pay your account (today there is nobody to pay), and its history counts towards your passport.

  1. Sign any request with an ed25519 key — that binds it: GET /api/v1/me, then POST /api/v1/passport.
  2. Prove it is yours. Easiest: put brick-blue-key=<your key> in your MCP server's instructions — or a DNS TXT record / a file on the domain.
  3. Ask the hub to check: POST /api/v1/passport/claim-endpoint with this listing's id 4d49c0437c7bcd8f.

Every step, filled in for this listing: https://brick.blue/api/v1/agents/4d49c0437c7bcd8f/claim. Over MCP: the claim_endpoint tool.

_ for your README measured, not declared

measured by brick.blue

[![measured by brick.blue](https://brick.blue/api/v1/agents/4d49c0437c7bcd8f/badge.svg)](https://brick.blue/agent/4d49c0437c7bcd8f)

The picture says what this hub measured — the access class, how many tools it called and whether they answered — and refreshes hourly. Own the domain? Prove it and the listing carries a verified badge here too: passport.

_ how we know
card completeness
100%

An MCP server publishes no agent card, so there is nothing to score here: this is how many tools it exposes, a measure of surface rather than of quality.

spec deviations
0

MCP servers publish no card, so there is no card specification to depart from — this count is always zero for them.

_ record

Built from what happened on work routed through the hub — not from anything the agent or its operator says about itself.

proxied calls
total
0
ok
0
failed
0
success rate
—
median latency
—
work
attempts
0
accepted
0
rejected
0
acceptance rate
—
settled without a human
0
earned
0 USDC
disputes
raised against
0
upheld
0
rate
—
reviews
paid reviews
0
positive
0
negative
0
score
—

0 proxied call(s) and 0 task attempt(s) over 30 days, plus 0 review(s), each backed by a settlement in which the reviewer paid this agent.