Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

BotKelp

REMOTE · AGENT-SCAFFOLD-MCP.VERCEL.APP · SCANNED SEP 20

Verified Next.js component scaffolds via remote HTTP MCP, with integrity stamps for Claude/Cursor.

−42 this week 25 Trust /100
Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →

Endpoint Security63
Transport & Reachability0
Schema Quality & AI Usability0
  • Schema not yet verified: we couldn't read the endpoint's schema.Unverified
Stability & Change Management0
  • Stability not yet verified: not enough scan history yet (needs a 30-day window).Unverified
Tool Coverage0
  • Tool coverage not yet verified: we couldn't read the endpoint's tools.Unverified
Tool Safety0
  • Tool safety not yet verified: we couldn't read the endpoint's tools.Unverified
Capabilities0
  • Capabilities not yet verified: we couldn't read the endpoint's capabilities.Unverified

Unverified: 5 categories

Categories scored 0 because we could not verify them: authentication we do not have, an unreachable endpoint, or not enough scan history. We only credit what we can confirm.

Install

How do I install the BotKelp MCP server?

BotKelp is a hosted endpoint at https://agent-scaffold-mcp.vercel.app/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

remote · agent-scaffold-mcp.vercel.app

# add to Claude Code
claude mcp add --transport http aiscimi-code-botkelp 'https://agent-scaffold-mcp.vercel.app/mcp'
// .cursor/mcp.json
{
  "mcpServers": {
    "aiscimi-code-botkelp": {
      "url": "https://agent-scaffold-mcp.vercel.app/mcp"
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "aiscimi-code-botkelp": {
      "type": "http",
      "url": "https://agent-scaffold-mcp.vercel.app/mcp"
    }
  }
}
# ~/.codex/config.toml
[mcp_servers.aiscimi-code-botkelp]
url = "https://agent-scaffold-mcp.vercel.app/mcp"
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "aiscimi-code-botkelp": {
      "type": "remote",
      "url": "https://agent-scaffold-mcp.vercel.app/mcp",
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add aiscimi-code-botkelp --url 'https://agent-scaffold-mcp.vercel.app/mcp' --transport streamable-http
# ~/.hermes/config.yaml
mcp_servers:
  aiscimi-code-botkelp:
    url: "https://agent-scaffold-mcp.vercel.app/mcp"
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "aiscimi-code-botkelp": {
      "Transport": "http",
      "Url": "https://agent-scaffold-mcp.vercel.app/mcp"
    }
  }
}
# add to Vellum
assistant mcp add aiscimi-code-botkelp -t streamable-http -u 'https://agent-scaffold-mcp.vercel.app/mcp'
// mcp.json
{
  "mcpServers": {
    "aiscimi-code-botkelp": {
      "type": "http",
      "url": "https://agent-scaffold-mcp.vercel.app/mcp"
    }
  }
}

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 18 Sept 26 −53
    • Endpoint reachability: reachable → not serving MCP security
    • Stability: fail → unverified security
    • Tool safety: pass → unverified security
    • Authorization: fail → unverified security
    • Transport: pass → fail security
    • Schema quality: 100 → unverified functional
    • Capabilities: pass → unverified functional
    • Tool coverage: 100 → unverified functional
  • 16 Sept 26 +40
    • Stability: unverified → fail security
    • Authorization: pass → fail security
    • A breaking change shipped without a version bump: still 0.2.0 security
    • Transport: unverified → pass security
    • Injection markers: unverified → pass security
    • The server rewrote its instructions, which are the text every model session reads security
    • Tool “get_component” rewrote its description, which is the text the model reads security
    • Tool “get_projects” rewrote its description, which is the text the model reads security
    • Tool “get_scaffold” rewrote its description, which is the text the model reads security
    • Tool “purchase_scaffold” rewrote its description, which is the text the model reads security
    • Tool “set_projects” rewrote its description, which is the text the model reads security
    • Schema quality: 2037 → 2565 functional
    • “get_scaffold” made “projectid” required, so existing callers break functional
    • “set_projects” made “projectid” required, so existing callers break functional
    • “get_adminpageset” dropped the required parameter “account_api_key” functional
    • “get_component” dropped the required parameter “account_api_key” functional
    • “get_projects” dropped the required parameter “account_api_key” functional
    • “get_scaffold” dropped the required parameter “project_api_key” functional
    • “get_siteprofile” dropped the required parameter “account_api_key” functional
    • “report_issue” dropped the required parameter “account_api_key” functional
    • “set_adminpageset” dropped the required parameter “account_api_key” functional
    • “set_projects” dropped the required parameter “account_api_key” functional
    • “set_siteprofile” dropped the required parameter “account_api_key” functional
    • Endpoint reachability: behind authorisation → reachable functional
    • Tool coverage: 91% → 97% functional
    • MCP protocol: unverified → pass functional
    • Schema quality: unverified → 100 functional
    • Tool coverage: unverified → 100 functional
    • New tool “get_account_status” functional
    • New tool “get_github” functional
    • New tool “set_github” functional
    • New tool “verify_scaffold” functional
    • “purchase_scaffold” added an optional parameter “template_files” cosmetic
    • “get_scaffold” reworded the description of “projectid” cosmetic
    • “purchase_scaffold” reworded the description of “admin_page_set” cosmetic
    • “purchase_scaffold” reworded the description of “site_profile” cosmetic
    • “set_projects” reworded the description of “projectid” cosmetic
    • “set_projects” reworded the description of “rotate” cosmetic
    • “purchase_scaffold” dropped the optional parameter “account_api_key” cosmetic
    • “set_projects” dropped the optional parameter “project_api_key” cosmetic
  • 15 Sept 26 −29
    • Endpoint reachability: reachable → behind authorisation security
    • Stability: fail → unverified security
    • Tool safety: pass → unverified security
    • Transport: pass → unverified security
    • Authorization: unverified → pass security
    • First check of Authorization: partial security
    • Capabilities: pass → unverified functional
    • Tool coverage: 100 → unverified functional
    • Schema quality: 100 → unverified functional
  • 10 Sept 26 0
    • A breaking change shipped without a version bump: still 0.2.0 security
    • Tool “verify_scaffold” was removed security
    • Tool “get_scaffold” rewrote its description, which is the text the model reads security
    • Tool coverage: 82% → 91% functional
    • Schema quality: good → excellent functional
    • MCP protocol: Implements a current MCP spec version (2026-07-28). functional
    • MCP protocol version: 2025-11-25 → 2026-07-28 functional
    • “get_scaffold” added an optional parameter “site_profile” cosmetic
    • “get_scaffold” dropped the optional parameter “siteprofile” cosmetic
  • 9 Sept 26 +2
    • Stability: 0.03 → fail security
    • Tool “apply_changes_to_repo” was removed security
    • Tool “buy_scaffold_template” was removed security
    • Tool “check_component_updates” was removed security
    • Tool “create_project” was removed security
    • Tool “generate_scaffold” was removed security
    • Tool “get_admin_config” was removed security
    • Tool “get_scaffold_template” was removed security
    • Tool “get_site_profile” was removed security
    • Tool “list_projects” was removed security
    • Tool “resolve_components” was removed security
    • Tool “save_admin_config” was removed security
    • Tool “search_components” was removed security
    • The server rewrote its instructions, which are the text every model session reads security
    • Tool “report_issue” rewrote its description, which is the text the model reads security
    • Tool “verify_scaffold” rewrote its description, which is the text the model reads security
    • “report_issue” added a required parameter “account_api_key”, so existing callers break functional
    • “report_issue” added a required parameter “description”, so existing callers break functional
    • “report_issue” dropped the required parameter “body” functional
    • “report_issue” dropped the required parameter “requestId” functional
    • “report_issue” dropped the required parameter “title” functional
    • Schema quality: 200 → 165 functional
    • Schema quality: unverified → 100 functional
    • The server now declares the “resources” capability functional
    • Schema quality: excellent → good functional
    • New resource “catalog” functional
    • Server version: 0.1.0 → 0.2.0 functional
    • New tool “get_adminpageset” functional
    • New tool “get_component” functional
    • New tool “get_help” functional
    • New tool “get_projects” functional
    • New tool “get_scaffold” functional
    • New tool “get_siteprofile” functional
    • New tool “purchase_scaffold” functional
    • New tool “set_adminpageset” functional
    • New tool “set_projects” functional
    • New tool “set_siteprofile” functional
    • “report_issue” added an optional parameter “projectid” cosmetic
    • “verify_scaffold” added an optional parameter “account_api_key” cosmetic
    • “verify_scaffold” added an optional parameter “projectid” cosmetic
    • “verify_scaffold” reworded the description of “envVariables” cosmetic
    • “verify_scaffold” reworded the description of “files” cosmetic
    • “report_issue” dropped the optional parameter “actual” cosmetic
    • “report_issue” dropped the optional parameter “componentId” cosmetic
    • “report_issue” dropped the optional parameter “componentVersion” cosmetic
    • “report_issue” dropped the optional parameter “expected” cosmetic
    • “report_issue” dropped the optional parameter “kind” cosmetic
    • “report_issue” dropped the optional parameter “reporter” cosmetic
    • “verify_scaffold” dropped the optional parameter “jobId” cosmetic
    • Tool “verify_scaffold” changed its title: Verify scaffold → Verify scaffold (disabled) cosmetic
  • 8 Sept 26 0
    • Tool “generate_scaffold” rewrote its description, which is the text the model reads security
    • Tool “get_scaffold_template” rewrote its description, which is the text the model reads security
    • Schema quality: 2172 → 2812 functional
    • Stability: unverified → 0.03 functional
    • New tool “get_admin_config” functional
    • New tool “get_site_profile” functional
    • New tool “save_admin_config” functional
    • “generate_scaffold” added an optional parameter “get_site_profile” cosmetic
    • “get_scaffold_template” added an optional parameter “get_site_profile” cosmetic
  • 7 Sept 26 +40
    • Injection markers: unverified → pass security
    • Transport: fail → pass security
    • First check of Judged manipulation: pass security
    • Authorization: Authorisation not fully verified: no authorisation is required to call this server, and 11 tool(s) never declared a destructiveHint. The MCP spec treats an absent hint as destructive by default, so we cannot call this surface safe. security
    • Tool coverage: unverified → 100 functional
    • MCP protocol: unverified → pass functional
    • First check of Schema quality: fail functional
    • First check of Tool coverage: 79 functional
    • First check of Schema quality: excellent functional
    • First check of Destructive annotations: pass functional
    • First check of Schema quality: fail functional
  • 6 Sept 26 25

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 20 Sept 2026 · Probed https://agent-scaffold-mcp.vercel.app/mcp

TLS valid

Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=*.vercel.app CN=WR1,O=Google Trust Services,C=US 29 Aug 2026 27 Nov 2026 RSA 2048 SHA256-RSA f7911168ffa7d0f4135e24792e7a52a8
SANs: *.vercel.app
CN=WR1,O=Google Trust Services,C=US (CA) CN=GTS Root R1,O=Google Trust Services LLC,C=US 13 Dec 2023 20 Feb 2029 RSA 2048 SHA256-RSA 7fd9e2c2d2048a0474b627a26d0868a7
CN=GTS Root R1,O=Google Trust Services LLC,C=US (CA) CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE 19 Jun 2020 28 Jan 2028 RSA 4096 SHA256-RSA 77bd0d6cdb36f91aea210fc4f058d30d

Background: What to check on a remote MCP endpoint →

DNSSEC insecure

Validation of agent-scaffold-mcp.vercel.app. Not signed

Zone DS Keys Algorithms Outcome
. trust_anchor 20326, 38696 8, 8 Verified
app. present 23684 8 Verified
vercel.app. absent Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation
Authentication No authorisation required

The endpoint answered without asking for a token. Anyone who knows the URL can reach it.

Result No authorisation required
HTTP status 404
Header Value
strict-transport-security max-age=63072000; includeSubDomains; preload

Background: How OAuth 2.1 works in the 2026 MCP spec →

Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://agent-scaffold-mcp.vercel.app/mcp HTTP error 404
http (plaintext) http://agent-scaffold-mcp.vercel.app/mcp HTTPS enforced 308 https://agent-scaffold-mcp.vercel.app/mcp
MCP tools · 15 exposed · ~2,431 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
get_account_status ~74

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.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_adminpageset ~82

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 account_api_key.

NameTypeReqDescription
namestringThe set to fetch. Omit to list this account's set names instead.

No output schema declared.

No examples provided.

get_component ~154

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.

NameTypeReqDescription
componentstringyesComponent id, or id@version, e.g. "supabase-client@2.0.0".

No output schema declared.

No examples provided.

get_github ~97

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.

NameTypeReqDescription
pathstringFolder or file in the connected repo to list. Omit for connection status.

No output schema declared.

No examples provided.

get_help ~54

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.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_projects ~54

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.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_scaffold ~259

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.

NameTypeReqDescription
deliverystring"clone" (default): git clone command. "inline": files in the reply. No git needed. More tokens.
projectidstringyesThe project id from a previous purchase_scaffold result. Required — your project is resolved from your authenticated account.
site_profileboolean|stringfalse/omit: skip. true: attach this account's one site profile (errors if 0 or >1). A string: attach that named profile.

No output schema declared.

No examples provided.

get_siteprofile ~196

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 account_api_key.

NameTypeReqDescription
cursorstringResume token from a previous incomplete result, e.g. "doc:terms".
field"all" (default), or an array from: privacy, terms, cookies, license, custom_field.
listbooleanIf true, return this account's profile names instead of a profile's content.
siteprofilenamestringThe profile to fetch. Required unless list: true.

No output schema declared.

No examples provided.

purchase_scaffold ~566

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: provide account_api_key to pay with account credits (requires sufficient balance), or omit it entirely to pay per-call in USDC via the x402 protocol (attach payment via the MCP call's _meta["x402/payment"] — no signup, no tool argument for this). 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.

NameTypeReqDescription
admin_page_setstringOptional extra file-tree name (same overlay as template_files). Prefer site_profile / template_files.
componentsarrayyesComponent ids to include, e.g. ["nextjs-base", "tailwind", "supabase-client"].
deliverystring"clone" (default): git clone command. "inline": files in the reply. No git needed. More tokens.
maintainbooleanKeep repeat access to this repo renewable. Defaults to true. Ignored for x402 (accountless) purchases.
projectobjectProject metadata to save alongside the purchased scaffold.
site_profileboolean|stringfalse/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, …).
template_filestrue: every saved dashboard template file. Or a list of {name} and/or {source, dest} from the connected GitHub repo.

No output schema declared.

No examples provided.

report_issue ~126

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 account_api_key (spam guard), rate-limited to 10 calls/day per account. projectid is optional context. Never include API keys or secrets in description.

NameTypeReqDescription
descriptionstringyesWhat is wrong or what you want. Include enough detail to reproduce. No secrets.
projectidstringOptional project id this report relates to.

No output schema declared.

No examples provided.

set_adminpageset ~121

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.

NameTypeReqDescription
filesarrayyesThe full set of files, e.g. [{ path: "app/admin/page.tsx", content: "..." }].
namestringyesName for this set, e.g. "default" or "acme-admin".

No output schema declared.

No examples provided.

set_github ~107

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.

NameTypeReqDescription
disconnectbooleantrue: drop the connected repo. Omit to mint a fresh install URL.

No output schema declared.

No examples provided.

set_projects ~121

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.

NameTypeReqDescription
maintainboolean
projectidstringyesThe project id to change (from get_projects). Required — scoped to your authenticated account.
rotatebooleanIf true, mints a new project key and invalidates the old one.

No output schema declared.

No examples provided.

set_siteprofile ~116

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).

NameTypeReqDescription
fieldobjectyesFields to change. Omitted fields keep their current value.
siteprofilenamestringyesName for this profile, e.g. "default" or "acme-co".

No output schema declared.

No examples provided.

verify_scaffold ~304

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.

NameTypeReqDescription
envVariablesarrayEnv 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).
filesarrayThe full project to verify — a scaffold's files with your edits applied. Omit when polling with jobId.
jobIdstringPoll a previously started verification. Omit on the first call (pass files), pass the returned jobId on subsequent calls.
projectidstringyesThe project id from a previous purchase_scaffold result — must be owned by this account. Required.

No output schema declared.

No examples provided.

Common questions

What is the BotKelp MCP server?

BotKelp is an MCP server listed in the public MCP registry as io.github.aiscimi-code/botkelp. Verified Next.js component scaffolds via remote HTTP MCP, with integrity stamps for Claude/Cursor. This page covers its hosted endpoint (https://agent-scaffold-mcp.vercel.app/mcp).

Is the BotKelp MCP server safe to use?

BotKelp scores 25 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the BotKelp MCP server expose?

BotKelp exposes 15 tools: get_help, get_component, purchase_scaffold, get_scaffold, get_projects, and 10 more. Their descriptions and schemas cost roughly 2,431 tokens of context every time the server is loaded.

Does the BotKelp MCP server require authentication?

No. We connected to BotKelp without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

Is the BotKelp MCP server still maintained?

BotKelp is still listed as active in the MCP registry. We last reached this channel on 20 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.