
Security News
Happy Birthday, Shai-Hulud
It has been one year since Shai-Hulud made its first appearance on npm.
@dobbyai/mcp-external
Advanced tools
MCP Server for Dobby AI Platform - Connect from Claude Desktop, Cursor, Windsurf, and more
Connect to Dobby AI Platform from Claude Desktop, Cursor, Windsurf, VS Code, and any MCP-compatible client.
npx @dobbyai/mcp-external --setup
This will guide you through connecting Dobby to your preferred AI tools.
{
"mcpServers": {
"dobby": {
"command": "npx",
"args": ["-y", "@dobbyai/mcp-external"],
"env": {
"DOBBY_API_URL": "https://app.dobby.ai",
"DOBBY_API_KEY": "your-api-key",
"DOBBY_TENANT_ID": "your-tenant-id"
}
}
}
}
| Client | Status | Setup Command |
|---|---|---|
| Claude Desktop | ✅ Full Support | npx @dobbyai/mcp-external --setup |
| Cursor | ✅ Full Support | npx @dobbyai/mcp-external --setup |
| Windsurf | ✅ Full Support | npx @dobbyai/mcp-external --setup |
| VS Code (Cline) | ✅ Full Support | Manual config |
| VS Code (Continue) | ✅ Full Support | Manual config |
| Any MCP Client | ✅ STDIO Mode | Manual config |
| Tool | Description | Example |
|---|---|---|
create_task | Create a new task for AI agents | create_task(title: "Add dark mode", priority: "high") |
list_tasks | List tasks with filters | list_tasks(status: "pending", limit: 10) |
get_task | Get detailed task information | get_task(task_id: "task-abc123") |
update_task | Update task status or priority | update_task(task_id: "...", status: "in_progress") |
get_task_timeline | Get activity history for a task | get_task_timeline(task_id: "...") |
cancel_task | Cancel a running task | cancel_task(task_id: "...") |
| Tool | Description | Example |
|---|---|---|
get_messages | Get conversation for a task | get_messages(task_id: "...", limit: 20) |
send_message | Send a message to task conversation | send_message(task_id: "...", content: "Please add tests") |
| Tool | Description | Example |
|---|---|---|
get_pending_approvals | List approvals waiting for you | get_pending_approvals() |
approve_task | Approve a pending request (auto-merges PR) | approve_task(approval_id: "...", note: "LGTM") |
reject_task | Reject with feedback (agent retries automatically) | reject_task(approval_id: "...", reason: "Need tests") |
request_changes | Request specific modifications | request_changes(approval_id: "...", changes: "...") |
The Dobby MCP Server supports a complete Human-in-the-Loop workflow:
┌─────────────────────────────────────────────────────────────────┐
│ APPROVAL WORKFLOW │
├─────────────────────────────────────────────────────────────────┤
│ │
│ 1. Agent completes work → Creates PR → Requests approval │
│ │
│ 2. User receives notification via get_pending_approvals │
│ │
│ 3. User reviews and decides: │
│ │
│ ┌─────────────────┐ ┌─────────────────┐ │
│ │ approve_task │ │ reject_task │ │
│ │ │ │ │ │
│ │ ✅ Auto-merge │ │ 🔁 Auto-retry │ │
│ │ PR │ │ with feedback │ │
│ └────────┬────────┘ └────────┬────────┘ │
│ │ │ │
│ ▼ ▼ │
│ ┌─────────────────┐ ┌─────────────────┐ │
│ │ Task Completed │ │ Agent Addresses │ │
│ │ 🎉 │ │ Feedback & ... │──► Back to 1 │
│ └─────────────────┘ └─────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────┘
approve_task(approval_id, note?)completedget_task_timelinereject_task(approval_id, reason)Track every action on a task with get_task_timeline:
📊 Timeline for Task task-abc123
🆕 task created (User)
2/2/2026, 10:00:00 AM
📋 plan created (DevCoordinator)
2/2/2026, 10:00:05 AM
▶️ subtask started (dobby-frontend-agent)
2/2/2026, 10:00:10 AM
🎨 frontend code generated (FrontendDeveloper)
2/2/2026, 10:01:30 AM
📝 pr created (FrontendDeveloper)
PR #42
2/2/2026, 10:01:45 AM
⏳ approval requested (DevCoordinator)
2/2/2026, 10:01:50 AM
✅ approval approved (User)
2/2/2026, 10:05:00 AM
🚀 agent continuation triggered (system)
2/2/2026, 10:05:01 AM
🔀 pr merged (DevCoordinator)
PR #42
2/2/2026, 10:05:10 AM
🎉 continuation after approval completed (DevCoordinator)
2/2/2026, 10:05:15 AM
Access data directly via MCP resources:
tasks://list # All tasks
tasks://pending # Pending tasks
tasks://in-progress # In-progress tasks
tasks://completed # Completed tasks
tasks://{task_id} # Specific task details
tasks://{task_id}/messages # Task conversation
approvals://pending # Pending approvals
| Command | Description |
|---|---|
/create-feature | Guided feature creation |
/fix-bug | Create bug fix task |
/check-approvals | Review pending approvals |
/task-status | Get task status summary |
/review-pr | Review a task's PR |
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
Linux: ~/.config/Claude/claude_desktop_config.json
{
"mcpServers": {
"dobby": {
"command": "npx",
"args": ["-y", "@dobbyai/mcp-external"],
"env": {
"DOBBY_API_URL": "https://app.dobby.ai",
"DOBBY_API_KEY": "dk_your_api_key",
"DOBBY_TENANT_ID": "your-tenant-id"
}
}
}
}
Settings → MCP → Add Server:
{
"dobby": {
"command": "npx",
"args": ["-y", "@dobbyai/mcp-external"],
"env": {
"DOBBY_API_URL": "https://app.dobby.ai",
"DOBBY_API_KEY": "dk_your_api_key",
"DOBBY_TENANT_ID": "your-tenant-id"
}
}
}
File: ~/.codeium/windsurf/mcp_config.json
{
"mcpServers": {
"dobby": {
"command": "npx",
"args": ["-y", "@dobbyai/mcp-external"],
"env": {
"DOBBY_API_URL": "https://app.dobby.ai",
"DOBBY_API_KEY": "dk_your_api_key",
"DOBBY_TENANT_ID": "your-tenant-id"
}
}
}
}
Command Palette → "Cline: Open MCP Settings" → Add:
{
"mcpServers": {
"dobby": {
"command": "npx",
"args": ["-y", "@dobbyai/mcp-external"],
"env": {
"DOBBY_API_URL": "https://app.dobby.ai",
"DOBBY_API_KEY": "dk_your_api_key",
"DOBBY_TENANT_ID": "your-tenant-id"
}
}
}
}
| Variable | Required | Description |
|---|---|---|
DOBBY_API_URL | Yes | Dobby API URL (default: https://app.dobby.ai) |
DOBBY_API_KEY | Yes | Your Dobby API key |
DOBBY_TENANT_ID | Yes | Your workspace/tenant ID |
DOBBY_USER_ID | No | User ID for messages |
DOBBY_USER_NAME | No | Display name for messages |
You: Create a task to add dark mode to the settings page
Claude: [Uses create_task tool]
✅ Task created: task-abc123
Title: Add dark mode to settings page
Priority: medium
The AI agents will start working on it soon.
You: Check my pending approvals
Claude: [Uses get_pending_approvals]
🔔 You have 2 pending approvals:
1. 📝 PR CREATE - Add user authentication
ID: approval-xyz789
Waiting: 5 minutes
2. 🔀 PR MERGE - Fix login bug
ID: approval-abc456
Waiting: 1 hour
Which one would you like to review?
You: Approve approval-xyz789 with note "looks good"
Claude: [Uses approve_task]
✅ **Approved!** approval-xyz789
Note: "looks good"
🔀 The agent is now merging the PR automatically.
Use `get_task_timeline` to track progress.
You: Reject approval-abc456 because it needs unit tests
Claude: [Uses reject_task]
❌ **Rejected!** approval-abc456
💬 Feedback: "needs unit tests"
🔁 The agent is now retrying and will address your feedback.
Use `get_task_timeline` to track progress.
You: Cancel task-def789, it's taking too long
Claude: [Uses cancel_task]
🛑 Task task-def789 execution cancelled successfully.
The task status has been reverted to pending.
You: Show me the timeline for task-abc123
Claude: [Uses get_task_timeline]
📊 Timeline for Task task-abc123
🆕 **task created** (User)
2/2/2026, 10:00:00 AM
📋 **plan created** (DevCoordinator)
2/2/2026, 10:00:05 AM
🎨 **frontend code generated** (FrontendDeveloper)
2/2/2026, 10:01:30 AM
📝 **pr created** PR #42
2/2/2026, 10:01:45 AM
✅ **approval approved**
2/2/2026, 10:05:00 AM
🔀 **pr merged** PR #42
2/2/2026, 10:05:10 AM
┌─────────────────────────────────────────────────────────────────┐
│ MCP Client │
│ (Claude Desktop, Cursor, Windsurf, etc.) │
└──────────────────────────┬──────────────────────────────────────┘
│ MCP Protocol (STDIO)
▼
┌─────────────────────────────────────────────────────────────────┐
│ Dobby MCP Server │
│ ┌─────────────────────────────────────────────────────────────┐│
│ │ Tools │ Resources │ Prompts ││
│ │ - create_task │ - tasks:// │ - /create-feature ││
│ │ - list_tasks │ - approvals:// │ - /fix-bug ││
│ │ - get_task │ │ - /check-approvals ││
│ │ - update_task │ │ - /task-status ││
│ │ - get_timeline │ │ - /review-pr ││
│ │ - cancel_task │ │ ││
│ │ - get_messages │ │ ││
│ │ - send_message │ │ ││
│ │ - get_pending │ │ ││
│ │ - approve_task │ │ ││
│ │ - reject_task │ │ ││
│ │ - req_changes │ │ ││
│ └─────────────────────────────────────────────────────────────┘│
│ │ │
│ DobbyClient (API) │
└──────────────────────────────┬──────────────────────────────────┘
│ HTTPS
▼
┌─────────────────────────────────────────────────────────────────┐
│ Dobby API (Next.js) │
│ /api/dobby/tasks - Task CRUD │
│ /api/dobby/tasks/[id]/execute - Execute/Cancel task │
│ /api/dobby/tasks/[id]/conversation - Messages │
│ /api/dobby/approvals - Approval workflow │
└──────────────────────────────┬──────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────┐
│ Dobby Python API (FastAPI) │
│ POST /api/v1/tasks/{id}/execute - Start agent execution │
│ POST /api/v1/tasks/{id}/cancel - Cancel execution │
│ GET /api/v1/runs/{id}/status - Get run status │
└──────────────────────────────┬──────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────┐
│ AI Agents (Dobby) │
│ ┌──────────────┐ │
│ │ Chief Agent │ ─► Analyzes tasks, routes to coordinators │
│ └──────┬───────┘ │
│ │ │
│ ┌──────▼───────┐ │
│ │ DevCoordinator│ ─► Manages development workflow │
│ └──────┬───────┘ │
│ │ │
│ ┌──────▼───────────────────────────────────────┐ │
│ │ Workers │ │
│ │ - FrontendDeveloper (React, TypeScript) │ │
│ │ - BackendDeveloper (Python, FastAPI) │ │
│ │ - TestWriter (Unit tests) │ │
│ │ - CodeReviewer (PR review) │ │
│ │ - DevOpsWorker (CI/CD, PR merge) │ │
│ └───────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────┘
# Clone the repo
git clone https://github.com/gil-dataopsvalley/repo-dobby.git
cd repo-dobby/mcp/external
# Install dependencies
npm install
# Run in development mode
npm run dev
# Build
npm run build
# Run tests
npm test
# Set environment variables
export DOBBY_API_URL=http://localhost:3000
export DOBBY_API_KEY=dev-key
export DOBBY_TENANT_ID=your-tenant-id
# Run the server
npm run dev
get_task_timeline tool - View all activity on a taskcancel_task tool - Stop running task executionsapprove_task now triggers automatic PR mergereject_task now triggers automatic agent retry with feedbackMIT © Dobby AI Platform
FAQs
MCP Server for Dobby AI Platform - Connect from Claude Desktop, Cursor, Windsurf, and more
The npm package @dobbyai/mcp-external receives a total of 17 weekly downloads. As such, @dobbyai/mcp-external popularity was classified as not popular.
We found that @dobbyai/mcp-external demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.

Security News
It has been one year since Shai-Hulud made its first appearance on npm.

Research
/Security News
Operators behind PolinRider used a compromised GitHub account to plant malware in four development versions of a Packagist package with 700,000+ downloads.

Security News
GitHub Actions now supports cache-mode, a least-privilege control on the Actions cache aimed at the cache poisoning technique behind recent compromises.