Lowercase MCP tool and prompt copy to match brand casing - #231
Merged
Merged
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
masnwilliams
approved these changes
Oct 2, 2026
masnwilliams
left a comment
Collaborator
There was a problem hiding this comment.
lgtm. the guard test catches the regressions that matter, and nothing in the server parses the old casing. two optional nits inline.
This branch was successfully deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Applies KERNEL brand casing to the human-readable text this server sends to MCP clients. Prose is now lowercase, including sentence starts, headings, acronyms (id, api, url, totp, cdp, json, http, mfa, oauth) and technology or third-party names (playwright, chrome, link, agentcard, stripe, 1password). Every prose reference to the company or product is now
KERNEL.728 string literals changed across 42 source files under
src/lib/mcp.What changed
title/description, annotation titles, every zod.describe(...)in input and output schemas, and zod refinement and validation messages.prompts.ts, including the debug guide), plusTELEMETRY_EVENT_CATALOG.errorResponse/textResponsemessages,throwToolErrorprefixes (error in <tool> (<action>): …),next_actions, notes,emptyText, guidance arrays, feedbackRESPONSE_MESSAGES, managed-auth status and instruction strings, and resource-template errors and labels.prompts.test.tsgets a new guard test (keeps advertised metadata and prompts in brand casing). It reuses the existing collection of every advertised description, title and prompt text. After stripping fenced and inline code, double-quoted literals, URLs, paths and constant-style identifiers (ERR_HTTP2_PROTOCOL_ERROR,MINTLIFY_DOMAIN), it fails on any uppercase letter outsideKERNELand on\bkernel\bin prose. The existing access-language checks are unchanged; they now share the setup helper.not.toContain(...)assertions, which would otherwise pass trivially against lowercase text.What is not changed
action "list",provider: "kernel", key names like"Return"/"Ctrl+t"), URLs, paths, env var names, error codes, CLI commands (kernel browsers get …) and JSON examples.status: "AUTHENTICATED").src/lib/mcp/apps/(managed-auth app UI and generated bundle), logs, code comments, the OAuth/HTTP auth layer, and server startup config errors (KERNEL_MCP_*_TOOLSETS).Changes beyond casing
The guard can only tell code from prose when the code is marked up, and lowercasing some text would change what it means. These are the only non-casing edits:
browser_repldescription: the three full JavaScript examples are now wrapped in```jsfences. Code identifiers that appeared in prose (repl.write(JSON.stringify(value)),accessibilitySnapshot().nodes,innerHTML, the native helper list,sessionId,!pwBrowser.isConnected(), …) are now in backticks. CDP'sTargetdomain is in backticks so it doesn't read as the word "target".browser_replsection headers (LANGUAGE AND OUTPUT, …) are now###markdown headers (### language and output, …) so they still read as section markers.execute_playwright_code:webmcp.listTools()is now in backticks.webmcp: tool metadata and annotation field names (inputSchema,readOnlyHint, …) andtool.inputSchemaare now in backticks. 1Password guidance:noExistingCredentialsis now in backticks.browser_curl:defaults to GET→defaults to "GET", andPOST, PUT, or PATCH→"POST", "PUT", or "PATCH". These are enum values; plain lowercase "get" would be ambiguous.manage_proxiescountry example:'US'→"US", since it's an API value and lowercase'us'reads as a pronoun.manage_auth_connectionscredential_pathexample:'VaultName/ItemName'→`VaultName/ItemName`(backticked so it keeps the real name casing).manage_vault_credentials, and the_intentexample.Testing
bunx tsc --noEmit --incremental falsebun test(847 pass, 0 fail)bun run check:managed-auth-appbunx prettier --check "src/**/*.ts"Kernelorkernelback in a tool title makes it fail.