mcpField
B
Burnish Example Server

Burnish Example Server

本地服务
github.com/danfking开发工具227 周前更新

关于 Burnish Example Server

Burnish 是用于在浏览器中探索和执行 MCP 服务工具的本地界面,适合 MCP 服务开发者和测试人员。它根据工具模式生成表单,并将结果呈现为卡片、表格和图表,无需 LLM。

主要功能

  1. 01自动发现工具及其模式
  2. 02根据 JSON Schema 生成表单
  3. 03以卡片、表格和图表呈现结果
  4. 04本地连接并运行 MCP 服务
  5. 05支持 stdio 和 SSE 服务
  6. 06浏览器中交互执行工具

适用场景

  1. 01测试 MCP 服务的工具调用
  2. 02检查工具输入模式
  3. 03以可视化方式查看工具输出
  4. 04向用户展示 MCP 服务能力

MCP 相关

Burnish 连接配置的 MCP 服务,读取其工具列表和模式,并在浏览器中提供交互表单与结果展示。支持 stdio 或 SSE MCP 服务。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"burnish": {
"command": "npx",
"args": [
"-y",
"@burnishdev/example-server"
]
}
}
}
启动命令npx -y @burnishdev/example-server

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@burnishdev/example-server

工具

34

收录的工具列表 · 更新于 3 周前

参数类型必填说明
statusenum否按状态筛选planning | active | on-hold | completed

详细介绍

Burnish Explorer:选择一个 MCP 服务,查看所有工具,填写表单并获得渲染后的结果——无需大模型。

Burnish

MCP 服务的 Swagger UI。

在浏览器中探索任意 MCP 服务。无需大模型、API 密钥或配置。

npm 版本 许可证:AGPL-3.0 CI 状态 使用 Burnish 探索


快速开始

npx burnish -- npx -y @burnishdev/example-server

就这么简单。Burnish 会启动示例 MCP 服务,读取其工具列表,打开浏览器,并将每个工具渲染为交互式表单。示例服务附带十多个工具——创建缺陷报告、列出团队成员、搜索记录等。你可以逐个点击、填写表单,并查看渲染为卡片、表格和图表的结果,无需编写任何 MCP 代码。

Burnish Explorer 展示将示例服务的 list-projects 工具渲染为卡片

想用其他服务试试吗?将 burnish 指向任意 stdio 或 SSE MCP 服务——参见下文的可以指向哪些服务。

试用托管演示:burnish-demo.fly.dev

为什么选择 Burnish?

  • 无需大模型。 不需要 OpenAI 密钥或 Anthropic 密钥,也没有推理成本。永远如此。探索模式完全确定——输入架构,生成表单并渲染结果。
  • 无需配置。 将 npx burnish 指向 MCP 服务命令即可运行。不需要 JSON 文件、账户或 Docker。
  • 数据不会离开你的设备。 CLI 在本地运行,只与指定的 MCP 服务通信。默认不使用分析像素或遥测。

与其他方案相比

BurnishMCP InspectorComposio / RubeSmitheryn8n
无需大模型即可运行✅✅❌➖❌
丰富的可视化✅ 卡片、表格、图表❌ 原始 JSON➖ 有限➖ 仅注册表➖ 节点输出
支持任意 MCP 服务✅✅➖ 500 个预封装服务➖ 仅浏览➖ 自定义节点
自动生成表单✅ 根据架构生成❌ 手动编写 JSON➖ 仅预构建表单❌➖ 节点配置 UI
本地 / 私有运行✅ 完全支持✅❌ 云端❌ 云端➖ 自托管(较重)
无需设置✅ 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 服务所有者

让用户无需克隆任何内容即可探索你的服务。将以下内容添加到 README 中:

[![Explore with Burnish](https://img.shields.io/badge/Explore-with%20Burnish-8B3A3A)](https://github.com/danfking/burnish)

```bash
npx burnish -- npx @your-org/your-mcp-server
```

想让工具结果以卡片、表格和图表的形式呈现,而不是原始 JSON?请参阅输出格式指南。

链接

功能

连接、浏览、执行。一切均由服务端的工具架构驱动。

  • 即时发现工具 — 列出每个工具及其描述和输入架构
  • 自动生成表单 — 输入 JSON Schema,输出交互式表单
  • 丰富的结果呈现 — 响应以卡片、表格、图表和统计条的形式呈现,而非原始 JSON
  • 完全私密 — 在本地运行,不进行外部调用,默认不收集遥测数据
  • 零配置 — 运行 npx burnish 即可启动
  • 下钻导航 — 可折叠区块和会话持久化
  • 与框架无关 — 使用标准 Web 组件,不受 React/Vue/Angular 限制
  • 支持主题 — 使用 --burnish-* CSS 自定义属性
  • 无需构建 — 从 CDN 以 ES 模块形式导入组件

组件参考

10 个由 JSON 属性驱动的 Lit 3 Web 组件。以下每个示例都可在在线演示中使用 — 点击“Try it”即可直接打开工具。

组件预览主要属性用途在线示例
<burnish-card>卡片title, status, body, meta (JSON), item-id支持深入查看的单个条目试用
<burnish-stat-bar>统计栏items (JSON: [{label, value, color?}])汇总指标 / 筛选标签试用
<burnish-table>表格title, columns (JSON), rows (JSON), status-field带状态颜色的表格数据试用
<burnish-chart>图表type (line/bar/doughnut), config (JSON)Chart.js 可视化图表试用
<burnish-section>分区label, count, status, collapsed可折叠的分组容器试用
<burnish-metric>指标label, value, unit, trend (up/down/flat)单项 KPI 展示试用
<burnish-message>消息role (user/assistant), content, streaming聊天气泡试用
<burnish-form>表单title, tool-id, fields (JSON)用户输入 / 工具执行试用
<burnish-actions>操作actions (JSON: [{label, action, prompt, icon?}])上下文相关的后续操作按钮试用
<burnish-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 });
Schema 导出
npx burnish export -- npx @your-org/your-server > schema.json

在自己的项目中使用

CDN(无需构建步骤)
<script type="module"
  src="https://esm.sh/@burnishdev/[email protected]"></script>
<link rel="stylesheet"
  href="https://cdn.jsdelivr.net/npm/@burnishdev/[email protected]/src/tokens.css" />

<burnish-card
  title="API Gateway"
  status="success"
  body="All systems operational"
  meta='[{"label":"Uptime","value":"99.9%"},{"label":"Latency","value":"42ms"}]'
  item-id="api-gw-1">
</burnish-card>
npm
npm install @burnishdev/components
import '@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/renderer
import { 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 中进行配置,或向 CLI 传入 --config:

{
  "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 artifacts
burnish/
├── 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+
  • pnpm 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 Schema 生成表单,并将结果直接映射到组件 — 整个流程不涉及大模型。一切都在本地运行。

即将推出:Navigator

Navigator 是计划中的、由大模型驱动的自然语言层,构建于 Explorer 模式之上——提出问题,Burnish 就会从你已连接的服务中选出合适的工具,并使用你现在看到的相同组件呈现答案。Explorer 模式(你现在使用的模式)将继续保持免费、本地运行且不使用大模型。

加入候补名单 →

隐私与遥测

Burnish 会收集需主动选择加入的匿名遥测数据,以衡量实际使用情况(参见 issue #382)。默认关闭。首次以交互方式运行 CLI 时,你会看到一个询问是否启用的提示——按 Enter 或输入除 y 以外的任何内容都会保持关闭。

仅在你选择加入时发送的内容:

  • v — burnish CLI 版本
  • os — 操作系统系列:darwin、linux、win32 或 other
  • node — Node.js 主版本
  • bucket — 粗略的调用次数区间:1、2-5、6-20 或 21+
  • id — 首次选择加入时生成的一次性随机安装 ID(UUID)
  • schema_version — 负载架构版本(当前为 "1")

**绝不会发送的内容:**服务 URL、工具名称、架构、参数、文件路径、主机名、用户名、除 TCP 连接可见信息之外的 IP 地址,或 MCP 服务中的任何内容。我们不会按工具或架构进行跟踪。

随时选择退出的方法:

  1. 设置环境变量 BURNISH_TELEMETRY=0(也接受 false、off、no)。此设置会覆盖任何已存储的选择。
  2. 或删除/编辑存储选择的文件:
    • macOS / Linux:~/.config/burnish/telemetry.json(遵循 $XDG_CONFIG_HOME)
    • Windows:%APPDATA%\burnish\telemetry.json

遥测只会发送一次 HTTPS POST 到 https://burnish-demo.fly.dev/telemetry/v1/ping,并设置较短的超时时间。如果无法访问该端点,CLI 的行为不受影响——不会重试或排队。在非交互式环境和 CI 环境中,如果没有存储任何选择,则会完全跳过遥测。

许可证

AGPL-3.0 — Daniel King (@danfking)

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。