返回市场
呼啸

呼啸

作者:Portkey-AI8 星标更新:2025-11-21

项目介绍

🦉 Hoot

npm 版本 npm 下载量 许可证: MIT Node.js 版本

MCP 测试工具 — 类似 Postman,但针对模型上下文协议(Model Context Protocol)。

使用美观的界面测试、调试和探索 MCP 服务器。无需 AI 聊天。

https://github.com/user-attachments/assets/e3add38e-9636-4f40-99d8-f4a2b8f0f056

⚠️ 测试版软件 — Hoot 正在积极开发中。发现错误?打开一个问题。想要贡献?欢迎 PR

快速开始

🌐 即时尝试(无需安装):

👉 hoot.run — 在浏览器中打开,准备好进行测试。

或者本地运行:

npx -y @portkey-ai/hoot

localhost:8009 打开。一条命令,零配置。

npx-hoot

功能

核心测试

  • 连接到任何 MCP 服务器 — 支持 HTTP 和 SSE 传输
  • 自动检测 — 只需粘贴一个 URL,Hoot 将会处理其余部分
  • 执行工具 — 使用参数测试工具并查看响应
  • 复制粘贴友好 — 一切都可以复制粘贴

认证与安全

  • OAuth 2.1 自动发现和合规性测试(文档
  • 基于 JWT 的会话 — 安全的本地认证
  • 速率限制及审计日志 — 内置的安全特性
  • 默认仅限本地主机 — 对本地开发安全

智能功能

  • 智能工具过滤 — 由 AI 驱动的上下文感知工具选择
  • 聊天界面 — 使用 LLM 辅助进行对话式工具测试
  • 键盘快捷键 — 雷霆般的导航速度(文档
  • 8 种美丽的主题 — 适用于各种偏好的亮色和暗色模式(文档

共享与协作

  • 🦉 "在 Hoot 中试用" 链接 — 通过单个 URL 分享服务器(文档
  • 持久状态 — 你的服务器和工具在会话之间保持配置

工作原理

Hoot 运行一个 Node.js 后端作为 MCP 客户端,当从浏览器连接到 MCP 服务器时消除 CORS 问题。

浏览器(React)→ 后端(Node.js/Express)→ MCP 服务器

架构亮点:

  • 无 CORS 头痛 — 后端处理所有 MCP 连接
  • 持久 OAuth 令牌 — 安全存储在 SQLite 中(~/.hoot/hoot-mcp.db
  • 基于会话的身份验证 — JWT 令牌用于安全的前端后端通信
  • 边缘就绪 — 部署到 Cloudflare Workers 以实现全球托管(指南

数据持久化

在 hoot.run 上:

  • 服务器配置及工具 — 保存在浏览器 localStorage 中
  • OAuth 令牌 — 由托管后端管理
  • 聊天历史 — 保存在 localStorage 中

在本地(npx/npm)上:

  • 服务器配置及工具 — 保存在浏览器 localStorage 中
  • OAuth 令牌 — 存储在 ~/.hoot/hoot-mcp.db(跨 npx 运行持久化)
  • 聊天历史 — 保存在 localStorage 中

你的服务器在会话之间保持配置!

开发

从源代码运行:

git clone https://github.com/Portkey-AI/hoot
cd hoot
npm install
npm run dev:full
  • 后端运行在 localhost:8008
  • 前端运行在 localhost:8009

可用脚本:

  • npm run dev:full — 同时运行前端和后端
  • npm run backend — 仅运行后端
  • npm run dev — 仅运行前端
  • npm run build — 构建用于 npm 发布
  • npm run build:cloudflare — 构建用于 Cloudflare Workers

调试

Hoot 包含一个可以从浏览器控制台访问的客户端日志记录器:

hootLogger.download()  // 以 JSON 格式下载日志
hootLogger.clear()     // 清除日志

后端日志写入 backend.log。详情见 日志文档

文档

📚 完整文档

为什么是 Hoot?

功能Hoot手动 curl/测试
OAuth 2.1 支持✅ 自动发现 & 流程❌ 手动令牌管理
传输自动检测✅ HTTP/SSE 自动检测❌ 手动配置
视觉界面✅ 美观的 UI❌ 终端仅
工具过滤✅ AI 驱动的上下文感知❌ 无
会话持久化✅ 配置 & 令牌保存❌ 每次重新认证
共享配置✅ 一键“在 Hoot 中试用”链接❌ 复制粘贴配置

常见问题

<details> <summary><strong>Hoot 是否支持所有 MCP 服务器?</strong></summary>

是的!Hoot 支持 HTTP 和 SSE 传输,OAuth 2.1 和 API 密钥认证。我们自动检测服务器配置,使连接尽可能无缝。

</details> <details> <summary><strong>我的数据是否安全?</strong></summary>

是的。Hoot 完全运行在你的本地机器上。OAuth 令牌存储在本地 SQLite 数据库(~/.hoot/hoot-mcp.db),所有通信都在本地主机上进行。没有数据发送到外部服务器。

</details> <details> <summary><strong>我可以在生产环境中使用 Hoot 吗?</strong></summary>

Hoot 设计用于开发和测试。对于生产部署,你可以将 Hoot 部署到 Cloudflare Workers 供团队使用。参阅我们的 部署指南

</details> <details> <summary><strong>如何测试需要 OAuth 的服务器?</strong></summary>

只需添加服务器 URL。Hoot 自动检测 OAuth 要求,并引导你完成授权流程。令牌被安全存储并自动刷新。

</details> <details> <summary><strong>我可以同时测试多个服务器吗?</strong></summary>

当然可以!连接到你需要的所有服务器。Hoot 同时管理所有连接,并让你即时切换。

</details> <details> <summary><strong>Hoot 是否支持资源和提示?</strong></summary>

目前不支持,但很快就会有!当前,Hoot 专注于工具测试。资源和提示已在我们的路线图上。

</details>

路线图

我们正在努力实现完整的 MCP 规范支持。即将推出:

  • 资源 — MCP 资源列表和读取
  • 提示 — MCP 提示测试和执行
  • Electron 桌面应用 — 支持 stdio 传输的原生应用
  • 协作工作区 — 与团队共享服务器配置

想要贡献?查看 CONTRIBUTING.md打开一个问题 提出功能请求!

技术栈

  • 前端 — React 19, TypeScript, Vite, Zustand
  • 后端 — Node.js, Express, MCP SDK
  • 数据库 — SQLite (better-sqlite3)
  • 部署 — npm, Cloudflare Workers + Durable Objects
  • AI — Workers AI 用于语义工具过滤

贡献

我们欢迎贡献!请参阅 CONTRIBUTING.md 获取指南。

贡献方式:

  • 🐛 报告错误和问题
  • 💡 建议新功能
  • 📝 改进文档
  • 🔧 提交拉取请求

许可证

MIT 许可证 — 详情见 LICENSE


Portkey 制作 — 一次一个工具,让 AI 开发更简单。

我们制作这个是因为厌倦了 curl MCP 服务器。希望它对你有帮助! 🦉