Discoverability

Server card

Publish MCP server metadata so clients discover your endpoint before connecting.

MCP server cards let clients discover your server name, description, and Streamable HTTP endpoint before connecting. bitmcp serves a spec-shaped JSON document automatically.

Confirm your server is live

Deploy your app and verify health:

curl https://mcp.example.com/health

Set MCP_URL in production so the card advertises the correct public endpoint. See Installation → Environment variables.

Fetch the server card

curl https://mcp.example.com/.well-known/mcp/server-card.json

Or GET /mcp/server-card when your MCP path is /mcp.

Verify fields

Confirm the JSON includes:

  • name and title matching your app
  • remotes[0].url pointing to your public /mcp endpoint
  • supportedProtocolVersions including 2026-07-28

Optional customize

bitmcp.config.ts
import { defineConfig } from "bitmcp";

export default defineConfig({
  name: "notes",
  version: "1.0.0",
  serverCard: {
    title: "Notes MCP",
    description: "Create and search notes",
    websiteUrl: "https://notes.example.com",
  },
});

Reference

Endpoints

For an MCP path of /mcp, bitmcp serves:

URLPurpose
GET /mcp/server-cardPrimary server card endpoint
GET /.well-known/mcp/server-card.jsonWell-known alias

Responses use Content-Type: application/mcp-server-card+json, public caching with ETag support, and CORS headers for browser discovery.

Default card shape

{
  "$schema": "https://static.modelcontextprotocol.io/schemas/v1/server-card.schema.json",
  "name": "my-app/mcp",
  "version": "0.0.1",
  "title": "My App",
  "description": "My App MCP server",
  "remotes": [
    {
      "type": "streamable-http",
      "url": "https://mcp.example.com/mcp",
      "supportedProtocolVersions": ["2026-07-28"]
    }
  ]
}

Configure fields

FieldDescription
enabledSet false to disable card generation while keeping other config
nameOverride default card name
titleDisplay title (defaults to app name)
descriptionCard description
websiteUrlPublic site URL
repositorySource repository metadata
iconsIcon URLs with optional mimeType, sizes, and theme

Disable entirely with serverCard: false.

The well-known path follows current bitmcp behavior. The MCP Server Card working group may standardize a different discovery URL later.

Remote URL resolution

  • In production, set MCP_URL to your public MCP endpoint
  • Locally, bitmcp resolves the request origin and MCP path automatically
  • When OAuth is enabled, the remote URL must match your configured OAuth resource

Vercel projects need a rewrite from /mcp/server-card to the MCP handler in vercel.json.