Install
$ agentstack add skill-swih-mistral-mcp-research-pipeline-workflow ✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
About
Research pipeline workflow
Orchestrates a deployed Mistral Workflow for multi-step research (literature review, competitive analysis, technical deep-dive). Queries hypotheses at each checkpoint, lets the user validate or amend them, and injects additional sources when needed — all via workflow_interact.
Profile note: workflow_execute, workflow_status, and workflow_interact are available in the core profile (default). No additional profile is required for workflow-only orchestration.
Temporal behavior: the workflow status stays RUNNING even when the pipeline is blocked waiting for hypothesis validation (a wait_for_input() pause in the workflow). Detect this state by querying a status handler — do not wait for a PAUSED status, which does not exist in this API.
Important: handler names are workflow-specific
Ask the user (or consult mistral://workflows) for:
- Query handler for progress: e.g.
"get_progress" - Query handler for hypotheses: e.g.
"get_hypotheses" - Signal handler for hypothesis decisions: e.g.
"hypothesis_decision"
Steps
Step 1 — Define the research mission
Ask the user for:
workflowIdentifier— the deployed research workflow name or IDtopic— the research question (be specific)depth—"shallow"(quick scan),"medium"(balanced),"deep"(comprehensive)output_format—"bullets","report", or"json"- Optional: initial source URLs or
file_ids to seed the pipeline - Handler names (if non-default)
Step 2 — Launch the pipeline
Call workflow_execute:
{
"workflowIdentifier": "",
"input": {
"topic": "",
"depth": "medium",
"output_format": "report",
"sources": [""]
}
}
Note structuredContent.execution_id. Confirm: "Research pipeline started — execution ID: ``."
Step 3 — Poll and query progress
Loop:
- Call
workflow_statuswith{ "executionId": "" } - Check
structuredContent.status:
COMPLETED→ go to Step 5FAILED/TIMED_OUT/CANCELED→ surface error and stopRUNNING→ continue
While RUNNING, query progress every ~20 seconds:
{
"executionId": "",
"action": "query",
"name": "get_progress"
}
Show the user what the pipeline is doing:
🔍 RESEARCH IN PROGRESS
─────────────────────────
Phase: [phase from result, e.g. "source discovery", "synthesis"]
Sources processed: [N from result]
Hypotheses formed: [N from result]
Also probe for hypothesis checkpoints:
{
"executionId": "",
"action": "query",
"name": "get_hypotheses"
}
If the result contains pending hypotheses awaiting validation, proceed to Step 4.
Step 4 — Handle hypothesis checkpoints
When hypotheses are ready for review (detected from the get_hypotheses query result):
- Present hypotheses to the user:
``` ⏸ HYPOTHESIS CHECKPOINT ────────────────────────── H1: [hypothesis text] Supporting sources: [N] Confidence: [low/medium/high]
H2: [hypothesis text] ...
Options: (A) Validate — continue with these hypotheses (B) Amend — provide corrections or constraints (C) Inject sources — add documents/URLs to refine (D) Discard — restart this hypothesis phase ```
- Based on user choice, signal the workflow:
Validate (proceed as-is): ``json { "executionId": "", "action": "signal", "name": "hypothesis_decision", "input": { "decision": "validate" } } ``
Amend (with corrections): ``json { "executionId": "", "action": "signal", "name": "hypothesis_decision", "input": { "decision": "amend", "amendments": "" } } ``
Inject sources: ``json { "executionId": "", "action": "signal", "name": "hypothesis_decision", "input": { "decision": "validate", "additional_sources": ["", "..."] } } ``
Discard and restart (hypothesis phase only): ``json { "executionId": "", "action": "signal", "name": "hypothesis_decision", "input": { "decision": "discard", "reason": "" } } ``
Return to Step 3. Deep pipelines may have multiple hypothesis gates.
Step 5 — Deliver the research output
When status === "COMPLETED", present structuredContent.result in the requested format:
✅ RESEARCH COMPLETE
──────────────────────
Topic: [topic]
Depth: [depth]
Execution:
Sources used: [N from result]
[formatted output — bullets / report / JSON as requested]
KEY FINDINGS
────────────
[top 3–5 findings with source citations from result]
CONFIDENCE ASSESSMENT
──────────────────────
[per-finding confidence level + supporting source count]
Offer to pass the output to mistral_chat with magistral-medium-latest + reasoning_effort: "high" for a critical peer review of the findings.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: Swih
- Source: Swih/mistral-mcp
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet — be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.