@shuffleio/shuffle-mcps 0.0.6 → 0.0.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +122 -3
- package/dist/index.cjs +1929 -772
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +220 -11
- package/dist/index.d.ts +220 -11
- package/dist/index.js +1956 -774
- package/dist/index.js.map +1 -1
- package/dist/{shuffle-mcp-JQWKQNUP.css → shuffle-mcp-24XBNRGE.css} +45 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -14,14 +14,24 @@ Turn 3,000+ SaaS tools into MCP servers your agents can use. One search, one cli
|
|
|
14
14
|
---
|
|
15
15
|
|
|
16
16
|
<table align="center">
|
|
17
|
+
<tr>
|
|
18
|
+
<td align="center" width="50%">
|
|
19
|
+
<img src="https://github.com/user-attachments/assets/930d7e2b-61b4-4b1c-b90b-37a55cb6a98d" alt="Easy MCP debugger" width="380" style="border-radius: 12px;" />
|
|
20
|
+
<br/><sub><b>1. Easy to try out</b></sub>
|
|
21
|
+
</td>
|
|
22
|
+
<td align="center" width="50%">
|
|
23
|
+
<img src="https://github.com/user-attachments/assets/ce7f650c-61f7-4b68-bc40-724283e684f4" alt="Easy MCP debugger" width="380" style="border-radius: 12px;" />
|
|
24
|
+
<br/><sub><b>2. Debugger with timeline</b></sub>
|
|
25
|
+
</td>
|
|
26
|
+
</tr>
|
|
17
27
|
<tr>
|
|
18
28
|
<td align="center" width="50%">
|
|
19
29
|
<img src="https://security.shuffler.io/mcp/search-preview.png" alt="Search 3,000+ integrations" width="380" style="border-radius: 12px;" />
|
|
20
|
-
<br/><sub><b>
|
|
30
|
+
<br/><sub><b>3. Search any of 3,000+ tools</b></sub>
|
|
21
31
|
</td>
|
|
22
32
|
<td align="center" width="50%">
|
|
23
33
|
<img src="https://security.shuffler.io/mcp/app-detail-preview.png" alt="Authenticate and use as MCP" width="380" style="border-radius: 12px;" />
|
|
24
|
-
<br/><sub><b>
|
|
34
|
+
<br/><sub><b>4. Authenticate — your agent uses it instantly</b></sub>
|
|
25
35
|
</td>
|
|
26
36
|
</tr>
|
|
27
37
|
</table>
|
|
@@ -85,7 +95,7 @@ export default function App() {
|
|
|
85
95
|
|
|
86
96
|
## The components
|
|
87
97
|
|
|
88
|
-
The library exports
|
|
98
|
+
The library exports six React components — use one or all of them. They share state, so you can mix-and-match.
|
|
89
99
|
|
|
90
100
|
| Component | What it does | Live demo |
|
|
91
101
|
|---|---|---|
|
|
@@ -93,6 +103,9 @@ The library exports four React components — use one or all of them. They share
|
|
|
93
103
|
| [`<AppSearchDrawer />`](#2-appsearchdrawer--full-search-drawer) | Right-side drawer wrapping `<ShuffleMCP />` plus a "Your apps" status row. This is the exact "Add Ingestion Source" drawer used in production | [/shuffle-mcp-demo §2](https://security.shuffler.io/shuffle-mcp-demo) |
|
|
94
104
|
| [`<AppDetailDrawer />`](#3-appdetaildrawer--single-app-config) | Right-side drawer for a single app: list/edit/test authentications and try the MCP `tools/call` endpoint inline | [/shuffle-mcp-demo §3](https://security.shuffler.io/shuffle-mcp-demo) |
|
|
95
105
|
| [`<AgentUI />`](#4-agentui--start--debug-agents) | Standalone "What do you want to do?" hero prompt + live decision-by-decision debugger for `/api/v1/agent` runs. Drop-in replacement for the legacy Shuffle Core agent page | [/agents](https://security.shuffler.io/agents) |
|
|
106
|
+
| [`<AgentRunDrawer />`](#5-agentrundrawer--run-agent-side-panel) | Right-side drawer that hosts `<AgentUI />` in compact mode plus optional caller-provided **Permissions** and **Local LLM** tabs (slot-driven, no host context required) | [/shuffle-mcp-demo §1b](https://security.shuffler.io/shuffle-mcp-demo) |
|
|
107
|
+
| [`<AgentActivityList />`](#6-agentactivitylist--past-executions) | Searchable, status-filterable list of past `/api/v1/agent` runs. Pair with `<AgentExecutionDrawer />` to inspect any row in the canonical Simple/Detailed view | [/shuffle-mcp-demo §8](https://security.shuffler.io/shuffle-mcp-demo) |
|
|
108
|
+
| [`<AgentExecutionDrawer />`](#7-agentexecutiondrawer--inspect-one-run) | Right-side drawer that pre-loads a single `AgentRun` into `<AgentUI />` (no `authorization` token required) for read-only inspection | [/agents](https://security.shuffler.io/agents) |
|
|
96
109
|
|
|
97
110
|
### 1. `<ShuffleMCP />` — inline search
|
|
98
111
|
|
|
@@ -237,9 +250,103 @@ Useful props:
|
|
|
237
250
|
| `compact` / `hideHeroIcon` / `hideAppPicker` / `hideAttach` | `boolean` | Layout switches for embedding |
|
|
238
251
|
| `maxWidth` | `number` | Max width of the centered card. Default `900` |
|
|
239
252
|
| `onRun` | `(info) => void` | Fires whenever a run finishes (success or failure) |
|
|
253
|
+
| `className` / `sx` / `contentSx` | `string` / `SxProps` | Style overrides for the root container and inner content column |
|
|
240
254
|
|
|
241
255
|
Reference page in production: [`src/pages/dashboard/AgentsPage.tsx`](../pages/dashboard/AgentsPage.tsx) (mounted at [`/agents`](https://security.shuffler.io/agents)).
|
|
242
256
|
|
|
257
|
+
### 5. `<AgentRunDrawer />` — Run Agent side panel
|
|
258
|
+
|
|
259
|
+
Right-side drawer that embeds `<AgentUI />` in compact mode, with optional **Permissions** and **Local LLM** tabs you fill via slots. Zero host-app context required — pass `apiKey` / `apiBaseUrl` / `orgId` through `agentUIProps` to authenticate.
|
|
260
|
+
|
|
261
|
+
```tsx
|
|
262
|
+
import { useState } from 'react';
|
|
263
|
+
import { AgentRunDrawer } from 'shuffle-mcps';
|
|
264
|
+
|
|
265
|
+
const [open, setOpen] = useState(false);
|
|
266
|
+
|
|
267
|
+
<AgentRunDrawer
|
|
268
|
+
open={open}
|
|
269
|
+
onClose={() => setOpen(false)}
|
|
270
|
+
agentUIProps={{ apiKey: user.apiKey, orgId: user.orgId }}
|
|
271
|
+
permissionsSlot={<MyPermissionsPanel />} // optional — tab is hidden when omitted
|
|
272
|
+
localLLMSlot={<MyLocalLLMConfig />} // optional — tab is hidden when omitted
|
|
273
|
+
/>
|
|
274
|
+
```
|
|
275
|
+
|
|
276
|
+
Useful props:
|
|
277
|
+
|
|
278
|
+
| Prop | Type | Description |
|
|
279
|
+
|---|---|---|
|
|
280
|
+
| `open` / `onClose` | `boolean` / `() => void` | Controlled open state |
|
|
281
|
+
| `initialTab` | `'run' \| 'permissions' \| 'localLLM'` | Tab focused on open. Default `'run'` |
|
|
282
|
+
| `permissionsSlot` / `localLLMSlot` | `ReactNode` | Render content for the optional tabs. Tab is hidden when omitted |
|
|
283
|
+
| `agentUIProps` | `Partial<AgentUIProps>` | Forwarded to the embedded `<AgentUI />` |
|
|
284
|
+
| `width` | `number` | Drawer width in px. Default `520` |
|
|
285
|
+
| `title` / `subtitle` | `string` | Header copy |
|
|
286
|
+
| `className` / `paperSx` / `headerSx` / `tabsSx` / `bodySx` | `string` / `SxProps` | Style overrides for the Drawer Paper, header bar, tab strip, and body container |
|
|
287
|
+
|
|
288
|
+
### 6. `<AgentActivityList />` — past executions
|
|
289
|
+
|
|
290
|
+
Searchable, status-filterable list of past `/api/v1/agent` runs. The component owns its own fetch + pagination loop. `onRunClick` lets the caller decide what happens on row click — typically opening `<AgentExecutionDrawer />`.
|
|
291
|
+
|
|
292
|
+
```tsx
|
|
293
|
+
import { useState } from 'react';
|
|
294
|
+
import { AgentActivityList, AgentExecutionDrawer, type AgentRun } from 'shuffle-mcps';
|
|
295
|
+
|
|
296
|
+
const [selectedRun, setSelectedRun] = useState<AgentRun | null>(null);
|
|
297
|
+
|
|
298
|
+
<>
|
|
299
|
+
<AgentActivityList
|
|
300
|
+
apiKey={user.apiKey}
|
|
301
|
+
orgId={user.orgId}
|
|
302
|
+
onRunClick={setSelectedRun}
|
|
303
|
+
/>
|
|
304
|
+
|
|
305
|
+
<AgentExecutionDrawer
|
|
306
|
+
open={!!selectedRun}
|
|
307
|
+
onClose={() => setSelectedRun(null)}
|
|
308
|
+
run={selectedRun}
|
|
309
|
+
apiKey={user.apiKey}
|
|
310
|
+
orgId={user.orgId}
|
|
311
|
+
/>
|
|
312
|
+
</>
|
|
313
|
+
```
|
|
314
|
+
|
|
315
|
+
Useful props:
|
|
316
|
+
|
|
317
|
+
| Prop | Type | Description |
|
|
318
|
+
|---|---|---|
|
|
319
|
+
| `apiKey` / `apiBaseUrl` / `orgId` | `string` | Auth — same fallback semantics as `<AgentUI />` |
|
|
320
|
+
| `onRunClick` | `(run: AgentRun) => void` | Row click handler |
|
|
321
|
+
| `showSearchBar` / `showStatusChips` | `boolean` | Toggle the toolbar pieces. Default `true` |
|
|
322
|
+
| `limit` | `number` | Page size. Default `50` |
|
|
323
|
+
| `emptyTitle` / `emptySubtitle` | `string` | Empty-state copy |
|
|
324
|
+
| `className` / `sx` / `toolbarSx` / `rowSx` | `string` / `SxProps` | Style overrides for the root container, toolbar, and each run row |
|
|
325
|
+
|
|
326
|
+
### 7. `<AgentExecutionDrawer />` — inspect one run
|
|
327
|
+
|
|
328
|
+
Right-side drawer that pre-loads a single `AgentRun` into `<AgentUI />` so you can inspect the Simple/Detailed view of any past execution without an `authorization` token.
|
|
329
|
+
|
|
330
|
+
```tsx
|
|
331
|
+
<AgentExecutionDrawer
|
|
332
|
+
open={!!selectedRun}
|
|
333
|
+
onClose={() => setSelectedRun(null)}
|
|
334
|
+
run={selectedRun}
|
|
335
|
+
apiKey={user.apiKey}
|
|
336
|
+
orgId={user.orgId}
|
|
337
|
+
/>
|
|
338
|
+
```
|
|
339
|
+
|
|
340
|
+
Useful props:
|
|
341
|
+
|
|
342
|
+
| Prop | Type | Description |
|
|
343
|
+
|---|---|---|
|
|
344
|
+
| `open` / `onClose` | `boolean` / `() => void` | Controlled open state |
|
|
345
|
+
| `run` | `AgentRun \| null` | The run to display. When `null` and `open=true`, the drawer renders empty |
|
|
346
|
+
| `width` | `number` | Drawer width in px. Default `720` |
|
|
347
|
+
| `apiKey` / `apiBaseUrl` / `orgId` | `string` | Forwarded to the embedded `<AgentUI />` |
|
|
348
|
+
| `className` / `paperSx` / `headerSx` / `bodySx` | `string` / `SxProps` | Style overrides for the Drawer Paper, header bar, and body container |
|
|
349
|
+
|
|
243
350
|
### Predefined search
|
|
244
351
|
|
|
245
352
|
```tsx
|
|
@@ -355,6 +462,18 @@ For finer-grained overrides on `<ShuffleMCP />`, pass `customStyles` — every s
|
|
|
355
462
|
/>
|
|
356
463
|
```
|
|
357
464
|
|
|
465
|
+
For the agent components (`<AgentUI />`, `<AgentRunDrawer />`, `<AgentExecutionDrawer />`, `<AgentActivityList />`), every entity in the layout is overridable via MUI `sx` props plus a `className` on the root. The slots are listed per-component in the tables above — typically `sx` (root), `paperSx` (drawer surface), `headerSx`, `tabsSx` / `toolbarSx`, `bodySx`, and `rowSx`. Each one accepts the standard `SxProps<Theme>` shape and is **merged on top of** the defaults, so you only specify what you want to change:
|
|
466
|
+
|
|
467
|
+
```tsx
|
|
468
|
+
<AgentRunDrawer
|
|
469
|
+
open={open}
|
|
470
|
+
onClose={() => setOpen(false)}
|
|
471
|
+
paperSx={{ background: 'hsl(var(--background))', boxShadow: 'none' }}
|
|
472
|
+
headerSx={{ py: 1.5 }}
|
|
473
|
+
tabsSx={{ '& .MuiTabs-indicator': { display: 'none' } }}
|
|
474
|
+
/>
|
|
475
|
+
```
|
|
476
|
+
|
|
358
477
|
Full prop reference, framework setup (Next.js, Vue), styling slots, custom rendering, and publishing: [**LIBRARY.md**](./LIBRARY.md).
|
|
359
478
|
|
|
360
479
|
## Imperative handle
|