关于 Oopsbot
Oopsbot 是面向团队和 Agent 的 MCP 服务,可将产品需求和文档转化为有组织的测试用例。它结合项目与文档管理,并以分阶段流程生成标题、扩展所选用例和获取结果。
主要功能
- 01根据需求生成测试用例
- 02处理 PDF、DOCX、TXT、JSON 和 MD
- 03通过向量嵌入搜索文档
- 04组织项目和文档
- 05实时传输生成进度
- 06使用令牌验证用户身份
适用场景
- 01根据用户故事创建测试用例
- 02上传需求文档以供检索
- 03选择生成的标题并扩展为详细用例
- 04按项目获取测试用例
MCP 相关
Oopsbot 通过 MCP 工具提供项目与文档管理、测试用例生成和检索功能,并使用令牌进行身份验证。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
还没有获取到工具列表
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
OopsBot MCP 服务
概述
OopsBot MCP 服务 是一种模型上下文协议(MCP)实现,可为 AI Agent 提供全面的测试用例生成和管理能力。借助 AI 自动化,将产品需求转化为全面的测试用例。
主要功能
- 🤖 AI 驱动的测试生成:根据产品需求和用户故事生成全面的测试用例
- 📄 文档处理:上传并处理各种文档格式(PDF、DOCX、TXT、JSON、MD)
- 🔍 语义搜索:通过向量嵌入实现由 RAG 驱动的文档检索
- 📊 项目管理:按项目组织测试用例和文档
- 🔐 安全身份验证:具备企业级安全性,并隔离用户数据
- ☁️ 云存储:可扩展的内容管理
- 🔄 实时流式传输:实时生成测试用例并跟踪进度
架构
┌─────────────────┐ ┌──────────────────┐ ┌─────────────────┐
│ AI Agent │───▶│ OopsBot MCP │───▶│ Backend │
│ (Client) │ │ Server │ │ Services │
└─────────────────┘ └──────────────────┘ └─────────────────┘
│
▼
┌──────────────────┐ ┌─────────────────┐
│ Cloud Storage │ │ AI Services │
│ (Test Cases) │ │ (Documents) │
└──────────────────┘ └─────────────────┘
可用工具
1. 项目管理
list_user_projects
列出与已验证用户关联的所有项目。
返回:
{
"projects": [
{
"project_id": "uuid-string",
"name": "Project Name",
"created_at": "2024-01-01T00:00:00Z"
}
],
"total": 1,
"user_id": "[email protected]"
}
create_project
创建新项目以组织文档和测试用例。
参数:
name(string):该用户的唯一项目名称
示例:
{
"name": "E-commerce Login Flow"
}
2. 文档管理
upload_document_to_rag
将来自模型上下文的文档上传到 RAG 服务进行处理。
参数:
filename(string):包含扩展名的文件名filecontent(string):模型上下文中的文件内容topic(string,可选):文档类别(默认值:"general")project_id(string,可选):项目 ID(默认值:"default")
示例:
{
"filename": "login_requirements.pdf",
"filecontent": "User authentication requirements...",
"topic": "authentication",
"project_id": "project-uuid"
}
3. 测试用例生成
generate_testcase_titles
通过启动新的活动会话来生成测试用例标题。
参数:
project_id(string):项目 ID(不是项目名称)query(string):用户对测试用例生成的请求
示例:
{
"project_id": "project-uuid",
"query": "Generate test cases for user login functionality"
}
返回:
{
"project_id": "project-uuid",
"session_id": "[email protected]_12345",
"titles": [
"Valid login with correct credentials",
"Invalid login with wrong password",
"Login with empty fields"
],
"total_titles": 3
}
generate_testcases_from_titles
根据选定的标题生成完整、详细的测试用例。
参数:
project_id(string):项目 IDsession_id(string):来自generate_testcase_titles的会话 IDselected_titles(array):按 1 起始编号的标题编号列表
示例:
{
"project_id": "project-uuid",
"session_id": "[email protected]_12345",
"selected_titles": [1, 2, 3]
}
4. 测试用例检索
list_current_session_test_titles
列出当前活动会话的测试用例标题。
参数:
project_id(string):项目 IDsession_id(string,可选):会话 ID(未指定时使用活动会话)skip(integer,可选):分页偏移量(默认值:0)limit(integer,可选):结果数量上限(默认值:50)
get_generated_testcases
检索项目中生成的所有测试用例。
参数:
project_id(string):项目 ID
返回:
{
"success": true,
"project_id": "project-uuid",
"testcases": [
{
"testcase_id": "tc_12345",
"project_id": "project-uuid",
"user_id": "[email protected]",
"content": "Detailed test case content..."
}
],
"count": 1
}
身份验证
OopsBot MCP 服务使用安全的基于令牌的身份验证。
获取访问权限
- 在 app.oopsbot.com 注册
- 在控制面板中生成 MCP API 令牌
- 在 IDE 或客户端应用程序中使用该令牌
身份验证格式
Authorization: Bearer <your_api_token>
IDE 集成
支持的 IDE
Visual Studio Code
- 安装 MCP 扩展
- 添加 OopsBot MCP 服务配置:
{
"mcpServers": {
"oopsbot": {
"command": "npx",
"args": ["@oopsbot/mcp-server"],
"env": {
"OOPSBOT_API_TOKEN": "your_token_here"
}
}
}
}
Cursor
- 打开 Cursor 设置
- 转到 MCP 服务
- 添加 OopsBot 配置:
{
"oopsbot": {
"serverUrl": "https://mcp.oopsbot.com",
"apiToken": "your_token_here"
}
}
Claude Desktop
- 编辑
claude_desktop_config.json:
{
"mcpServers": {
"oopsbot": {
"command": "node",
"args": ["/path/to/oopsbot-mcp/server.js"],
"env": {
"OOPSBOT_API_TOKEN": "your_token_here"
}
}
}
}
JetBrains IDE(IntelliJ、PyCharm、WebStorm)
- 从插件市场安装 MCP 插件
- 在 Settings > Tools > MCP 中配置:
- 服务 URL:
https://mcp.oopsbot.com - API 令牌:
your_token_here
- 服务 URL:
Neovim
require('mcp').setup({
servers = {
oopsbot = {
cmd = {'node', '/path/to/oopsbot-mcp/server.js'},
env = {
OOPSBOT_API_TOKEN = 'your_token_here'
}
}
}
})
Emacs
(use-package mcp-mode
:config
(add-to-list 'mcp-servers
'(oopsbot
:command ("node" "/path/to/oopsbot-mcp/server.js")
:env (("OOPSBOT_API_TOKEN" . "your_token_here")))))
配置
| 设置 | 描述 | 必填 |
|---|---|---|
OOPSBOT_API_TOKEN | 你从 oopsbot.com 获取的 API 令牌 | 是 |
OOPSBOT_SERVER_URL | 服务端点 | 否(默认为生产环境) |
OOPSBOT_PROJECT_ID | 默认项目 ID | 否(默认为 "default") |
客户端集成
直接 API 集成
Python
import requests
headers = {
"Authorization": "Bearer your_api_token",
"Content-Type": "application/json"
}
# Generate test case titles
response = requests.post(
"https://api.oopsbot.com/mcp/tools/generate_testcase_titles",
headers=headers,
json={
"project_id": "default",
"query": "Test cases for user authentication"
}
)
JavaScript/Node.js
const response = await fetch('https://api.oopsbot.com/mcp/tools/list_user_projects', {
method: 'POST',
headers: {
'Authorization': 'Bearer your_api_token',
'Content-Type': 'application/json'
}
});
const projects = await response.json();
cURL
curl -X POST https://api.oopsbot.com/mcp/tools/generate_testcase_titles \
-H "Authorization: Bearer your_api_token" \
-H "Content-Type: application/json" \
-d '{"project_id": "default", "query": "Login test cases"}'
工作流示例
完整的测试生成工作流
-
创建/选择项目
# List existing projects projects = await client.call_tool("list_user_projects") # Or create new project project = await client.call_tool("create_project", { "name": "E-commerce Testing" }) -
上传需求文档
result = await client.call_tool("upload_document_to_rag", { "filename": "requirements.pdf", "filecontent": "Product requirements content...", "topic": "authentication", "project_id": project["project"]["_id"] }) -
生成测试用例标题
titles = await client.call_tool("generate_testcase_titles", { "project_id": project["project"]["_id"], "query": "Generate comprehensive test cases for user login" }) -
生成完整测试用例
testcases = await client.call_tool("generate_testcases_from_titles", { "project_id": project["project"]["_id"], "session_id": titles["session_id"], "selected_titles": [1, 2, 3] # Select desired titles }) -
获取生成的测试用例
all_testcases = await client.call_tool("get_generated_testcases", { "project_id": project["project"]["_id"] })
错误处理
常见错误响应
{
"error": "Authentication token not found",
"success": false
}
{
"error": "Project 'ProjectName' already exists",
"success": false
}
{
"error": "No active session found for project_id=default",
"success": false
}
最佳实践
- 发起请求前,务必检查身份验证
- API 调用中使用项目 ID,而非名称
- 在多步骤工作流中妥善管理会话
- 针对网络故障实现重试逻辑
- 处理结果前验证响应
速率限制与配额
- 文档上传:文件大小上限为 50MB
- 测试生成:按 Token 消耗
- API 调用:适用标准速率限制
- 并发会话:每位用户只能有一个活动会话
安全注意事项
- JWT Token:使用安全密钥并设置合理的过期时间
- 用户隔离:所有数据均限定于经过身份验证的用户
- 传输安全:建议在生产环境中使用 HTTPS
- Token 存储:安全存储 Token,切勿以纯文本形式保存
- 访问控制:用户只能访问自己的项目和数据
监控与日志记录
该服务会全面记录以下日志:
- 身份验证事件
- 工具执行
- 文件上传
- 错误情况
- 性能指标
日志级别:DEBUG、INFO、WARNING、ERROR、CRITICAL
支持与故障排除
常见问题
- 身份验证失败:确认 API Token 有效
- 速率限制:在 oopsbot.com 查看套餐限制
- 上传失败:确保文件大小不超过 50MB
- 生成错误:确认文档已正确上传
获取帮助
- 📧 邮箱:[email protected]
- 💬 Discord:加入我们的社区
- 📖 文档:docs.oopsbot.com
定价
- 免费套餐:每天 15 个测试用例
版本信息
- MCP 协议:2024-11-05
- 服务版本:1.0.0
- API 版本:v1
立即访问 oopsbot.com 开始使用 • 文档 • 支持
评论
支持 Markdown
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。