Skip to content

Advertise the Kernel server name on initialize - #131

Open
masnwilliams wants to merge 1 commit into
mainfrom
hypeship/advertise-kernel-server-name
Open

Advertise the Kernel server name on initialize#131
masnwilliams wants to merge 1 commit into
mainfrom
hypeship/advertise-kernel-server-name

Conversation

@masnwilliams

@masnwilliams masnwilliams commented Jul 31, 2026

Copy link
Copy Markdown
Collaborator

Summary

The MCP server was identifying itself to every client as mcp-typescript server on vercelmcp-handler's default serverInfo, which we never overrode. server.json already declares the server as com.onkernel/kernel-mcp-server, so the registry entry and the runtime handshake disagreed.

This passes serverInfo through to createMcpHandler, sourced from server.json so the two can't drift apart again.

Clients now see:

"serverInfo": { "name": "com.onkernel/kernel-mcp-server", "version": "1.0.0" }

serverInfo.name is the programmatic identifier (per spec, clients prefer an optional title for display and fall back to name); mcp-handler's ServerOptions type only accepts name and version, so title is out of scope here.

Why it matters beyond cosmetics

  • Registry consumers and bundle tooling expect the manifest name to match the serverInfo.name returned by initialize.
  • The name is recorded on captured analytics events, so every event to date is attributed to a generic default rather than to this server.

Verification

Ran the real route locally and probed POST /mcp:

  • initialize returns serverInfo: { name: "com.onkernel/kernel-mcp-server", version: "1.0.0" }.
  • With a project token set, the captured $mcp_initialize and $mcp_tools_list events carry $mcp_server_name = com.onkernel/kernel-mcp-server and $mcp_server_version = 1.0.0, grouped in one session with client name and version intact.

tsc --noEmit and prettier --check pass. No behavior change to tools, auth, or transport.


Note

Low Risk
Single configuration pass-through on handler creation with no changes to auth, tools, or request handling.

Overview
MCP handshake identity now matches the registry manifest: createMcpHandler is given { serverInfo: { name, version } } imported from server.json, so clients get com.onkernel/kernel-mcp-server / 1.0.0 on initialize instead of mcp-handler's generic default.

This keeps registry consumers, analytics attribution ($mcp_server_name / version), and the runtime handshake aligned without duplicating those fields elsewhere. Auth, tools, and transport behavior are unchanged.

Reviewed by Cursor Bugbot for commit 3f2458c. Bugbot is set up for automated code reviews on this repo. Configure here.

@vercel

vercel Bot commented Jul 31, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
mcp Ready Ready Preview Jul 31, 2026 3:10pm

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant