# ShadowBot MCP

> ShadowBot MCP connects your AI agent directly to a professional Robotic Process Automation (RPA) platform. It lets you programmatically manage digital workflows: list robots, trigger browser-based tasks, check job status, and monitor performance logs—all via API calls. Instead of clicking through dashboards, your agent handles the entire execution lifecycle.

## Overview
- **Category:** productivity
- **Price:** Free
- **Tags:** shadowbot, rpa, robotic-process-automation, workflow-orchestration, browser-automation, digital-workforce

## Description

ShadowBot MCP connects your AI client directly to **ShadowBot**, letting your agent run professional Robotic Process Automation (RPA) tasks. You don't gotta click through dashboards; you just call the API, and your agent handles the whole job lifecycle. This server gives your AI agent control over everything—from listing every bot on the network to stopping a task that’s gone rogue.

**Checking Robot Status**

You can list all available RPA applications using `list_apps` or pull up a full roster of every automation robot associated with the account via `list_robots`. Need to know who's running right now? You call `list_online_robots` for an immediate rundown of active bots. If you gotta dig into one specific bot, use `get_robot_details` to fetch its deep specs. It’s all about knowing what’s live and where.

**Controlling Task Execution**

Want a job done? You start it remotely by triggering a workflow with `start_task`. If that task runs too long or hits a snag, you don't gotta wait—you use `stop_task` to halt the execution immediately. After the fact, you track down exactly what happened using `get_task_details` to check the job’s final status and results. For the nitty-gritty details, you fetch detailed logs for any completed or failed job ID with `list_task_logs`. This gives you a perfect audit trail of every step the bot took.

**Managing Organizational Data**

The server lets your agent manage company structure data too. You can pull up a list of all departments configured in ShadowBot using `list_departments`, or if you know which department it is, you'll get a specific member roster by calling `list_department_members`. This means your AI agent doesn't just handle bots; it knows who belongs where.

Overall, this MCP server gives your agent the ability to programmatically manage an entire digital workforce. It lets you list departments and pull up members, check every robot’s status from online counts to specific details, start or stop any task job, and get detailed logs for every single execution.

## Tools

### get_robot_details
Gets specific details about one automation robot in your account.

### get_task_details
Checks the current status and final results for a specific RPA task job.

### list_apps
Retrieves a list of all available RPA applications within your ShadowBot account.

### list_departments
Pulls a list of all organizational departments configured in ShadowBot.

### list_department_members
Lists the specific members who belong to a selected department.

### list_online_robots
Returns an immediate list of robots that are currently active and online.

### list_robots
Retrieves a comprehensive list of all automation bots associated with the account.

### list_task_logs
Fetches detailed execution logs for a specific, identified task job ID.

### start_task
Remotely triggers and begins running a defined RPA application or workflow.

### stop_task
Immediately halts the execution of any currently running ShadowBot task job.

## Prompt Examples

**Prompt:** 
```
List all automation robots in my ShadowBot account and show their status.
```

**Response:** 
```
Retrieving your ShadowBot workforce... I found 3 active robots: 1. WebScraper-01 (Status: Online), 2. DataEntry-02 (Status: Busy), 3. InvoiceProcessor-03 (Status: Offline). Would you like to trigger a task on the online robot?
```

**Prompt:** 
```
Start task 'process_invoices' on robot ID 'bot_rpa_777'.
```

**Response:** 
```
Connecting to ShadowBot orchestrator... Success! Job ID `job_999888` has been created for robot 'bot_rpa_777'. The 'process_invoices' workflow is now executing. I will let you know when it completes.
```

**Prompt:** 
```
Get the execution logs for Job ID 'job_12345'.
```

**Response:** 
```
Fetching logs for Job `job_12345`... The task completed successfully in 45 seconds. Summary: 15 invoices processed, 0 errors reported. Would you like to see the full JSON output?
```

## Capabilities

### Check Robot Status
List all available automation robots, check which ones are online right now, or get deep details on a specific bot.

### Control Task Execution
Remotely start a new automated job (triggering the workflow) or force-stop an existing task that's running too long.

### Retrieve Job History and Logs
Fetch the detailed execution logs for any completed or failed job, confirming exactly what happened during the automation run.

### Manage Organization Data
List departments in your company structure or list which specific team members belong to a department.

## Use Cases

### The Daily Status Check
An Operations Manager needs to know if their critical data processing bots are active. They ask their agent, 'Which robots are online?' The agent calls `list_online_robots` and returns a clean list of active units and their status.

### Debugging a Failure
A Business Analyst finds an error in yesterday’s reports. Instead of waiting for IT, they tell the agent to 'Show me the logs for job ID X.' The agent calls `list_task_logs` and provides the full log output instantly, allowing immediate root cause analysis.

### On-Demand Execution
A specific payroll report needs running right after month-end close. Instead of submitting a ticket, the agent receives the prompt 'Run the invoice processing task.' It calls `start_task`, initiating the job and providing a Job ID for tracking.

### Scope Mapping
A new team is being onboarded. A manager asks the agent to list all teams involved in the 'Finance' department. The agent uses `list_departments` followed by `list_department_members`, providing a complete roster for immediate review.

## Benefits

- Get instant visibility into your digital workforce. Use `list_online_robots` to see which bots are running right now, eliminating the need to navigate through a separate monitoring dashboard.
- Full job control from chat. Instead of waiting for an operator, your agent can execute critical workflows instantly by calling `start_task` with minimal input.
- Pinpoint failures fast. If a task fails, don't guess what went wrong. Call `list_task_logs` to grab the exact sequence of events and error messages immediately.
- Manage credentials securely without leaving your agent environment. You can monitor account assignments using internal tools, keeping sensitive access tokens managed programmatically.
- Understand system scope instantly. Use `list_apps` or `list_departments` to map out what resources exist in the organization before you write a single line of code.
- Kill runaway processes safely. If a bot gets stuck in a loop, don't restart the whole thing—call `stop_task` and contain the failure immediately.

## How It Works

The bottom line is: it lets your AI client treat complex RPA workflows like any other API call, giving you full remote control over the digital processes.

1. First, subscribe to the ShadowBot MCP Server and get your `AppKey` and `AppSecret` from the console's API settings.
2. Second, pass those credentials into your agent's context. The agent then uses a listing tool (e.g., `list_robots`) to understand the available workforce.
3. Third, you instruct the agent to perform an action—like triggering a job using `start_task` or retrieving logs via `list_task_logs`. The result is passed back to your prompt.

## Frequently Asked Questions

**How do I check if my robot is currently working with get_robot_details?**
Use `get_robot_details` to pull specific, deep information on a single bot. If you just want to know what's active right now, it’s better to use the `list_online_robots` tool first.

**What is the difference between list_task_logs and get_task_details?**
`get_task_details` gives you the high-level status (running, completed, failed). `list_task_logs` provides the granular log output—the actual step-by-step record of what happened during execution.

**Can I trigger a task without knowing its ID? How do I start_task?**
You don't need the Job ID to start. The `start_task` tool accepts parameters defining the application and workflow you want to run, initiating the process remotely.

**If a task is running too long, how do I stop it? Does 'stop_task' work?**
Yes. If a bot gets stuck or hits an infinite loop, call `stop_task`. This sends a signal to the orchestrator that immediately halts the job.

**How do I see all my available bots? Should I use list_robots or list_apps?**
`list_robots` shows every bot instance connected to your account. `list_apps` lists the master applications that contain those robots, giving you a higher-level view of capability.

**Before I run a task using `start_task`, how do I check available organizational scopes with `list_departments`?**
It gives you the full list of departments. This is critical because many automation workflows require an active department ID to function correctly. You need this scope information before triggering any tasks.

**If a task fails unexpectedly, how do I use `get_task_details` to find out why?**
It provides the immediate status and error code summary of a failed job. This is faster than diving into raw logs because it isolates the failure point right away.

**How do I verify which specific robotic account tokens are active when using `get_robot_details`?**
By calling this tool, you get detailed info on a robot's current credentials and status. This lets you confirm if the assigned access token is valid before attempting complex tasks.

**Can I automatically trigger an RPA task via the AI agent?**
Yes! Use the `trigger_task` tool with the target Robot ID and any required input parameters. Your agent will start the automation job and return the unique Job ID.

**How do I check if a robot is currently online and ready?**
Use the `list_robots` tool. It will retrieve all configured robots in your ShadowBot account along with their current status (e.g., Online, Busy, Offline).

**Can I retrieve the logs for a completed automation job?**
Yes! The `get_task_logs` tool allows you to fetch the execution details and any output data for a specific Job ID.