bit Bswup

Preparing the app for offline use, please wait...

0%

MCP Server

This site is also an MCP server: point an AI agent at /mcp and it can read this documentation, look up any setting with its real default, and have the service worker file it just wrote reviewed - without guessing from a training snapshot.

Where the answers come from

Nothing below is a hand-maintained copy of the docs. The option and event catalogs are parsed out of the TypeScript that compiles into the shipped bit-bswup.js / bit-bswup.sw.js bundles, the component parameters are reflected off the shipped assembly, and a documentation page is rendered by the very component this site serves. When the library changes, the answers change with it.

Connect an agent

The server speaks MCP over streamable HTTP at https://bswup.bitplatform.dev/mcp. Add it to Claude Code with:

bash
claude mcp add --transport http bit-bswup https://bswup.bitplatform.dev/mcp

Or, for any client that reads an mcp.json (VS Code, Claude Desktop, Cursor, ...):

json
{
  "servers": {
    "bit-bswup": {
      "type": "http",
      "url": "https://bswup.bitplatform.dev/mcp"
    }
  }
}

Every tool is also mounted as a plain HTTP GET under /api/mcp/<ToolName>, so you can read any of them in a browser tab - no MCP client required. The explorer below uses the real MCP endpoint, and shows you both.

What makes it a good citizen

Speaking MCP is the easy half; the half that decides whether an agent uses a server well is what the server declares about itself. Everything here is verifiable from the explorer below - press Send on tools/list and read the JSON.

  • Every tool is annotated. All of them carry readOnlyHint, idempotentHint and a closed openWorldHint, so a client can tell that nothing here writes, deletes or reaches out to a third party - and can stop asking you to approve a documentation lookup.
  • Structured results, not just text. The tools that answer with data publish an outputSchema and return structuredContent, so an agent gets typed fields to reason over instead of a JSON string it has to re-parse out of prose.
  • Every argument documents itself. Each parameter carries its own description in the input schema, with the shape of the value it expects - which is what an agent reads before it guesses.
  • The URIs complete. The server answers completion/complete from its own catalogs, so a client filling in bswup://docs/{slug} is offered the slugs that exist rather than left to invent one. Try the Suggest values button under resources/read.
  • Bounded work. InspectBswupServiceWorker, the one tool that parses a file you submit, runs against a time budget and says so in its answer when it hits it, rather than reporting a partial scan as a finished one.

What an agent is told

Before a single tool is called, the server hands the client its identity and a block of instructions - the one part of an MCP server a person normally never sees, because it goes into the model's system prompt rather than into any answer. This is the live handshake with the server running this page:

Shaking hands with the server...

Try it live

This calls the running server from your browser and shows the exact JSON-RPC that goes over the wire.

Quick examples:

Request POST https://bswup.bitplatform.dev/mcp

Pick a method and press Send.

Response

-

What the server exposes

Loading the catalog from the server...

How it is built

The whole server is one controller and a handful of catalogs in this site's host project - roughly the smallest shape an MCP server can take on top of an existing ASP.NET Core app:

  • Server/Controllers/McpController.cs - every tool is a controller action carrying both [HttpGet] and [McpServerTool], which is what gives each one an MCP name and a browsable URL at the same time.
  • Server/Services/BswupScriptCatalog.cs - parses the library's TypeScript for the script attributes, the self.* settings, the mode presets, the BswupMessage constants and the built-in asset filters.
  • Server/Services/BswupServiceWorkerInspector.cs - reads a submitted service-worker.js the way the engine does, and reports the failures that otherwise only surface on a user's machine, offline.
  • Server/Program.cs - AddMcpServer().WithHttpTransport() plus app.MapMcp("/mcp").

GetBswupSourceFile hands out this site's own service-worker files and host document, the two sample projects and the library's TypeScript - the files an answer about Bswup is actually made of. It deliberately does not hand out the rest of this site: a documentation site's pages, layouts and stylesheets answer no question about Bswup, and every one of them listed is context an agent pays for before it has asked anything.