一个基于Web的开源工具,用于测试和检查MCP服务器。
MCP Playground 是一个基于Web的开发者工具,旨在检查和测试模型上下文协议(MCP)服务器。它提供了一个交互式环境,用于探索由MCP服务器暴露的工具、资源和提示,使得调试和开发MCP集成变得容易。
关键特性:
MCP Playground 是为了快速、轻松地检查和测试MCP服务器而构建的,无需处理复杂的CLI设置或每次编写自定义脚本。在使用MCP进行开发时,显然需要一个简单的Web界面来:
而不是为每个项目重建这些功能,这个工具被开源,以便任何使用MCP的人都能从中受益。它是任何使用模型上下文协议的人应该拥有的工具。
MCP Playground 使用现代且可靠的科技构建:
所需版本:
在运行应用程序之前,您需要设置服务并配置环境变量。有关环境变量的更多详细信息,请参阅环境变量部分。
克隆并安装
# 克隆仓库
git clone https://github.com/yourusername/mcp-playground.git
cd mcp-playground
# 安装依赖
pnpm install
设置环境
在根目录下创建一个.env.local文件,包含以下变量:
# 数据库
DATABASE_URL="postgresql://postgres:postgres@localhost:5432/mcp-playground"
# Better Auth
BETTER_AUTH_SECRET="your_secret_key" # 生成方式:openssl rand -hex 32
BETTER_AUTH_URL="http://localhost:3000"
# GitHub OAuth(GitHub登录所需)
GITHUB_CLIENT_ID="your_github_client_id"
GITHUB_CLIENT_SECRET="your_github_client_secret"
# Resend(Magic Link认证所需)
RESEND_API_KEY="your_resend_api_key"
# 应用级加密
ENCRYPTION_KEY="paste_64_char_hex_key" # 生成方式:openssl rand -hex 32
启动数据库
pnpm docker:db:up
初始化数据库
pnpm db:push
启动应用
pnpm dev
在浏览器中打开
生成一个安全的秘密键用于Better Auth:
openssl rand -hex 32
添加到 .env.local:
BETTER_AUTH_SECRET="your_generated_secret"
BETTER_AUTH_URL="http://localhost:3000" # 生产环境中更改为您生产URL
前往 GitHub 开发者设置
点击“新建OAuth应用”
填写应用详情:
http://localhost:3000(开发)或您的生产URLhttp://localhost:3000/api/auth/callback/githubhttps://your-production-url/api/auth/callback/github点击“注册应用”
复制Client ID并生成Client Secret
添加到 .env.local:
GITHUB_CLIENT_ID="your_client_id"
GITHUB_CLIENT_SECRET="your_client_secret"
[!WARNING] 授权回调URL必须与您在
.env.local中配置的完全一致,包括协议(http/https)、域名和路径。
前往 Resend
创建账户或登录
导航至仪表板中的API密钥
创建一个新的API密钥
添加到 .env.local:
RESEND_API_KEY="re_..."
[!NOTE] Magic Link认证在生产使用时需要在Resend中验证域。在开发中,您可以使用Resend的测试模式。
MCP Playground 使用PostgreSQL存储服务器连接、用户数据和请求日志。
运行此命令通过Docker启动本地PostgreSQL实例:
pnpm docker:db:up
这会创建一个数据库,其中包含:
mcp-playground-dbmcp-playgroundpostgrespostgres5432设置数据库表:
pnpm db:push
创建迁移文件(在模式更改后):
pnpm db:generate
应用迁移:
pnpm db:migrate
查看数据库内容(Drizzle Studio):
pnpm db:studio
停止数据库:
pnpm docker:db:stop
移除数据库和卷:
pnpm docker:db:clean
| 变量 | 描述 | 是否必需 |
|---|---|---|
DATABASE_URL | PostgreSQL连接字符串 | 是 |
BETTER_AUTH_SECRET | Better Auth加密的秘密键 | 是 |
BETTER_AUTH_URL | 认证回调的基础URL | 是 |
GITHUB_CLIENT_ID | GitHub OAuth应用的客户端ID | 对于GitHub登录 |
GITHUB_CLIENT_SECRET | GitHub OAuth应用的客户端密钥 | 对于GitHub登录 |
RESEND_API_KEY | 发送Magic Link电子邮件的Resend API密钥 | 对于Magic Link认证 |
ENCRYPTION_KEY | 加密OAuth凭证的64位十六进制密钥 | 是 |
openssl rand -hex 32 本地生成新密钥,并将其添加到 .env.local 以及Supabase/Vercel密钥中。pnpm dev:all - 启动PostgreSQL容器和Next.js开发服务器pnpm dev - 仅启动Next.js开发服务器(需要数据库正在运行)pnpm build - 构建生产包pnpm start - 运行生产服务器pnpm lint - 运行Ultracite linter(检查模式)pnpm lint:fix - 运行Ultracite linter(修复模式)pnpm format - 使用Biome格式化代码pnpm typecheck - 运行TypeScript类型检查pnpm docker:db:up - 启动PostgreSQL容器pnpm docker:db:stop - 停止PostgreSQL容器pnpm docker:db:down - 停止并移除PostgreSQL容器pnpm docker:db:clean - 停止、移除容器并删除卷pnpm db:generate - 从模式生成Drizzle迁移pnpm db:migrate - 运行Drizzle迁移pnpm db:push - 直接将模式更改推送到数据库pnpm db:studio - 打开Drizzle Studio GUIsrc/
├── app/ # Next.js App Router
│ ├── api/auth/[...all]/ # Better Auth捕获所有路由
│ ├── server/[serverId]/ # 预取的服务器详情页面
│ ├── oauth/callback/ # OAuth回调处理器
│ └── page.tsx # 主页
├── components/
│ ├── playground/ # 主要的playground界面
│ ├── request-logs/ # 请求日志UI
│ └── ui/ # 可重用的UI组件
├── server/
│ ├── api/routers/ # tRPC API路由
│ ├── services/ # 业务逻辑
│ └── storage/ # 数据库访问层
├── lib/
│ ├── trpc/ # tRPC配置
│ ├── auth.ts # Better Auth配置
│ └── mcp/ # MCP客户端逻辑
├── db/
│ ├── schema/ # 数据库模式
│ └── index.ts # Drizzle客户端
└── env.ts # 类型安全的环境变量
MIT许可证 - 详情见LICENSE文件