multi-tool-pipeline
PassTemplate for chaining multiple MCP tools in a single script
(0)
1stars
0downloads
4views
Install Skill
Skills are third-party code from public GitHub repositories. SkillHub scans for known malicious patterns but cannot guarantee safety. Review the source code before installing.
Install globally (user-level):
npx skillhub install 3266miles/Continuous-Claude/multi-tool-pipelineInstall in current project:
npx skillhub install 3266miles/Continuous-Claude/multi-tool-pipeline --projectSuggested path: ~/.claude/skills/multi-tool-pipeline/
SKILL.md Content
---
name: multi-tool-pipeline
description: Template for chaining multiple MCP tools in a single script
allowed-tools: [Bash, Read]
---
# Multi-Tool Pipeline Template
Reference implementation showing how to chain multiple MCP tools in a script.
## When to Use
- As a **template** when creating new MCP pipeline scripts
- To understand the pattern for tool chaining
- When skill-developer needs to create a new pipeline
## The Pattern
```python
async def main():
from runtime.mcp_client import call_mcp_tool
# Step 1: First tool
result1 = await call_mcp_tool("server1__tool1", {"param": "value"})
# Step 2: Use result in next tool
result2 = await call_mcp_tool("server2__tool2", {"input": result1})
# Step 3: Combine/process
return {"combined": result1, "processed": result2}
```
## Example Implementation
See the reference script:
```bash
cat $CLAUDE_PROJECT_DIR/scripts/multi_tool_pipeline.py
```
Run it:
```bash
uv run python -m runtime.harness scripts/multi_tool_pipeline.py \
--repo-path "." \
--max-commits 5
```
## Key Elements
1. **CLI Arguments** - Use argparse for parameters
2. **Sequential Calls** - await each tool before the next
3. **Error Handling** - try/except around the pipeline
4. **Progress Output** - print status for visibility
5. **Structured Return** - return combined results
## Creating Your Own Pipeline
1. Copy `scripts/multi_tool_pipeline.py` as a starting point
2. Replace the tool calls with your MCP servers/tools
3. Adjust CLI arguments for your use case
4. Use `/skill-developer` to wrap it in a skill
## MCP Tool Naming
Tools are named `serverName__toolName` (double underscore):
```python
await call_mcp_tool("git__git_status", {...})
await call_mcp_tool("morph__warpgrep_codebase_search", {...})
await call_mcp_tool("nia__search", {...})
```