MCPStack: a generic, composable stack for building and running MCP tool pipelines.
Project description
MCPStack
Stack & Orchestrate MCP Tools — The Scikit-Learn-Pipeline Way, For LLMs
[!IMPORTANT] 📣Come Check Out Our MCPs Marketplace, on the documentation! 🎉 MCPStack MIMIC MCP tool, available!
💡 About The Project
MCPStack is a Scikit-Learn-Like Pipeline orchestrator for Model Context Protocols (MCPs).
It allows you to stack multiple MCP tools together into a pipeline of interest and expose them directly
into your favourite LLM environment, such as Claude Desktop.
Think of it as scikit-learn pipelines, but for Large Language Models:
- In
scikit-learn, you chainpreprocessors,transformers, andestimators. - In
MCPStack, you chain MCP tools of interest. If some tools are not of interest, you simply do not include them in the pipeline.
The LLM cannot use a tool that is not included in the pipeline. This makes orchestration both powerful and secure. This permits sophisticated compositions in which the LLM can only access the tools you specify – no more, no less.
Wait, what is a Model Context Protocol (MCP) — In layman's terms ?
The Model Context Protocol (MCP) standardises interactions with machine learning (Large Language) models, enabling tools and libraries to communicate successfully with a uniform workflow.
Installation
[!NOTE] MCPStack is the orchestrator — it comes with core utilities and validated tools. All validated tools are listed under
mcp_toolsin thepyproject.tomland are auto-registered via[project.entry-points."mcpstack.tools"].
Clone the repository
git clone https://github.com/MCP-Pipeline/MCPStack.git
cd MCPStack
Install dependencies
Using UV (recommended):
uv sync
Using pip:
pip install -e .[dev]
Install pre-commit hooks
Via UV:
uv run pre-commit install
Via pip:
pre-commit install
🖥️ CLI Workflow
You can manage and run your MCP pipelines directly from the CLI with the mcpstack command.
Every command is run with uv run mcpstack (or just mcpstack if installed globally).
Help
Display all available CLI options, from utilities to building your pipeline, run with --help.
Utilities
List all validated tools available in your environment via list-tools and the presets via list-presets.
A preset is an already configured pipeline that you can run in one command line rather than building it from scratch.
Useful for experiments reproduction.
Your First Pipeline
Create a pipeline from scratch with more than one MCPs in it! pipeline <tool_name> --new/to-pipeline <json_output>.
MCP Tool Configuration
You can configure yoru MCP tools before adding it to your pipelines. tools <tool_name> configure <flags avail/of interest> then pipeline <tool_name> --tool-config <path_to_configured_tool> ....
Run Pipeline In Claude
As soon as you have built your pipeline, you can run it via many ways. One is within a LLM environment like Claude Desktop.
build --pipeline <pipeline_path> --config-type <config_type_avail.> — Open Claude Desktop now!
Run W/ FastMCP
You can also run your pipeline with FastMCP, allowing you to connect to various LLMs avenues.
Many Other CLIs Options
More options are available, such as search for MCP tools or presets via a prompt query, run with presets,
search for MCP tools
help commands via tools <tool_name> --help, and more.
⚙️ Programmatic Workflow
For those wanted to integrate MCPStack into their Python workflow, or simply prefer to play with programmatic pathways, MCPStack provides a Python API to build and run pipelines, very similarly; with chaining-based methods for an intuitive and smooth programmatic API exp.
Your First Pipeline
Build your first pipeline programmatically by stacking MCP tools together via with_tool(.) or with_tools(...) methods.
Of course, you can configure each tool before adding through with_tool(.).
With Presets
You can also use presets to build your pipeline, which is a pre-configured pipeline that you can run in one line of
code rather than stacking with_tool(...) methods. Great for experiments reproduction.
Build, Save, & Run!
Once a pipeline's r eady, you can build, save and run it via many ways. build(.) preps your pipeline,
validate & prepare it for running. Save(.) pipeline to a file, and run(.) via FastMCP.
Many Other APIs
More chaining methods are available, such as with_config(...) to configure the whole MNCPStack instance,
with_tools(...) which suppresses the need to call with_tool(...) multiple times, etc.
Create Your Tool
You can also create your own MCP tool with the mcpstack-tool-builder CLI, which will generate a skeleton for you to fill in.
That means, creating the actions your MCP tool will allow LLMs to perform, and a CLI to
initialise it, configure it, and run it. More in the documentation.
🔐 License
MIT — see LICENSE.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mcpstack-0.0.2.tar.gz.
File metadata
- Download URL: mcpstack-0.0.2.tar.gz
- Upload date:
- Size: 38.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
de8b1d6f6591833239612bad0c785fd6bc21653aff132d25961b5ebb1a4af6a9
|
|
| MD5 |
01d9fb431b334ca016ae89a9c90910c6
|
|
| BLAKE2b-256 |
5dbd2e445549837a7ff4794127330dab509baeb33c984d9c0f504d46d7515642
|
Provenance
The following attestation bundles were made for mcpstack-0.0.2.tar.gz:
Publisher:
publish.yaml on MCP-Pipeline/MCPStack
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
mcpstack-0.0.2.tar.gz -
Subject digest:
de8b1d6f6591833239612bad0c785fd6bc21653aff132d25961b5ebb1a4af6a9 - Sigstore transparency entry: 411724859
- Sigstore integration time:
-
Permalink:
MCP-Pipeline/MCPStack@be6817ac06e791c6d6799aba31862ce550515246 -
Branch / Tag:
refs/tags/v0.0.2 - Owner: https://github.com/MCP-Pipeline
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yaml@be6817ac06e791c6d6799aba31862ce550515246 -
Trigger Event:
push
-
Statement type:
File details
Details for the file mcpstack-0.0.2-py3-none-any.whl.
File metadata
- Download URL: mcpstack-0.0.2-py3-none-any.whl
- Upload date:
- Size: 40.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
07c9f9e265116820a8a7fc6bf20fa3aade1af3acb6679e76ede2895df9eaa24f
|
|
| MD5 |
afd6324129cfdf016bebfb8fd1cc78f3
|
|
| BLAKE2b-256 |
4786d5d7d3f2ebf2b17c564c1771d8b011c7ba6a9bc7ff3b66e6cef0c5bf2acf
|
Provenance
The following attestation bundles were made for mcpstack-0.0.2-py3-none-any.whl:
Publisher:
publish.yaml on MCP-Pipeline/MCPStack
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
mcpstack-0.0.2-py3-none-any.whl -
Subject digest:
07c9f9e265116820a8a7fc6bf20fa3aade1af3acb6679e76ede2895df9eaa24f - Sigstore transparency entry: 411724867
- Sigstore integration time:
-
Permalink:
MCP-Pipeline/MCPStack@be6817ac06e791c6d6799aba31862ce550515246 -
Branch / Tag:
refs/tags/v0.0.2 - Owner: https://github.com/MCP-Pipeline
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yaml@be6817ac06e791c6d6799aba31862ce550515246 -
Trigger Event:
push
-
Statement type: