Burnish
Swagger UI for MCP servers.
Explore any MCP server in your browser. No LLM, no API key, no config.
______________________________________________________________________
快速入门
npx burnish -- npx -y @burnishdev/example-server就是这样。Burnish生成了示例MCP服务器,读取其工具列表,打开浏览器,并将每个工具呈现为交互式表单。示例服务器附带了十几个工具——创建错误报告、列出团队成员、搜索记录——这样你就可以点击、填写表单,并查看以卡片、表格和图表呈现的结果,而无需编写一行自己的MCP代码。
想在另一台服务器上尝试一下吗?点 burnish 在任何stdio或SSE MCP服务器上--请参阅 你能指出什么 在......下面
尝试托管演示: blash-demo.fly.dev
为什么是Burnish?
- 零法学硕士。 没有OpenAI密钥,没有Anthropic密钥,没有推理成本。永远。资源管理器模式是100%确定性的——模式输入、形式输出、结果呈现。
- 零配置。 点
npx burnish在MCP服务器命令下,它运行。没有JSON文件,没有帐户,没有Docker。 - 零数据离开您的机器。 CLI在本地运行,仅与您指向的MCP服务器通信。默认情况下,没有分析像素,也没有遥测。
与替代方案相比
| 烧伤 | MCP检查员 | 复合材料/橡胶 | 史密斯利 | n8n | |
|---|---|---|---|---|---|
| 没有LLM的作品 | ✅ | ✅ | ❌ | ➖ | ❌ |
| 丰富的可视化 | ✅ 卡片、表格、图表 | ❌ 原始JSON | ➖ 有限 | ➖ 仅限注册表 | ➖ 节点输出 |
| 任何MCP服务器 | ✅ | ✅ | ➖ 500预包装 | ➖ 仅浏览 | ➖ 自定义节点 |
| 自动生成的表单 | ✅ 来自架构 | ❌ 手动JSON | ➖ 仅预装 | ❌ | ➖ 节点配置界面 |
| 本地/私人 | ✅ 完全地✅ | ❌ 云 | ❌ 云 | ➖ 自主机(重型) | |
| 零设置 | ✅ npx burnish | ✅ npx | ❌ 需要帐户 | ➖ 仅浏览 | ❌ 需要Docker |
| 可组合 | ✅ 任何服务器组合 | ❌ 单服务器 | ❌ 锁定生态系统 | ➖ | ➖ 工作流生成器 |
✅ 全力支持·➖ 部分/有限·❌ 不支持
你能指出什么
# The Burnish example server — richest default demo
npx burnish -- npx -y @burnishdev/example-server
# Any published stdio MCP server
npx burnish -- npx -y @modelcontextprotocol/server-filesystem /tmp
# GitHub (needs a PAT)
GITHUB_PERSONAL_ACCESS_TOKEN=ghp_... \
npx burnish -- npx -y @modelcontextprotocol/server-github
# An SSE / HTTP MCP server
npx burnish --sse https://your-mcp-server.example.com/sse
# A multi-server config file
npx burnish --config ./mcp-servers.json所有配置的服务器在启动时连接。他们的工具可以立即使用——可以从浏览器中发现、记录和执行。
适用于MCP服务器所有者
让您的用户在不克隆任何内容的情况下浏览您的服务器。请将此放入您的自述文件中:
[](https://github.com/danfking/burnish)
npx burnish -- npx @your-org/your-mcp-server
希望您的工具结果呈现为卡片、表格和图表,而不是原始JSON?请参阅 输出格式指南.
链接
- 托管演示 — blash-demo.fly.dev
- 讨论 —
- 问题 —
- 注册表 --Smithery,Glama,mcp.so(追踪于 #383)
特性
连接。浏览。执行。一切都是由服务器的工具模式驱动的。
- 即时工具发现 --列出的每个工具及其描述和输入模式
- 自动生成的表单 --JSON模式输入,交互式表单输出
- 丰富的结果 --响应呈现为卡片、表格、图表、统计栏,而不是原始JSON
- 完全私密 --在本地运行,没有外部调用,默认情况下没有遥测
- 零配置 —
npx burnish而你正在奔跑 - 深入导航 --可折叠部分和会话持久性
- 框架无关 --标准web组件,无React/Vue/Angular锁定
- 可主题化的 —
--burnish-*CSS自定义属性 - 无构建步骤 --将组件作为ES模块从CDN导入
组件参考
10升3个web组件,每个组件由JSON属性驱动。下面的每个例子都是现场直播的 托管演示 --点击“试试”直接打开工具。
| 组件 | 预览 | 关键属性 | 目的 | 实例 |
|---|---|---|---|---|
| `` | card | title, status, body, meta (JSON), item-id | 带有向下钻取功能的单个项目 | 试试看 |
| `` | stat-bar | items (JSON: [{label, value, color?}]) | 汇总指标/过滤药丸 | 试试看 |
| `` | table | title, columns (JSON), rows (JSON), status-field | 带有状态着色的表格数据 | 试试看 |
| `` | chart | type (线/条/甜甜圈), config (JSON) | Chart.js可视化 | 试试看 |
| `` | section | label, count, status, collapsed | 可折叠分组容器 | 试试看 |
| `` | metric | label, value, unit, trend (上/下/平) | 单个KPI显示 | 试试看 |
| `` | message | role (用户/助理), content, streaming | 聊天泡泡 | 试试看 |
| `` | form | title, tool-id, fields (JSON) | 用户输入/工具执行 | 试试看 |
| `` | actions | actions (JSON: [{label, action, prompt, icon?}]) | 上下文下一步按钮 | 试试看 |
| `` | pipeline | steps (JSON: [{server, tool, status}]) | 实时工具链可视化 | 试试看 |
状态值: success, warning, error, muted, info --通过CSS自定义属性映射到语义颜色。
动作类型: read (自动调用,安全)和 write (显示表单,需要用户确认)。
SDK集成
中间件
只需一行即可将Burnish Explorer添加到MCP服务器:
import { withBurnishUI } from "burnish/middleware";
await withBurnishUI(server, { port: 3001 });架构导出
npx burnish export -- npx @your-org/your-server > schema.json在您自己的项目中使用
CDN(无构建步骤)
npm
npm install @burnishdev/componentsimport '@burnishdev/components';
// Components auto-register with burnish-* prefix.
// Custom prefix:
import { BurnishCard } from '@burnishdev/components';
customElements.define('my-card', class extends BurnishCard {});渲染器
npm install @burnishdev/rendererimport { findStreamElements, appendStreamElement } from '@burnishdev/renderer';
const elements = findStreamElements(chunk);
for (const el of elements) {
appendStreamElement(container, stack, el, safeAttrs, sanitize);
}配置
MCP服务器
在中配置 apps/demo/mcp-servers.json 从源头运行时,或通过 --config 到CLI:
{
"mcpServers": {
"example": {
"command": "npx",
"args": ["-y", "@burnishdev/example-server"]
},
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/path/to/dir"]
},
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "${GITHUB_PERSONAL_ACCESS_TOKEN}"
}
}
}
}所有配置的服务器在启动时连接。他们的工具立即可用。
发展
git clone https://github.com/danfking/burnish.git
cd burnish
pnpm install # Install all dependencies
pnpm build # Build all packages
pnpm dev # Start the demo
pnpm test # Run Playwright tests
pnpm clean # Clean all build artifactsburnish/
├── packages/
│ ├── components/ @burnishdev/components — 10 Lit web components
│ ├── renderer/ @burnishdev/renderer — streaming parser + sanitizer
│ ├── app/ @burnishdev/app — drill-down logic + stream orchestration
│ ├── server/ @burnishdev/server — MCP hub + guards + intent resolver
│ ├── example-server/ @burnishdev/example-server — showcase MCP server (34 tools)
│ └── cli/ burnish CLI — npx burnish launcher + middleware
├── apps/
│ └── demo/
│ ├── server/ Hono API
│ └── public/ SPA shell (ES modules, no framework)
└── package.json pnpm workspace root先决条件
- Node.js 20+
- 9+
运作原理
┌──────────────────────────────────┐
│ MCP Servers │
│ (filesystem, GitHub, DB, ...) │
└──────────────┬───────────────────┘
│ tool calls / results
▼
┌──────────────────────────┐
│ Schema-Driven UI │
│ │
│ • List tools │
│ • Generate forms │
│ • Map results → comps │
└──────────┬───────────────┘
│
▼
┌──────────────────────────┐
│ Streaming Renderer │
│ │
│ • Parse tags on arrival │
│ • Sanitize (DOMPurify) │
│ • Append to DOM │
└──────────┬───────────────┘
│
▼
┌──────────────────────────┐
│ Web Components (Lit 3) │
│ │
│ • Shadow DOM isolation │
│ • JSON attribute parsing│
│ • Event-driven drill- │
│ down navigation │
└──────────────────────────┘Burnish读取MCP服务器的工具列表,从JSON模式生成表单,并将结果直接映射到组件——循环中没有LLM。一切都在本地运行。
即将推出:Navigator
Navigator是Explorer模式下计划中的LLM驱动的自然语言层——提出一个问题,Burnish会在您连接的服务器上选择合适的工具,用您今天看到的相同组件呈现答案。资源管理器模式(您现在使用的模式)保持免费、本地和零LLM。
隐私和遥测
Burnish收藏 选择加入,匿名遥测来衡量实际采用率(见 问题#382).它是 默认情况下关闭。在CLI的第一次交互式运行中,您将看到一个提示,询问是否启用它——按Enter键或其他任何键 y 保持它关闭。
我们发送的内容(仅当您选择加入时):
v--擦亮CLI版本os--操作系统系列:darwin,linux,win32,或othernode--Node.js主要版本bucket--粗略调用计数桶:1,2-5,6-20,或21+id--首次选择加入时生成的随机安装ID(UUID)schema_version--有效载荷架构版本(当前"1")
我们从不发送的内容: 服务器URL、工具名称、模式、参数、文件路径、主机名、用户名、IP地址,我们可以在TCP连接之外看到,或者来自MCP服务器的任何内容。没有每个工具或每个模式的跟踪。
如何随时退出:
- 设置环境变量
BURNISH_TELEMETRY=0(也接受false,off,no).这将覆盖任何存储的选项。 - 或删除/编辑存储的选择文件:
- macOS/Linux: ~/.config/burnish/telemetry.json (荣誉 $XDG_CONFIG_HOME) - 窗户: %APPDATA%\burnish\telemetry.json
遥测是对 https://burnish-demo.fly.dev/telemetry/v1/ping 短暂的暂停。如果无法访问端点,CLI的行为相同——不会重试或排队。当没有存储选择时,在非交互式和CI环境中完全跳过遥测。
