Skip to main content

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 chain preprocessors, transformers, and estimators.
  • 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_tools in the pyproject.toml and 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.

Metadata

Release files for mcpstack 0.0.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for mcpstack 0.0.2
File Size Uploaded
mcpstack-0.0.2.tar.gz 38.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for mcpstack 0.0.2
File Interpreter ABI Platform
mcpstack-0.0.2-py3-none-any.whl Python 3 none any Details

Total release size: 78.8 kB

Release files / mcpstack-0.0.2.tar.gz

Download URL mcpstack-0.0.2.tar.gz
Size 38.5 kB
Tags Source
SHA-256 checksum
How to use checksums
de8b1d6f6591833239612bad0c785fd6bc21653aff132d25961b5ebb1a4af6a9
BLAKE2b-256 checksum
How to use checksums
5dbd2e445549837a7ff4794127330dab509baeb33c984d9c0f504d46d7515642
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.12.9

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 20, 2025.

Transparency log

Release files / mcpstack-0.0.2-py3-none-any.whl

Download URL mcpstack-0.0.2-py3-none-any.whl
Size 40.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
07c9f9e265116820a8a7fc6bf20fa3aade1af3acb6679e76ede2895df9eaa24f
BLAKE2b-256 checksum
How to use checksums
4786d5d7d3f2ebf2b17c564c1771d8b011c7ba6a9bc7ff3b66e6cef0c5bf2acf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.12.9

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 20, 2025.

Transparency log

Release history Release notifications | RSS feed

This release

0.0.2 This release

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page