Skip to content

Commit de7e198

Browse files
committed
feat(docs): add readme w/ gif assets
1 parent 3a0d485 commit de7e198

File tree

12 files changed

+367
-0
lines changed

12 files changed

+367
-0
lines changed

README.md

Lines changed: 186 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,186 @@
1+
<!--suppress HtmlDeprecatedAttribute -->
2+
<div align="center">
3+
<h1 align="center">
4+
<br>
5+
<a href="#"><img src="assets/COVER.png" alt="MCPStack Tool" width="100%"></a>
6+
<br>
7+
MCPStack Tool Builder
8+
<br>
9+
</h1>
10+
<h4 align="center">A Template To Fasten The Creation of MCP-Stack MCP Tools</h4>
11+
</div>
12+
13+
<div align="center">
14+
15+
<a href="https://pre-commit.com/">
16+
<img alt="pre-commit" src="https://img.shields.io/badge/pre--commit-enabled-1f6feb?style=for-the-badge&logo=pre-commit">
17+
</a>
18+
<img alt="ruff" src="https://img.shields.io/badge/Ruff-lint%2Fformat-9C27B0?style=for-the-badge&logo=ruff&logoColor=white">
19+
<img alt="python" src="https://img.shields.io/badge/Python-3.9%2B-3776AB?style=for-the-badge&logo=python&logoColor=white">
20+
<img alt="license" src="https://img.shields.io/badge/License-MIT-success?style=for-the-badge">
21+
22+
</div>
23+
24+
---
25+
26+
> [!IMPORTANT]
27+
> If you have not been across the MCPStack main orchestrator repository, please start
28+
> there: [View Org](https://github.com/MCP-Pipeline)
29+
30+
## <a id="about-the-project"></a>💡 About The Project
31+
32+
`MCPStack Tool Builder` is a template repository designed to streamline the creation of `MCPStack` MCP Tools.
33+
As in, you are using the `MCPStack` main orchestrator repository and wish to create a new MCP tool to pipeline with.
34+
You can always start from scratch, but certainly, our `MCPStack Tool Builder` will help you get started quickly with a
35+
solid foundational skeleton builder.
36+
37+
**Wait, what is a Model Context Protocol (MCP) & `MCPStack` — In layman's terms ?**
38+
39+
The Model Context Protocol (MCP) standardises interactions with machine learning (Large Language) models,
40+
enabling tools and libraries to communicate successfully with a uniform workflow.
41+
42+
On the other hand, `MCPStack` is a framework that implements the protocol, and most importantly, allowing
43+
developers to create pipelines by stacking MCP tools of interest and launching them all in Claude Desktop.
44+
This allows the LLM to use all the tools stacked, and of course, if a tool is not of interest, do not include it in the
45+
pipeline and the LLM won't have access to it.
46+
47+
---
48+
49+
## Installation
50+
51+
> [!NOTE]
52+
> As this repository is a template, you can always create a new repository from this template. Use
53+
> the "Use this template" button on the top right of the GitHub UI to create a new repository based on this template.
54+
55+
Meanwhile, you may alos clone this repository and install it locally to start building your own `MStack` MCP tool.
56+
57+
### Clone the repository
58+
59+
```bash
60+
git clone https://github.com/MCP-Pipeline/MCPStack-Tool-Builder.git
61+
cd MCPStack-Tool-Builder
62+
```
63+
64+
### Install dependencies
65+
66+
Using `UV` (recommended —— See official [UV documentation for installation of UV](https://uv.dev/docs/)):
67+
68+
```bash
69+
uv sync
70+
```
71+
72+
Using `pip`:
73+
74+
```bash
75+
pip install -e .[dev]
76+
```
77+
78+
### Install pre-commit hooks
79+
80+
Via `UV`:
81+
82+
```bash
83+
uv run pre-commit install
84+
```
85+
86+
Via `pip`:
87+
88+
```bash
89+
pre-commit install
90+
```
91+
92+
---
93+
94+
## Create Your Tool's Skeleton
95+
96+
Once dependencies are installed, you can use the `mcpstack_tool` CLI to bootstrap and customise your tool’s skeleton.
97+
Every commands is run with `uv run mcpstack_tool.py` or `python mcpstack_tool.py` if you are not using `UV`, followed by the command you want to run; as follows:
98+
99+
<img src="assets/readme/help.gif" width="61.8%" align="left" style="border-radius: 10px;"/>
100+
101+
## `Help` Banner
102+
103+
Run with `--help` or `-h` to display the banner and see all available commands.
104+
105+
```bash
106+
uv run mcpstack_tool.py --help
107+
```
108+
109+
<br clear="left">
110+
111+
<br />
112+
113+
<img src="assets/readme/init.gif" width="61.8%" align="right" style="border-radius: 10px;"/>
114+
115+
## `Init`
116+
117+
init starts an interactive prompt command-line-based process to generate your tool configuration.
118+
It will ask you for values like `tool_slug`, `class_name`, and `env_prefix`.
119+
120+
121+
<br clear="right">
122+
123+
<br />
124+
125+
<img src="assets/readme/preview.gif" width="61.8%" align="left" style="border-radius: 10px;"/>
126+
127+
## `Preview`
128+
129+
preview shows you the replacements that would be applied across the codebase and displays an example diff.
130+
Note this could be also run from the `init`.
131+
132+
<br clear="left">
133+
134+
<br />
135+
136+
<img src="assets/readme/apply.gif" width="61.8%" align="right" style="border-radius: 10px;"/>
137+
138+
## `Apply`
139+
140+
Once happy, use apply to perform replacements and rename the package directory. Note this could be also run from the `init`.
141+
142+
<br clear="right">
143+
144+
<br />
145+
146+
<img src="assets/readme/validate.gif" width="61.8%" align="left" style="border-radius: 10px;"/>
147+
148+
## `Validate`
149+
150+
Run validate to ensure placeholders were replaced correctly (or to check if any remain).
151+
152+
<br clear="left">
153+
154+
<br />
155+
156+
<img src="assets/readme/reset.gif" width="61.8%" align="right" style="border-radius: 10px;"/>
157+
158+
## `Reset` (Optional)
159+
160+
Need to start fresh? Restore everything back from the scaffold with reset.
161+
162+
> [!CAUTION]
163+
> ⚠️ Use --hard to overwrite files directly.
164+
165+
<br clear="right">
166+
167+
<br />
168+
169+
<img src="assets/readme/doctor.gif" width="61.8%" align="left" style="border-radius: 10px;"/>
170+
171+
## `Doctor`
172+
173+
Finally, check the health of your repository with doctor.
174+
It reports `package dirs`, `entry points`, and `placeholder` status.
175+
176+
<br />
177+
<br />
178+
<br />
179+
180+
Here you go! 🎉 You now have a working `MCPStack` tool skeleton ready to customise.
181+
From here, edit `src/mcpstack_<your_tool_name>/tool.py` with the actions your MCP is aimed to be doing,
182+
and `cli.py` to implement your configurablity logic. Refer to the `MCPStack` documentation for more details on how to implement your tool logic.
183+
184+
## 🔐 License
185+
186+
MIT — see **[LICENSE](LICENSE)**.

assets/COVER.png

3.81 MB
Loading

assets/logo_dark.png

146 KB
Loading

assets/logo_light.png

126 KB
Loading

assets/readme/apply.gif

8.9 MB
Loading

assets/readme/doctor.gif

2.32 MB
Loading

assets/readme/help.gif

5.92 MB
Loading

assets/readme/init.gif

4.93 MB
Loading

assets/readme/preview.gif

1.64 MB
Loading

assets/readme/reset.gif

1.42 MB
Loading

0 commit comments

Comments
 (0)