BotKelp
Server Details
Verified Next.js component scaffolds via remote HTTP MCP, with integrity stamps for Claude/Cursor.
Glama couldn't complete the latest health check. If this server requires authentication, missing or expired test credentials may be the cause. A test profile lets Glama authenticate for health checks and discover tools; it is separate from your personal connections.
If you are the author, claim ownership, then add or update a test profile under Admin → Test Profile.
- Status
- Unhealthy
- Uptime
- 41.0% over 26 days
- Last Tested
- Transport
- Streamable HTTP
- URL
TDQS
Scored across 15 tools
Each tool has a distinct purpose: getters retrieve data, setters modify configurations, purchase creates scaffolds, verify runs builds, and report files issues. The only near-overlaps are get/set pairs (e.g., get_adminpageset vs set_adminpageset), but these are clearly differentiated by verb. No tool appears to duplicate another's function.
All tool names follow a consistent verb_noun snake_case pattern: get_* for reads, set_* for writes, plus purchase_scaffold, report_issue, and verify_scaffold. The naming is uniform and predictable, making it easy for an agent to infer behavior from the name alone.
With 15 tools, the server covers a complex domain (account status, component catalog, scaffolds, site profiles, admin page sets, GitHub integration, and build verification). Each tool serves a distinct function in the workflow, and the count is within the well-scoped range for a specialized MCP server.
The surface covers the full lifecycle: purchase a scaffold, fetch it, verify it, manage profiles and admin pages, connect GitHub, and report issues. Minor gaps include no delete operations for projects, profiles, or admin page sets, and no direct update for components, but these are edge cases that agents can work around (e.g., recreate via set_*).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
14 tool updates
- Added
get_account_status - Changed
get_adminpageset2 fields changed- removed
Input schema / properties / account_api_keyRemoved value: -{ - "description": "BotKelp account key (starts with \"bk_live_\"). Required.", - "type": "string" -} - removed
Input schema / requiredRemoved value: -[ - "account_api_key" -]
- Changed
get_component2 fields changed- removed
Input schema / properties / account_api_keyRemoved value: -{ - "description": "BotKelp account key (starts with \"bk_live_\"). Required.", - "type": "string" -} - changed
Input schema / requiredPrevious value: -[ - "account_api_key", - "component" -]New value: +[ + "component" +]
- Changed
get_github2 fields changed- removed
Input schema / properties / account_api_keyRemoved value: -{ - "description": "BotKelp account key (starts with \"bk_live_\").", - "type": "string" -} - removed
Input schema / requiredRemoved value: -[ - "account_api_key" -]
- Changed
get_projects2 fields changed- removed
Input schema / properties / account_api_keyRemoved value: -{ - "description": "BotKelp account key (starts with \"bk_live_\"). Required.", - "type": "string" -} - removed
Input schema / requiredRemoved value: -[ - "account_api_key" -]
- Changed
get_scaffold3 fields changed- removed
Input schema / properties / project_api_keyRemoved value: -{ - "description": "The project API key returned by purchase_scaffold (starts with \"sk_\"). Required.", - "type": "string" -} - changed
Input schema / properties / projectid / descriptionPrevious value: -"The project id from a previous purchase_scaffold result."New value: +"The project id from a previous purchase_scaffold result. Required — your project is resolved from your authenticated account." - changed
Input schema / requiredPrevious value: -[ - "project_api_key" -]New value: +[ + "projectid" +]
- Changed
get_siteprofile2 fields changed- removed
Input schema / properties / account_api_keyRemoved value: -{ - "description": "BotKelp account key (starts with \"bk_live_\"). Required.", - "type": "string" -} - removed
Input schema / requiredRemoved value: -[ - "account_api_key" -]
- Changed
purchase_scaffold1 field changed- removed
Input schema / properties / account_api_keyRemoved value: -{ - "description": "BotKelp account key (starts with \"bk_live_\"). Omit to pay via x402 instead.", - "type": "string" -}
- Changed
report_issue2 fields changed- removed
Input schema / properties / account_api_keyRemoved value: -{ - "description": "BotKelp account key (starts with \"bk_live_\"). Required.", - "type": "string" -} - changed
Input schema / requiredPrevious value: -[ - "account_api_key", - "description" -]New value: +[ + "description" +]
- Changed
set_adminpageset2 fields changed- removed
Input schema / properties / account_api_keyRemoved value: -{ - "description": "BotKelp account key (starts with \"bk_live_\"). Required.", - "type": "string" -} - changed
Input schema / requiredPrevious value: -[ - "account_api_key", - "name", - "files" -]New value: +[ + "name", + "files" +]
- Changed
set_github2 fields changed- removed
Input schema / properties / account_api_keyRemoved value: -{ - "description": "BotKelp account key (starts with \"bk_live_\").", - "type": "string" -} - removed
Input schema / requiredRemoved value: -[ - "account_api_key" -]
- Changed
set_projects5 fields changed- removed
Input schema / properties / account_api_keyRemoved value: -{ - "description": "BotKelp account key (starts with \"bk_live_\"). Required.", - "type": "string" -} - removed
Input schema / properties / project_api_keyRemoved value: -{ - "type": "string" -} - added
Input schema / properties / projectid / descriptionAdded value: +"The project id to change (from get_projects). Required — scoped to your authenticated account." - changed
Input schema / properties / rotate / descriptionPrevious value: -"If true, mints a new project_api_key and invalidates the old one."New value: +"If true, mints a new project key and invalidates the old one." - changed
Input schema / requiredPrevious value: -[ - "account_api_key" -]New value: +[ + "projectid" +]
- Changed
set_siteprofile2 fields changed- removed
Input schema / properties / account_api_keyRemoved value: -{ - "description": "BotKelp account key (starts with \"bk_live_\"). Required.", - "type": "string" -} - changed
Input schema / requiredPrevious value: -[ - "account_api_key", - "siteprofilename", - "field" -]New value: +[ + "siteprofilename", + "field" +]
- Added
verify_scaffold
3 tool updates
- Added
get_github - Changed
purchase_scaffold3 fields changed- changed
Input schema / properties / admin_page_set / descriptionPrevious value: -"Name of this account's admin page set (see set_adminpageset) to bake into a dedicated forked repo. Omit for the ordinary shared repo."New value: +"Optional extra file-tree name (same overlay as template_files). Prefer site_profile / template_files." - changed
Input schema / properties / site_profile / descriptionPrevious value: -"false/omit: skip. true: attach this account's one site profile (errors if 0 or >1). A string: attach that named profile."New value: +"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, …)." - added
Input schema / properties / template_filesAdded value: +{ + "anyOf": [ + { + "const": true, + "type": "boolean" + }, + { + "items": { + "properties": { + "dest": { + "description": "Destination in the generated project. Defaults to the file's stored path / source path.", + "type": "string" + }, + "name": { + "description": "Saved dashboard template file name.", + "type": "string" + }, + "source": { + "description": "Path in the connected GitHub repo, e.g. \"legal/gdpr.md\" or \"app/rules/page.tsx\".", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + ], + "description": "true: every saved dashboard template file. Or a list of {name} and/or {source, dest} from the connected GitHub repo." +}
- Added
set_github
11 tool updates
- Changed
get_adminpageset1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
get_component1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
get_help1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
get_projects1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
get_scaffold1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
get_siteprofile1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
purchase_scaffold1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
report_issue1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
set_adminpageset1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
set_projects1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
set_siteprofile1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
2 tool updates
- Changed
get_scaffold2 fields changed- added
Input schema / properties / site_profileAdded value: +{ + "description": "false/omit: skip. true: attach this account's one site profile (errors if 0 or >1). A string: attach that named profile.", + "type": [ + "boolean", + "string" + ] +} - removed
Input schema / properties / siteprofileRemoved value: -{ - "type": [ - "boolean", - "string" - ] -}
- Removed
verify_scaffold
4 tool updates
- Added
get_adminpageset - Changed
get_scaffold1 field changed- added
Input schema / properties / deliveryAdded value: +{ + "description": "\"clone\" (default): git clone command. \"inline\": files in the reply. No git needed. More tokens.", + "enum": [ + "clone", + "inline" + ], + "type": "string" +}
- Changed
purchase_scaffold2 fields changed- added
Input schema / properties / admin_page_setAdded value: +{ + "description": "Name of this account's admin page set (see set_adminpageset) to bake into a dedicated forked repo. Omit for the ordinary shared repo.", + "type": "string" +} - added
Input schema / properties / deliveryAdded value: +{ + "description": "\"clone\" (default): git clone command. \"inline\": files in the reply. No git needed. More tokens.", + "enum": [ + "clone", + "inline" + ], + "type": "string" +}
- Added
set_adminpageset
22 tool updates
- Removed
apply_changes_to_repo - Removed
buy_scaffold_template - Removed
check_component_updates - Removed
create_project - Removed
generate_scaffold - Removed
get_admin_config - Added
get_component - Added
get_help - Added
get_projects - Added
get_scaffold - Removed
get_scaffold_template - Removed
get_site_profile - Added
get_siteprofile - Removed
list_projects - Added
purchase_scaffold - Changed
report_issue13 fields changed- added
Input schema / properties / account_api_keyAdded value: +{ + "description": "BotKelp account key (starts with \"bk_live_\"). Required.", + "type": "string" +} - removed
Input schema / properties / actualRemoved value: -{ - "description": "What actually happened (compiler error, missing file, etc.).", - "type": "string" -} - removed
Input schema / properties / bodyRemoved value: -{ - "description": "What is wrong or what you want. Include enough detail to reproduce. No secrets.", - "type": "string" -} - removed
Input schema / properties / componentIdRemoved value: -{ - "description": "Component id this is about, e.g. \"nextjs-base\".", - "type": "string" -} - removed
Input schema / properties / componentVersionRemoved value: -{ - "description": "Component version you generated with, if known.", - "type": "string" -} - added
Input schema / properties / descriptionAdded value: +{ + "description": "What is wrong or what you want. Include enough detail to reproduce. No secrets.", + "type": "string" +} - removed
Input schema / properties / expectedRemoved value: -{ - "description": "What you expected to happen.", - "type": "string" -} - removed
Input schema / properties / kindRemoved value: -{ - "description": "bug (default), request (new component/capability), or docs.", - "enum": [ - "bug", - "request", - "docs" - ], - "type": "string" -} - added
Input schema / properties / projectidAdded value: +{ + "description": "Optional project id this report relates to.", + "type": "string" +} - removed
Input schema / properties / reporterRemoved value: -{ - "description": "Optional agent or user label. No secrets.", - "type": "string" -} - removed
Input schema / properties / requestIdRemoved value: -{ - "description": "The requestId returned by generate_scaffold / get_scaffold_template / buy_scaffold_template / verify_scaffold.", - "type": "string" -} - removed
Input schema / properties / titleRemoved value: -{ - "description": "Short issue title, e.g. \"nextjs-base layout missing html lang\".", - "type": "string" -} - changed
Input schema / requiredPrevious value: -[ - "requestId", - "title", - "body" -]New value: +[ + "account_api_key", + "description" +]
- Removed
resolve_components - Removed
save_admin_config - Removed
search_components - Added
set_projects - Added
set_siteprofile - Changed
verify_scaffold5 fields changed- added
Input schema / properties / account_api_keyAdded value: +{ + "type": "string" +} - changed
Input schema / properties / envVariables / descriptionPrevious value: -"Env var names to write placeholder values for before building (typically generate_scaffold's `envVariables` output) — needed for components that read process.env at build time (e.g. a Supabase client)."New value: +"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)." - removed
Input schema / properties / files / descriptionRemoved value: -"The full project to verify — generate_scaffold's `files` output with your edits applied. Provide this to start a verification." - removed
Input schema / properties / jobIdRemoved value: -{ - "description": "A job id from a previous WAIT response. Provide this to check a verification already started.", - "type": "string" -} - added
Input schema / properties / projectidAdded value: +{ + "type": "string" +}
2 tool updates
- Added
get_admin_config - Added
save_admin_config
3 tool updates
- Changed
generate_scaffold1 field changed- added
Input schema / properties / get_site_profileAdded value: +{ + "description": "If true, attach dashboard legal documents (privacy/terms/…) for this API key in the same result. They are not added to the generated file tree. Requires apiKey. If incomplete, call get_site_profile with next.arguments.cursor.", + "type": "boolean" +}
- Changed
get_scaffold_template1 field changed- added
Input schema / properties / get_site_profileAdded value: +{ + "description": "If true, attach dashboard legal documents for this key in the same result. They are not written into the template repo. If incomplete, call get_site_profile with next.arguments.cursor.", + "type": "boolean" +}
- Added
get_site_profile
11 tool updates
- Changed
apply_changes_to_repo2 fields changed- removed
Input schema / additionalPropertiesRemoved value: -false - removed
Input schema / properties / files / items / additionalPropertiesRemoved value: -false
- Changed
buy_scaffold_template1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
check_component_updates2 fields changed- removed
Input schema / additionalPropertiesRemoved value: -false - removed
Input schema / properties / componentPins / items / additionalPropertiesRemoved value: -false
- Changed
create_project1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
generate_scaffold3 fields changed- removed
Input schema / additionalPropertiesRemoved value: -false - changed
Input schema / properties / components / items / anyOfPrevious value: -[ - { - "description": "Component id, or id@version (e.g. \"supabase-client@2.0.0\").", - "type": "string" - }, - { - "additionalProperties": false, - "properties": { - "allow_incompatible": { - "description": "If true, return an incompatible pin with a warning instead of blocking.", - "type": "boolean" - }, - "id": { - "description": "Catalog component id.", - "type": "string" - }, - "version": { - "description": "Exact pin. Omit to auto-select the best compatible release.", - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - } -]New value: +[ + { + "description": "Component id, or id@version (e.g. \"supabase-client@2.0.0\").", + "type": "string" + }, + { + "properties": { + "allow_incompatible": { + "description": "If true, return an incompatible pin with a warning instead of blocking.", + "type": "boolean" + }, + "id": { + "description": "Catalog component id.", + "type": "string" + }, + "version": { + "description": "Exact pin. Omit to auto-select the best compatible release.", + "type": "string" + } + }, + "required": [ + "id" + ], + "type": "object" + } +] - removed
Input schema / properties / stack / additionalPropertiesRemoved value: -false
- Changed
get_scaffold_template1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
list_projects1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
report_issue1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
resolve_components3 fields changed- removed
Input schema / additionalPropertiesRemoved value: -false - changed
Input schema / properties / components / items / anyOfPrevious value: -[ - { - "description": "Component id, or id@version (e.g. \"supabase-client@2.0.0\").", - "type": "string" - }, - { - "additionalProperties": false, - "properties": { - "allow_incompatible": { - "description": "If true, return an incompatible pin with a warning instead of blocking.", - "type": "boolean" - }, - "id": { - "description": "Catalog component id.", - "type": "string" - }, - "version": { - "description": "Exact pin. Omit to auto-select the best compatible release.", - "type": "string" - } - }, - "required": [ - "id" - ], - "type": "object" - } -]New value: +[ + { + "description": "Component id, or id@version (e.g. \"supabase-client@2.0.0\").", + "type": "string" + }, + { + "properties": { + "allow_incompatible": { + "description": "If true, return an incompatible pin with a warning instead of blocking.", + "type": "boolean" + }, + "id": { + "description": "Catalog component id.", + "type": "string" + }, + "version": { + "description": "Exact pin. Omit to auto-select the best compatible release.", + "type": "string" + } + }, + "required": [ + "id" + ], + "type": "object" + } +] - removed
Input schema / properties / stack / additionalPropertiesRemoved value: -false
- Changed
search_components1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
verify_scaffold2 fields changed- removed
Input schema / additionalPropertiesRemoved value: -false - removed
Input schema / properties / files / items / additionalPropertiesRemoved value: -false
2 tool updates
- Changed
generate_scaffold5 fields changed- added
Input schema / properties / allow_incompatibleAdded value: +{ + "description": "Expert override. Returns the requested pin with a warning instead of blocking.", + "type": "boolean" +} - changed
Input schema / properties / components / descriptionPrevious value: -"Component ids to include, e.g. [\"nextjs-base\", \"tailwind\", \"supabase-client\"]."New value: +"Component ids to include, e.g. [\"nextjs-base\", \"tailwind\", \"supabase-client@2.0.0\"]." - added
Input schema / properties / components / items / anyOfAdded value: +[ + { + "description": "Component id, or id@version (e.g. \"supabase-client@2.0.0\").", + "type": "string" + }, + { + "additionalProperties": false, + "properties": { + "allow_incompatible": { + "description": "If true, return an incompatible pin with a warning instead of blocking.", + "type": "boolean" + }, + "id": { + "description": "Catalog component id.", + "type": "string" + }, + "version": { + "description": "Exact pin. Omit to auto-select the best compatible release.", + "type": "string" + } + }, + "required": [ + "id" + ], + "type": "object" + } +] - removed
Input schema / properties / components / items / typeRemoved value: -"string" - added
Input schema / properties / stackAdded value: +{ + "additionalProperties": false, + "description": "Detected project stack. When set, compatibility is a hard registry rule. Omit to receive latest (unconstrained).", + "properties": { + "angular": { + "type": "string" + }, + "django": { + "type": "string" + }, + "dotnet": { + "type": "string" + }, + "laravel": { + "type": "string" + }, + "nextjs": { + "type": "string" + }, + "node": { + "type": "string" + }, + "php": { + "type": "string" + }, + "python": { + "type": "string" + }, + "react": { + "type": "string" + }, + "supabase_ssr": { + "type": "string" + }, + "svelte": { + "type": "string" + }, + "typescript": { + "type": "string" + }, + "vue": { + "type": "string" + } + }, + "type": "object" +}
- Added
resolve_components
1 tool update
- Added
report_issue
9 tool updates
- First observed
apply_changes_to_repo - First observed
buy_scaffold_template - First observed
check_component_updates - First observed
create_project - First observed
generate_scaffold - First observed
get_scaffold_template - First observed
list_projects - First observed
search_components - First observed
verify_scaffold
Related MCP Connectors
Deploy AI-generated HTML/CSS/JS to instant public HTTPS URLs from any MCP-compatible agent.
AI Reasoning Cache & Consensus Layer with 11 MCP tools via Streamable HTTP.
Pre-flight MCP security. Blocks compromised deps + tool drift. HMAC-signed. Dredd judges.
AI website builder (Wix/Framer alt). SlateHut MCP over HTTP: tools, schemas. Bearer auth.
Related MCP Servers
- FlicenseNot gradedqualityAmaintenanceRemote HTTP MCP that generates stamped Next.js source from a verified component catalog with INTEGRITY.json. Public component source lives in botkelp/components.-
- AlicenseNot gradedqualityDmaintenanceA Next.js-based MCP server template that implements OAuth 2.1 authentication with support for both SSE and Streamable HTTP transports. Provides a reference implementation for building authenticated MCP servers that work with Claude, Cursor, VSCode, and other MCP clients.158 npm6MIT
- AlicenseAqualityDmaintenanceMCP server providing access to a catalog of reusable React/Next.js component recipes (animations, charts, UI components) with usage examples, props documentation, and architecture notes, enabling AI assistants to generate production-ready code.3MIT

@operstack/mcpofficial
AlicenseAqualityBmaintenanceEnables Claude, Cursor, and other MCP clients to audit public sites across six areas, check and follow llms.txt links, compare rival sites side by side, and run sixteen content gates on local Markdown or MDX using only free public signals.438 npmMIT
Glama MCP Gateway
Add one secure layer between your agents and this server.