AI代理可视化界面工具

MCPViews是一款桌面应用程序,通过模型上下文协议(MCP)为AI代理提供可视化界面,支持丰富的插件系统,实现代理与用户之间的可视化协作。

  • by DeeJanuz
  • JavaScript
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 DeeJanuz/mcp-mux

使用说明

MCP视图

MCPViews是一个为AI代理提供可视化界面的桌面应用程序。通过模型上下文协议(MCP),代理可以将丰富的内容、交互式数据和完整的应用程序UI推送到配套窗口,将纯文本对话转化为可视化的交互式工作流。

真正的力量在于插件系统。每个插件将一个MCP服务器与一个自定义呈现器配对:代理通过MCP调用工具,呈现器将结果显示为一个实时的交互式UI,包括其自己的API连接、状态和用户交互。插件可以是数据治理仪表板、代码浏览器、文档编辑器或其他任何东西。代理人通过MCP工作;用户通过UI进行操作。两者都看到了相同的数据。

这模糊了代理工作流和传统应用程序之间的界限。MCPViews没有在纯AI流或手动UI之间进行选择,而是让两者同时发生——代理和人类通过共享的视觉层进行协作。

MCPViews是一个开放的主机,而不是一个自有品牌的控制平面。如果你想要一个治理控制台、一个编码驾驶舱、一个研究工作区或一个完全定制的编排外壳,你可以通过插件系统和MCP支持的渲染器来构建这种体验。

graph LR
    A[AI Agent] <-->|MCP Protocol| B[MCPViews]
    B <-->|Plugin System| C[Plugin MCP Servers]
    B -->|Rich Display| D[Companion Window]
    D -->|User Actions| B

    style A fill:#6366f1,stroke:#4f46e5,color:#fff
    style B fill:#1e1b4b,stroke:#6366f1,color:#fff
    style C fill:#6366f1,stroke:#4f46e5,color:#fff
    style D fill:#4f46e5,stroke:#3730a3,color:#fff

快速开始

1.安装MCPViews

macOS/Windows:从下载最新安装程序 发布 (.dmg 对于macOS, .msi 或 .exe 适用于Windows)。

Linux:下载 .deb, .rpm,或发布时的AppImage;否则从源代码构建(见下文)。

有关详细的平台说明和安装后设置,请参阅 安装指南.

2.连接您的AI代理

在代理的配置中添加MCPViews作为MCP服务器。MCPViews在上运行可流式HTTP MCP服务器 http://localhost:4200/mcp.

克劳德代码 --添加到您的全局或项目 .claude/settings.json:

{
  "mcpServers": {
    "mcpviews": {
      "type": "url",
      "url": "http://localhost:4200/mcp"
    }
  }
}

克劳德桌面 --Claude Desktop无法使用Streamable HTTP,需要 mcp-remote stdio桥。添加 claude_desktop_config.json:

{
  "mcpServers": {
    "mcpviews": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "http://localhost:4200/mcp"]
    }
  }
}

Cursor/Windsurf/其他MCP客户端 --指向 http://localhost:4200/mcp 作为流式HTTP MCP服务器。

3.制定规则和技能

在您的第一次谈话中,请您的代理人致电 mcpviews_setup 工具。这将返回用于持久化会话启动规则的特定于平台的指令,以便 init_session 在以后的每个会话中自动调用:

> Call the mcpviews_setup tool to configure MCPViews for this agent.

设置工具将告诉您的代理如何创建适当的规则文件(例如。, .claude/rules/mcpviews-init.md 对于Claude Code),因此MCPViews会自动初始化。

4.安装插件

插件使用第三方MCP服务器的工具扩展MCPViews。直接通过您的代理浏览并安装它们:

> Call list_registry to see available plugins.
> Call mcpviews_install_plugin with trigger_auth: true to install and authenticate in one step.

或者使用 图形用户界面:单击系统托盘图标并选择 管理插件 直观地浏览、安装和配置插件。

需要身份验证的插件(OAuth、API密钥或承载令牌)将在 init_session 回应。使用 start_plugin_auth 单独验证或通过 trigger_auth: true 安装时将其内联处理。

5.构建自己的插件

请参阅 插件开发指南 有关分步演练,包括:

  • 创建插件清单
  • 编写自定义渲染器
  • 设置MCP服务器集成和身份验证
  • 打包并发布到注册表

有关完整的清单模式和身份验证参考,请参阅 插件系统参考.


建筑

  • Rust后端 (axum):上的环回HTTP服务器 :4200 用于推送API+审核工作流程
  • WebView前端:用于核心内容类型的Vanilla JS渲染器,以及目前由内部兼容模块支持的可选工作区外壳;通过插件提供特定领域和控制平面体验
  • Node.js sidecar:用于远程服务器连接的SSE网桥
  • 系统托盘:隐藏到托盘,单击显示,登录时自动启动

托管人工智能提供商

捆绑的AI工作空间可以指向兼容的托管AI提供商,而不是家庭服务。集 MCPVIEWS_AI_PROVIDER_BASE_URL 访问您的控制平面URL,并实现中记录的线程/运行时契约 托管AI线程提供者合约.现有 MCPVIEWS_FIRST_PARTY_AI_* 和 PROPAASAI_* 环境变量仍支持作为遗留别名。

在开源构建中,AI工作区默认处于休眠状态。MCPViews仅在通过配置提供程序基本URL后显示标头入口点 MCPVIEWS_AI_PROVIDER_BASE_URL,捆绑构建时默认值,或 ~/.mcpviews/config.json.

从源头构建

需要Rust、Node.js 20.19+或22.12+以及特定于平台的系统库。

干净的Ubuntu上的Rust和Node.js:

# Rust (user-local)
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
. "$HOME/.cargo/env"

# Node 20.19+ (user-local)
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash
export NVM_DIR="$HOME/.nvm"
. "$NVM_DIR/nvm.sh"
nvm install 20.19.0
nvm use 20.19.0

Linux先决条件:

# Ubuntu 24.04 / Debian:
sudo apt install -y \
  pkg-config libssl-dev \
  libwebkit2gtk-4.1-dev \
  libayatana-appindicator3-dev \
  librsvg2-dev patchelf

# Fedora:
sudo dnf install webkit2gtk4.1-devel libappindicator-gtk3-devel librsvg2-devel openssl-devel pkgconf-pkg-config

# Arch:
sudo pacman -S webkit2gtk-4.1 libappindicator-gtk3 librsvg openssl pkgconf

Ubuntu 24.04使用 libayatana-appindicator3-dev;较旧的Debian/Ubuntu版本可能需要 libappindicator3-dev 相反。不要同时安装这两个。

构建:

git clone https://github.com/DeeJanuz/mcpviews.git
cd mcpviews
npm install
npm run build

在存储库根工作区下构建输出区域:

  • 二元的: target/release/mcpviews
  • Linux捆绑包: target/release/bundle/deb/*.deb, target/release/bundle/rpm/*.rpm, target/release/bundle/appimage/*.AppImage

默认情况下,MCPViews绑定到环回。集 MCPVIEWS_BIND_ADDR=0.0.0.0 仅当您有意希望从其他设备访问本地MCP服务器时。

发展

# Install dependencies
npm install

# Dev mode (hot reload frontend + Rust backend)
npm run dev

# Build frontend only
npm run build:frontend

# Build Rust backend only (from src-tauri/)
cargo build

# Build full Tauri app (frontend + backend + installer)
npm run build

# Build a macOS dev app/dmg with local sibling plugins bundled
npm run build:mac-dev-bundle

测试Push API

# Health check
curl http://localhost:4200/health

# Push rich content
curl -X POST http://localhost:4200/api/push \
  -H 'Content-Type: application/json' \
  -d '{"toolName":"rich_content","result":{"data":{"title":"Test","body":"## Hello\n\nThis is a test."}}}'

# Push with review (returns immediately with session_id; call await_review to wait for decision)
curl -X POST http://localhost:4200/api/push \
  -H 'Content-Type: application/json' \
  -d '{"toolName":"structured_data","result":{"data":{"title":"Review Changes","tables":[{"id":"changes","name":"Changes","columns":[{"id":"target","name":"Target","change":null},{"id":"summary","name":"Summary","change":"update"}],"rows":[{"id":"change-1","cells":{"target":{"value":"Introduction section","change":null},"summary":{"value":"Replace intro text","change":"update"}},"children":[]}]}]}},"reviewRequired":true}'

SSE侧车

连接到远程应用程序的伴随流,并将事件转发到本地HTTP服务器。

# Build
cd sidecar && bash build.sh

# Run
node sidecar/dist/sse-bridge.mjs --app-host https://app.example.com --key lf_companion_xxx

项目结构

mcpviews/
├── bundled-plugins/        # Bundled/example plugin manifests
│   └── tribex-ai/          # Hosted workspace compatibility manifest
├── src-tauri/              # Rust backend
│   ├── src/
│   │   ├── main.rs         # Tauri entry, tray, plugin setup
│   │   ├── http_server.rs  # axum HTTP server (:4200)
│   │   ├── session.rs      # In-memory session store
│   │   ├── review.rs       # Pending review channels (oneshot)
│   │   ├── commands.rs     # Tauri IPC commands
│   │   └── state.rs        # Shared app state
│   ├── Cargo.toml
│   └── tauri.conf.json
├── src/                    # Frontend (Vite entry)
│   ├── index.html          # HTML shell + workspace navigation frame
│   └── styles.css          # Shared app styles and workspace shell layout
├── public/                 # Static assets (copied to dist)
│   ├── main.js             # App bootstrap (Tauri IPC)
│   └── renderers/          # Built-in content renderers + hosted AI provider surfaces
├── sidecar/                # Node.js SSE bridge
│   ├── sse-bridge.ts
│   └── build.sh
├── registry/               # Plugin registry
│   └── registry.json       # Default registry with available plugins
├── cli/                    # CLI plugin manager
│   └── src/main.rs
├── shared/                 # Shared types (manifest, auth, registry)
│   └── src/lib.rs
├── package.json
└── vite.config.ts

插件系统

MCPViews支持使用第三方MCP服务器的工具扩展应用程序的插件。每个插件都在JSON清单中声明渲染器映射、MCP服务器配置和身份验证。已安装的插件位于 ~/.mcpviews/plugins/{plugin-name}/,与 manifest.json 以及任何打包的渲染器、提示、工具或首选项文件。

有关托管AI工作区持久文件存储,请参阅 工作空间文件浏览器.MCPViews使用提供商拥有的沙箱路由和短期签名的工作URL;存储凭据保留在托管的控制平面和工作环境中。

捆绑清单和资源插件目录也可以随应用程序一起提供。MCPViews种子内置兼容性在启动时显示,mac开发包可以从以下应用程序资源中安装完整的插件目录 bundled-plugins/mac-dev/ 因此,本地插件工作树可以立即使用,而无需更改公共插件契约。

有关完整文档,请参阅 docs/plugins.md。有关创建自己的插件的分步指南,请参阅 docs/plugin-development.md.

安装插件

通过GUI

打开系统托盘菜单并选择 管理插件。从那里,您可以:

  • 浏览插件注册表以发现和安装可用插件
  • 从本地清单文件添加自定义插件
  • 查看已安装的插件并将其删除

通过CLI

# Search the registry
mcpviews-cli plugin search

# Install a plugin from the registry
mcpviews-cli plugin add decidr

# List installed plugins
mcpviews-cli plugin list

# Install from a local manifest file
mcpviews-cli plugin add-custom ./my-plugin.json

# Remove a plugin
mcpviews-cli plugin remove decidr

有关完整的CLI文档,请参阅 docs/cli.md.

插件清单格式

插件清单是一个JSON文件,其中包含渲染器映射和MCP配置:

{
  "name": "my-plugin",
  "version": "1.0.0",
  "renderers": {
    "tool_name": "renderer_name"
  },
  "mcp": {
    "url": "http://localhost:8080/mcp",
    "auth": {
      "type": "bearer",
      "token_env": "MY_API_KEY"
    },
    "tool_prefix": "myplugin_"
  }
}
字段 描述
name 唯一插件标识符
version 语义版本
renderers 将MCP工具名称映射到前端渲染器
mcp.url MCP服务器端点
mcp.auth 身份验证配置(bearer, api_key,或 oauth)
mcp.tool_prefix 为工具名称添加前缀以避免冲突

支持三种身份验证类型: 持有者令牌, API密钥,以及 OAuth.承载器/API密钥插件可以使用通过MCPViews输入的存储令牌,环境变量作为回退;OAuth使用浏览器重定向流和存储的可刷新令牌。看 docs/plugins.md 获取完整的模式参考。

CLI参考

命令 描述
mcpviews-cli plugin list 列出已安装的插件
mcpviews-cli plugin add <name> 从注册表安装插件
mcpviews-cli plugin remove <name> 删除已安装的插件
mcpviews-cli plugin add-custom <path> 从本地清单文件安装
mcpviews-cli plugin search [query] 搜索插件注册表

看 docs/cli.md 查看完整的使用示例和配置。