Home
Softono
z

zenml-io

Professional software vendor delivering innovative solutions on the Softono platform. Specialized in both open-source and proprietary software development.

Total Products
5

Software by zenml-io

zenml
Open Source

zenml

<div align="center"> <!-- PROJECT LOGO --> <br /> <a href="https://zenml.io"> <img src="docs/book/.gitbook/assets/header.png" alt="ZenML Header"> </a> <br /> <div align="center"> <h3 align="center">One AI Platform From Pipelines to Agents </h3> </div> [![PyPi][pypi-shield]][pypi-url] [![PyPi][pypiversion-shield]][pypi-url] [![PyPi][downloads-shield]][downloads-url] [![Contributors][contributors-shield]][contributors-url] [![License][license-shield]][license-url] </div> <!-- MARKDOWN LINKS & IMAGES --> [pypi-shield]: https://img.shields.io/pypi/pyversions/zenml?color=281158 [pypi-url]: https://pypi.org/project/zenml/ [pypiversion-shield]: https://img.shields.io/pypi/v/zenml?color=361776 [downloads-shield]: https://img.shields.io/pepy/dt/zenml?color=431D93 [downloads-url]: https://pypi.org/project/zenml/ [contributors-shield]: https://img.shields.io/github/contributors/zenml-io/zenml?color=7A3EF4 [contributors-url]: https://github.com/zenml-io/zenml/graphs/contributors [license-shield]: https://img.shields.io/github/license/zenml-io/zenml?color=9565F6 [license-url]: https://github.com/zenml-io/zenml/blob/main/LICENSE <div align="center"> <p> <a href="https://zenml.io/projects">Projects</a> • <a href="https://zenml.io/roadmap">Roadmap</a> • <a href="https://docs.zenml.io/changelog">Changelog</a> • <a href="https://github.com/zenml-io/zenml/issues">Report Bug</a> • <a href="https://zenml.io/pro">Sign up for ZenML Pro</a> • <a href="https://www.zenml.io/blog">Blog</a> • <a href="https://docs.zenml.io/">Docs</a> <br /> <br /> 🎉 For the latest release, see the <a href="https://docs.zenml.io/changelog">changelog</a>. </p> </div> --- ZenML is built for ML or AI Engineers working on traditional ML use-cases, LLM workflows, or agents, in a company setting. At it's core, ZenML allows you to write **workflows (pipelines)** that run on any **infrastructure backend (stacks)**. You can embed any Pythonic logic within these pipelines, like training a model, or running an agentic loop. ZenML then operationalizes your application by: 1. Automatically containerizing and tracking your code. 2. Tracking individual runs with metrics, logs, and metadata. 3. Abstracting away infrastructure complexity. 4. Integrating your existing tools and infrastructure e.g. MLflow, Langgraph, Langfuse, Sagemaker, GCP Vertex, etc. 5. Allowing you to quickly iterate on experiments with an observable layer, in development and in production. ...amongst many other features. ZenML is used by thousands of companies to run their AI workflows. Here are some featured ones: <div align="center"> <a href="https://www.airbus.com/"><img src="https://cdn.prod.website-files.com/64a817a2e7e2208272d1ce30/66e826c67966c0e639be6591_airbus.svg" alt="Airbus" height="50"/></a>&nbsp;&nbsp;&nbsp;&nbsp; <a href="https://www.axa.com/"><img src="https://cdn.prod.website-files.com/64a817a2e7e2208272d1ce30/66c84308916684f0d07b57ff_axa-min.svg" alt="AXA" height="50"/></a>&nbsp;&nbsp;&nbsp;&nbsp; <a href="https://www.jetbrains.com/"><img src="https://cdn.prod.website-files.com/64a817a2e7e2208272d1ce30/682337dd23ca98ec293c2dc6_jetbrains-min.svg" alt="JetBrains" height="50"/></a>&nbsp;&nbsp;&nbsp;&nbsp; <a href="https://rivian.com/"><img src="https://cdn.prod.website-files.com/64a817a2e7e2208272d1ce30/66e9897d1b1dc28e560c0c07_rivian-min.svg" alt="Rivian" height="50"/></a>&nbsp;&nbsp;&nbsp;&nbsp; <a href="https://www.wisetechglobal.com/"><img src="https://cdn.prod.website-files.com/64a817a2e7e2208272d1ce30/65ddeac90f19eb6c4cd715f9_wisetech_logo-min.svg" alt="WiseTech Global" height="50"/></a>&nbsp;&nbsp;&nbsp;&nbsp; <a href="https://www.brevo.com/"><img src="https://cdn.prod.website-files.com/64a817a2e7e2208272d1ce30/652d3e5d29d36f927c2bb623_brevo.webp" alt="Brevo" height="50"/></a> </div> <div align="center"> <a href="https://www.leroymerlin.com/"><img src="https://cdn.prod.website-files.com/64a817a2e7e2208272d1ce30/65ddeac9b83eea2954b5a561_leroy_merlin_logo-min.svg" alt="Leroy Merlin" height="50"/></a>&nbsp;&nbsp;&nbsp;&nbsp; <a href="https://www.koble.ai/"><img src="https://cdn.prod.website-files.com/64a817a2e7e2208272d1ce30/67e673e60161f59b5db6554c_koble.svg" alt="Koble" height="50"/></a>&nbsp;&nbsp;&nbsp;&nbsp; <a href="https://www.playtika.com/"><img src="https://cdn.prod.website-files.com/64a817a2e7e2208272d1ce30/66e959c0c5f8422ecac8d81a_Playtika-min.svg" alt="Playtika" height="50"/></a>&nbsp;&nbsp;&nbsp;&nbsp; <a href="https://nielseniq.com/"><img src="https://cdn.prod.website-files.com/64a817a2e7e2208272d1ce30/65ddeac959d7ca93745e8130_nielsen_iq_logo-min.svg" alt="NIQ" height="50"/></a>&nbsp;&nbsp;&nbsp;&nbsp; <a href="https://www.enel.com/"><img src="https://cdn.prod.website-files.com/64a817a2e7e2208272d1ce30/66c84308b1e802ab9a246134_enel-min.svg" alt="Enel" height="50"/></a> </div> <sub><i>(please email [email protected] if you want to be featured)</i></sub> ## 🚀 Get Started (5 minutes) ```bash # Install ZenML with server capabilities pip install "zenml[server]" # pip install zenml will install a slimmer client # Initialize your ZenML repository zenml init # Start local server or connect to a remote one zenml login ``` You can then explore any of the [examples](examples/) in this repo. We recommend starting with the [quickstart](examples/quickstart/), which demonstrates core ZenML concepts: pipelines, steps, artifacts, snapshots, and deployments. ### 🏗️ Architecture Overview ZenML uses a [**client-server architecture**](https://docs.zenml.io/getting-started/system-architectures) with an integrated web dashboard ([zenml-io/zenml-dashboard](https://github.com/zenml-io/zenml-dashboard)): - **Local Development**: `pip install "zenml[local]"` - runs both client and server locally - **Production**: Deploy server separately, connect with `pip install zenml` + `zenml login <server-url>` ## 🎮 Demo Here is a short demo: [![Watch the video](docs/book/.gitbook/assets/readme-youtube-thumbnail.png)](https://zenml.io/demo-video) ## 🖼️ Resources The best way to learn about ZenML is through our comprehensive documentation and tutorials: - **[Documentation](https://docs.zenml.io/)** - Complete product documentation - **[Your First AI Pipeline](https://docs.zenml.io/getting-started/your-first-ai-pipeline)** - Build and evaluate an AI service in minutes - **[Starter Guide](https://docs.zenml.io/user-guides/starter-guide)** - From zero to production in 30 minutes - **[LLMOps Guide](https://docs.zenml.io/user-guides/llmops-guide)** - Specific patterns for LLM applications - **[SDK Reference](https://sdkdocs.zenml.io/)** - Complete SDK reference ## 📚 More examples 1. **[Agent Architecture Comparison](examples/agent_comparison/)** - Compare AI agents with LangGraph workflows, LiteLLM integration, and automatic visualizations via custom materializers 2. **[Deploying ML Models](examples/deploying_ml_model/)** - Deploy classical ML models as production endpoints with monitoring and versioning 3. **[Deploying Agents](examples/deploying_agent/)** - Document analysis service with pipelines, evaluation, and embedded web UI 4. **[E2E Batch Inference](examples/e2e/)** - Complete MLOps pipeline with feature engineering 5. **[LLM RAG Pipeline](https://github.com/zenml-io/zenml-projects/tree/main/llm-complete-guide)** - Production RAG with evaluation loops 6. **[Agentic Workflow (Deep Research)](https://github.com/zenml-io/zenml-projects/tree/main/deep_research)** - Orchestrate your agents with ZenML 7. **[Fine-tuning Pipeline](https://github.com/zenml-io/zenml-projects/tree/main/gamesense)** - Fine-tune and deploy LLMs ## 🗣️ Chat With Your Pipelines: ZenML MCP Server Stop clicking through dashboards to understand your ML workflows. The **[ZenML MCP Server](https://github.com/zenml-io/mcp-zenml)** lets you query your pipelines, analyze runs, and trigger deployments using natural language through Claude Desktop, Cursor, or any MCP-compatible client. ``` 💬 "Which pipeline runs failed this week and why?" 📊 "Show me accuracy metrics for all my customer churn models" 🚀 "Trigger the latest fraud detection pipeline with production data" ``` **Quick Setup:** 1. Download the `.dxt` file from [zenml-io/mcp-zenml](https://github.com/zenml-io/mcp-zenml) 2. Drag it into Claude Desktop settings 3. Add your ZenML server URL and API key 4. Start chatting with your ML infrastructure The MCP (Model Context Protocol) integration transforms your ZenML metadata into conversational insights, making pipeline debugging and analysis as easy as asking a question. Perfect for teams who want to democratize access to ML operations without requiring dashboard expertise. ## 🤖 Kitaru: Durable AI Agents Building AI agents that need to survive crashes, pause for human approval, or run on cloud infrastructure? **[Kitaru](https://kitaru.ai)** is our open-source sister project for making Python agents durable. - **Crash recovery** — checkpoint and replay from failure, not from scratch - **Human-in-the-loop** — built-in approval gates and wait points - **Persistent memory** — versioned, durable state across agent runs with full audit trail - **Framework agnostic** — works with PydanticAI, CrewAI, or raw Python - **Runs anywhere** — local, Kubernetes, Vertex AI, SageMaker, AzureML Built on the same infrastructure that powers ZenML. Two decorators (`@flow` + `@checkpoint`) and you're done. ```bash pip install kitaru ``` 👉 **[kitaru.ai](https://kitaru.ai)** · **[GitHub](https://github.com/zenml-io/kitaru)** · **[Docs](https://kitaru.ai/docs)** ### 🎓 Books & Resources <div align="center"> <a href="https://www.amazon.com/LLM-Engineers-Handbook-engineering-production/dp/1836200072"> <img src="docs/book/.gitbook/assets/llm_engineering_handbook_cover.jpg" alt="LLM Engineer's Handbook Cover" width="200"/> </a> <a href="https://www.amazon.com/-/en/Andrew-McMahon/dp/1837631964"> <img src="docs/book/.gitbook/assets/ml_engineering_with_python.jpg" alt="Machine Learning Engineering with Python Cover" width="200"/> </a> <a href="https://www.amazon.com/DeepSeek-Practice-fine-tuning-distillation-engineering/dp/1806020858"> <img src="docs/book/.gitbook/assets/deepseek-in-practice-thumb.jpg" alt="DeepSeek in Practice Cover" width="200"/> </a> </div> [ZenML](https://zenml.io) is featured in these comprehensive guides to production AI systems. ## 🤝 Join ML Engineers Building the Future of AI **Contribute:** - 🌟 [Star us on GitHub](https://github.com/zenml-io/zenml/stargazers) - Help others discover ZenML - 🤝 [Contributing Guide](CONTRIBUTING.md) - Start with [`good-first-issue`](https://github.com/issues?q=is%3Aopen+is%3Aissue+archived%3Afalse+user%3Azenml-io+label%3A%22good+first+issue%22) - 💻 [Write Integrations](https://github.com/zenml-io/zenml/blob/main/src/zenml/integrations/README.md) - Add your favorite tools **Stay Updated:** - 🗺 [Public Roadmap](https://zenml.io/roadmap) - See what's coming next - 📰 [Blog](https://zenml.io/blog) - Best practices and case studies - 🎙 [Slack](https://zenml.io/slack) - Talk with AI practitioners ## ❓ FAQs from ML Engineers Like You **Q: "Do I need to rewrite my agents or models to use ZenML?"** A: No. Wrap your existing code in a `@step`. Keep using `scikit-learn`, PyTorch, LangGraph, LlamaIndex, or raw API calls. ZenML orchestrates your tools, it doesn't replace them. **Q: "How is this different from LangSmith/Langfuse?"** A: They provide excellent observability for LLM applications. We orchestrate the **full MLOps lifecycle for your entire AI stack**. With ZenML, you manage both your classical ML models and your AI agents in one unified framework, from development and evaluation all the way to production deployment. **Q: "Can I use my existing MLflow/W&B setup?"** A: Yes! ZenML integrates with both [MLflow](https://docs.zenml.io/stacks/experiment-trackers/mlflow) and [Weights & Biases](https://docs.zenml.io/stacks/experiment-trackers/wandb). Your experiments, our pipelines. **Q: "Is this just MLflow with extra steps?"** A: No. MLflow tracks experiments. We orchestrate the entire development process – from training and evaluation to deployment and monitoring – for both models and agents. **Q: "How do I configure ZenML with Kubernetes?"** A: ZenML integrates with Kubernetes through the native Kubernetes orchestrator, Kubeflow, and other K8s-based orchestrators. See our [Kubernetes orchestrator guide](https://docs.zenml.io/stacks/orchestrators/kubernetes) and [Kubeflow guide](https://docs.zenml.io/stacks/orchestrators/kubeflow), plus [deployment documentation](https://docs.zenml.io/getting-started/deploying-zenml/deploy-with-helm). **Q: "What about cost? I can't afford another platform."** A: ZenML's open-source version is free forever. You likely already have the required infrastructure (like a Kubernetes cluster and object storage). We just help you make better use of it for MLOps. ### 🛠 VS Code / Cursor Extension Manage pipelines directly from your editor: <details> <summary>🖥️ VS Code Extension in Action!</summary> <div align="center"> <img width="60%" src="docs/book/.gitbook/assets/zenml-extension-shortened.gif" alt="ZenML Extension"> </div> </details> Install from [VS Code Marketplace](https://marketplace.visualstudio.com/items?itemName=ZenML.zenml-vscode). ## 📜 License ZenML is distributed under the terms of the Apache License Version 2.0. See [LICENSE](LICENSE) for details. --- <div align="center"> <a href="https://www.linuxfoundation.org/"><img src="docs/book/.gitbook/assets/lf-member-silver.svg" alt="Linux Foundation Silver Member" height="100"/></a> &nbsp;&nbsp;&nbsp;&nbsp; <a href="https://www.cncf.io/"><img src="docs/book/.gitbook/assets/cncf-member-silver.svg" alt="CNCF Silver Member" height="100"/></a> </div> <img referrerpolicy="no-referrer-when-downgrade" src="https://static.scarf.sh/a.png?x-pxid=0fcbab94-8fbe-4a38-93e8-c2348450a42e" />

AI Agents CI / CD
5.4K Github Stars
awesome-open-data-annotation
Open Source

awesome-open-data-annotation

# 🏷 Open Source Data Annotation & Labeling Tools [![maintained-by-zenml](https://user-images.githubusercontent.com/3348134/173032050-ad923313-f2ce-4583-b27a-afcaa8b355e2.png)](https://github.com/zenml-io/zenml) At [ZenML](https://github.com/zenml-io/zenml) we believe that annotation and labeling workflows are a core part of the machine learning lifecycle. As an open-source tool, we wanted to highlight and recognize the variety of tools that are available to help your workflows become more data-centric. We had three core criteria to decide whether a particular tool could make it into the list: - The tool has an open-source licence. - The tool is actively maintained. - The tool is functional and fit for purpose. We welcome contributions to this list, so if you know of a tool that we've missed or if you've built one yourself, please do create a PR! 🔥 **Do you use these tools or do you want to add one to your MLOps stack?** At ZenML, we are looking for design partnerships and collaboration to develop the integrations and workflows around using annotation within the MLOps lifecycle. If you'd like to learn more, please [join our Slack](https://zenml.io/slack-invite/) and leave us a message! ## Contents - [Multi Modal / Multi Domain](#multi-modal-multi-domain) - [Text](#text) - [Images](#images) - [Audio](#audio) - [Video](#video) - [Time Series](#time-series) - [Other](#other) # Multi Modal / Multi Domain | Name | Description | License | | ---- | ----------- | ------- | | [Acharya](https://github.com/astutic/Acharya) | A Data Centric MLOps tool for your Named Entity Recognition projects ![](https://img.shields.io/github/stars/astutic/Acharya?color=black&label=%E2%AD%90%EF%B8%8F&style=plastic) | ? | | [Adala](https://github.com/HumanSignal/Adala) | An Autonomous Data (Labeling) Agent framework. ![](https://img.shields.io/github/stars/HumanSignal/Adala?color=black&label=%E2%AD%90%EF%B8%8F&style=plastic) | Apache-2 | | [Anudesh](https://github.com/AI4Bharat/Anudesh) | An open source platform to annotate data for Large language models - at scale. ![](https://img.shields.io/github/stars/AI4Bharat/Anudesh?color=black&label=%E2%AD%90%EF%B8%8F&style=plastic) | MIT | | [BIIGLE](https://github.com/biigle/biigle) | BIIGLE is a web application for the efficient and rapid annotation of still images and videos. ![](https://img.shields.io/github/stars/biigle/biigle?color=black&label=%E2%AD%90%EF%B8%8F&style=plastic) | GPL-3 | | [Classifai](https://github.com/CertifaiAI/classifai) | A comprehensive open-source data annotation platform ![](https://img.shields.io/github/stars/CertifaiAI/classifai?color=black&label=%E2%AD%90%EF%B8%8F&style=plastic) | Apache-2 | | [Computer Vision Annotation Tool (CVAT)](https://github.com/openvinotoolkit/cvat) | A free, online, interactive video and image annotation tool for computer vision ![](https://img.shields.io/github/stars/openvinotoolkit/cvat?color=black&label=%E2%AD%90%EF%B8%8F&style=plastic) | MIT | | [Data Annotator for Machine Learning (DAML)](https://github.com/vmware/data-annotator-for-machine-learning) | An application that helps machine learning teams facilitating the creation and management of annotations ![](https://img.shields.io/github/stars/vmware/data-annotator-for-machine-learning?color=black&label=%E2%AD%90%EF%B8%8F&style=plastic) | Apache-2 | | [DataGym](https://github.com/datagym-ai/datagym-core) | Open source annotation and labeling tool for image and video assets ![](https://img.shields.io/github/stars/datagym-ai/datagym-core?color=black&label=%E2%AD%90%EF%B8%8F&style=plastic) | MIT | | [Diffgram](https://github.com/diffgram/diffgram) | Training Data (Data Labeling, Annotation, Workflow) for all Data Types (Image, Video, 3D, Text, Geo, Audio, more) at scale ![](https://img.shields.io/github/stars/diffgram/diffgram?color=black&label=%E2%AD%90%EF%B8%8F&style=plastic) | ELv2 | | [Hover](https://github.com/phurwicz/hover) | Explore and label on a map of raw data. Handles text, audio and images. ![](https://img.shields.io/github/stars/phurwicz/hover?color=black&label=%E2%AD%90%EF%B8%8F&style=plastic) | MIT | | [Label Studio](https://github.com/heartexlabs/label-studio) | A multi-type data labeling and annotation tool with standardized output format ![](https://img.shields.io/github/stars/heartexlabs/label-studio?color=black&label=%E2%AD%90%EF%B8%8F&style=plastic) | Apache-2 | | [Pigeon](https://github.com/agermanidis/pigeon) | A simple widget that lets you quickly annotate a dataset of unlabeled examples from the comfort of your Jupyter notebook ![](https://img.shields.io/github/stars/agermanidis/pigeon?color=black&label=%E2%AD%90%EF%B8%8F&style=plastic) | Apache-2 | | [QSL: Quick and Simple Labeler](https://github.com/faustomorales/qsl) | A quick and simple tool for labeling images, videos and time series data, right from Jupyter ![](https://img.shields.io/github/stars/faustomorales/qsl?color=black&label=%E2%AD%90%EF%B8%8F&style=plastic) | MIT | | [Shoonya](https://github.com/AI4Bharat/Shoonya) | Platform to Annotate and label data at scale ![](https://img.shields.io/github/stars/AI4Bharat/Shoonya?color=black&label=%E2%AD%90%EF%B8%8F&style=plastic) | MIT | | [TornadoAi](https://github.com/slrbl/human-in-the-loop-machine-learning-tool-tornado) | A human-in-the-loop machine learning framework ![](https://img.shields.io/github/stars/slrbl/human-in-the-loop-machine-learning-tool-tornado?color=black&label=%E2%AD%90%EF%B8%8F&style=plastic) | AGPL-3 | | [Universal Data Tool](https://github.com/UniversalDataTool/universal-data-tool) | A web/desktop app for editing and annotating images, text, audio, documents and to view and edit any data defined in the extensible .udt.json and .udt.csv standard ![](https://img.shields.io/github/stars/UniversalDataTool/universal-data-tool?color=black&label=%E2%AD%90%EF%B8%8F&style=plastic) | MIT | | [VGG Image Annotator (VIA)](https://gitlab.com/vgg/via) | A standalone image annotator application packaged as a single HTML file (< 400 KB) that runs on most modern web browsers | BSD-2 | | [VIAME](https://github.com/VIAME/VIAME) | Video and Image Analytics for Multiple Environments ![](https://img.shields.io/github/stars/VIAME/VIAME?color=black&label=%E2%AD%90%EF%B8%8F&style=plastic) | Custom | | [Xtreme1](https://github.com/xtreme1-io/xtreme1) | An all-in-one data labeling and annotation platform for multimodal data training and supports 3D LiDAR point cloud, image, and LLM ![](https://img.shields.io/github/stars/xtreme1-io/xtreme1?color=black&label=%E2%AD%90%EF%B8%8F&style=plastic) | Apache-2 | # Text | Name | Description | License | | ---- | ----------- | ------- | | [Annotation Lab](https://nlp.johnsnowlabs.com/docs/en/alab/quickstart) | An NLP annotation tool included in `spark-nlp` ![](https://img.shields.io/github/stars/JohnSnowLabs/spark-nlp?color=white&label=%E2%AD%90%EF%B8%8F&style=plastic) | Apache-2 | | [bulk](https://github.com/koaning/bulk) | Bulk is a quick developer tool to apply some bulk labels ![](https://img.shields.io/github/stars/koaning/bulk?color=white&label=%E2%AD%90%EF%B8%8F&style=plastic)| MIT | | [CoreNLP](https://github.com/stanfordnlp/CoreNLP) | A Java suite of core NLP tools ![](https://img.shields.io/github/stars/stanfordnlp/CoreNLP?color=white&label=%E2%AD%90%EF%B8%8F&style=plastic) | GPL-3 | | [DataQA](https://github.com/dataqa/nlp-labelling) | Labeling platform for text using weak supervision ![](https://img.shields.io/github/stars/dataqa/nlp-labelling?color=white&label=%E2%AD%90%EF%B8%8F&style=plastic) | GPL-3 | | [doccano](https://github.com/doccano/doccano) | An open source text annotation tool supporting text classification, sequence labeling and sequence to sequence tasks ![](https://img.shields.io/github/stars/doccano/doccano?color=white&label=%E2%AD%90%EF%B8%8F&style=plastic) | MIT | | [FLAT - FoLiA Linguistic Annotation Tool](https://github.com/proycon/flat) | A web-based linguistic annotation environment based around the FoLiA format, an XML-based format for linguistic annotation ![](https://img.shields.io/github/stars/proycon/flat?color=white&label=%E2%AD%90%EF%B8%8F&style=plastic) | GPL-3 | | [INCEpTION](https://github.com/inception-project/inception) | A semantic annotation platform offering intelligent annotation assistance and knowledge management ![](https://img.shields.io/github/stars/inception-project/inception?color=white&label=%E2%AD%90%EF%B8%8F&style=plastic) | Apache-2 | | [knodle](https://github.com/knodle/knodle) | Knodle (Knowledge-supervised Deep Learning Framework) ![](https://img.shields.io/github/stars/knodle/knodle?color=white&label=%E2%AD%90%EF%B8%8F&style=plastic)| Apache-2 | | [Label Sleuth](https://github.com/label-sleuth/label-sleuth) | An open source no-code system for text annotation and building text classifiers ![](https://img.shields.io/github/stars/label-sleuth/label-sleuth?color=white&label=%E2%AD%90%EF%B8%8F&style=plastic) | Apache-2 | | [Markup](https://github.com/samueldobbie/markup) | A web-based document annotation tool, powered by GPT-4 ![](https://img.shields.io/github/stars/samueldobbie/markup?color=white&label=%E2%AD%90%EF%B8%8F&style=plastic)| Unknown | | [NER Annotator for Spacy](https://github.com/tecoholic/ner-annotator) | NER Annotator for SpaCy allows you to create training data for creating a custom NER Model with custom tags. ![](https://img.shields.io/github/stars/tecoholic/ner-annotator?color=white&label=%E2%AD%90%EF%B8%8F&style=plastic) | MIT | | [NPLM](https://github.com/BatsResearch/nplm) | Noisy Partial Label Model(NPLM) ![](https://img.shields.io/github/stars/BatsResearch/nplm?color=white&label=%E2%AD%90%EF%B8%8F&style=plastic)| N/A | | [Potato](https://github.com/davidjurgens/potato) | A portable annotation framework with 20+ annotation types, AI-assisted labeling, quality control, crowdsourcing support, and agent trace evaluation ![](https://img.shields.io/github/stars/davidjurgens/potato?color=white&label=%E2%AD%90%EF%B8%8F&style=plastic) | PolyForm Shield | | [refinery](https://github.com/code-kern-ai/refinery) | The data scientist's open-source choice to scale, assess and maintain natural language data. ![](https://img.shields.io/github/stars/code-kern-ai/refinery?color=white&label=%E2%AD%90%EF%B8%8F&style=plastic) | Apache-2 | | [Slate](https://github.com/jkkummerfeld/slate) | A Super-Lightweight Annotation Tool for Experts: Label text in a terminal with just Python ![](https://img.shields.io/github/stars/jkkummerfeld/slate?color=white&label=%E2%AD%90%EF%B8%8F&style=plastic) | ISC | | [SMART](https://github.com/RTIInternational/SMART) | A tool for building labeled training datasets for supervised machine learning tasks in NLP ![](https://img.shields.io/github/stars/RTIInternational/SMART?color=white&label=%E2%AD%90%EF%B8%8F&style=plastic) | MIT | | [SpaCy annotator](https://github.com/ieriii/spacy-annotator) | Spacy NER annotator using ipywidgets ![](https://img.shields.io/github/stars/ieriii/spacy-annotator?color=white&label=%E2%AD%90%EF%B8%8F&style=plastic) | N/A | | [Small-Text](https://github.com/webis-de/small-text) | Active Learning for Text Classification ![](https://img.shields.io/github/stars/webis-de/small-text?color=white&label=%E2%AD%90%EF%B8%8F&style=plastic) | MIT | | [Snorkel](https://github.com/snorkel-team/snorkel) | Programmatically Build and Manage Training Data ![](https://img.shields.io/github/stars/snorkel-team/snorkel?color=white&label=%E2%AD%90%EF%B8%8F&style=plastic) | Apache-2 | | [skweak](https://github.com/NorskRegnesentral/skweak) | skweak: Weak supervision for NLP ![](https://img.shields.io/github/stars/NorskRegnesentral/skweak?color=white&label=%E2%AD%90%EF%B8%8F&style=plastic)| MIT | | [TALEN](https://github.com/CogComp/talen) | A way to do annotations for NER ![](https://img.shields.io/github/stars/CogComp/talen?color=white&label=%E2%AD%90%EF%B8%8F&style=plastic) | Custom | | [Theme](https://github.com/Oxid15/theme) | Minimalistic CLI labeling tool for text classification ![](https://img.shields.io/github/stars/Oxid15/theme?color=white&label=%E2%AD%90%EF%B8%8F&style=plastic) | MIT | | [YEDDA](https://github.com/jiesutd/YEDDA) | A lightweight collaborative text span annotation tool ![](https://img.shields.io/github/stars/jiesutd/YEDDA?color=white&label=%E2%AD%90%EF%B8%8F&style=plastic) | Apache-2 | | [WeaSEL](https://github.com/autonlab/weasel) | WeaSEL: Weakly Supervised End-to-end Learning ![](https://img.shields.io/github/stars/autonlab/weasel?color=white&label=%E2%AD%90%EF%B8%8F&style=plastic)| Apache-2 | # Images | Name | Description | License | | ---- | ----------- | ------- | | [3D Slicer](https://www.slicer.org) | Visualization, processing, segmentation, registration, and analysis of medical, biomedical, and other 3D images and meshes ![](https://img.shields.io/github/stars/Slicer/Slicer?color=purple&label=%E2%AD%90%EF%B8%8F&style=plastic) | BSD | | [Annotate Lab](https://github.com/sumn2u/annotate-lab) | Simplifying Image Annotation ![](https://img.shields.io/github/stars/sumn2u/annotate-lab?color=purple&label=%E2%AD%90%EF%B8%8F&style=plastic) | MIT | | [Annotorious](https://github.com/recogito/annotorious) | A JavaScript library for image annotation ![](https://img.shields.io/github/stars/recogito/annotorious?color=purple&label=%E2%AD%90%EF%B8%8F&style=plastic) | BSD-3 | | [AnyLabeling](https://github.com/vietanhdev/anylabeling) | Effortless AI-assisted data labeling with AI support from YOLO, Segment Anything, MobileSAM ![](https://img.shields.io/github/stars/vietanhdev/anylabeling?color=purple&label=%E2%AD%90%EF%B8%8F&style=plastic) | GPL-3 | | [autodistill](https://github.com/autodistill/autodistill) | Images to inference with no labeling (use foundation models to train supervised models) ![](https://img.shields.io/github/stars/autodistill/autodistill?color=purple&label=%E2%AD%90%EF%B8%8F&style=plastic) | Apache-2 | | [bbox-visualizer](https://github.com/shoumikchow/bbox-visualizer) | Make drawing and labeling bounding boxes easy as cake ![](https://img.shields.io/github/stars/shoumikchow/bbox-visualizer?color=purple&label=%E2%AD%90%EF%B8%8F&style=plastic) | MIT | | [Bounding Box Editor](https://github.com/mfl28/BoundingBoxEditor) | A JavaFX desktop application for creating image-object-annotations with bounding boxes ![](https://img.shields.io/github/stars/mfl28/BoundingBoxEditor?color=purple&label=%E2%AD%90%EF%B8%8F&style=plastic) | GPL-3 | | [CATMAID](https://github.com/catmaid/CATMAID) | The Collaborative Annotation Toolkit for Massive Amounts of Image Data ![](https://img.shields.io/github/stars/catmaid/CATMAID?color=purple&label=%E2%AD%90%EF%B8%8F&style=plastic) | GPL-3 | | [COCO Annotator](https://github.com/jsbroks/coco-annotator) | A web-based image segmentation tool for object detection, localization, and keypoints ![](https://img.shields.io/github/stars/jsbroks/coco-annotator?color=purple&label=%E2%AD%90%EF%B8%8F&style=plastic) | MIT | | [DeepLabel](https://github.com/jveitchmichaelis/deeplabel) | A cross-platform desktop image annotation tool for machine learning ![](https://img.shields.io/github/stars/jveitchmichaelis/deeplabel?color=purple&label=%E2%AD%90%EF%B8%8F&style=plastic) | MIT | | [Etichetta](https://github.com/trikko/etichetta) | A YOLO annotator, for human beings ![](https://img.shields.io/github/stars/trikko/etichetta?color=purple&label=%E2%AD%90%EF%B8%8F&style=plastic) | MIT | | [ilastik](https://github.com/ilastik/ilastik) | Segment, classify, track and count your cells or other experimental data ![](https://img.shields.io/github/stars/ilastik/ilastik?color=purple&label=%E2%AD%90%EF%B8%8F&style=plastic) | Custom | | [ImageTagger](https://github.com/bit-bots/imagetagger) | An open source online platform for collaborative image labeling ![](https://img.shields.io/github/stars/bit-bots/imagetagger?color=purple&label=%E2%AD%90%EF%B8%8F&style=plastic) | MIT | | [imglab](https://github.com/NaturalIntelligence/imglab) | A web based tool to label images for objects that can be used to train dlib or other object detectors ![](https://img.shields.io/github/stars/NaturalIntelligence/imglab?color=purple&label=%E2%AD%90%EF%B8%8F&style=plastic) | MIT | | [KNOSSOS](https://github.com/knossos-project/knossos) | A software tool for the visualization and annotation of 3D image data and was developed for the rapid reconstruction of neural morphology and connectivity ![](https://img.shields.io/github/stars/knossos-project/knossos?color=purple&label=%E2%AD%90%EF%B8%8F&style=plastic) | GPL-2 | | [labelCloud](https://github.com/ch-sa/labelCloud) | A lightweight tool for labeling 3D bounding boxes in point clouds ![](https://img.shields.io/github/stars/ch-sa/labelCloud?color=purple&label=%E2%AD%90%EF%B8%8F&style=plastic) | GPL-3 | | [LabelFlow](https://github.com/labelflow/labelflow) | An open platform for image labeling ![](https://img.shields.io/github/stars/labelflow/labelflow?color=purple&label=%E2%AD%90%EF%B8%8F&style=plastic) | Custom | | [labelme](https://github.com/wkentaro/labelme) | Image Polygonal Annotation with Python (polygon, rectangle, circle, line, point and image-level flag annotation) ![](https://img.shields.io/github/stars/wkentaro/labelme?color=purple&label=%E2%AD%90%EF%B8%8F&style=plastic) | Custom | | [LabelImg](https://github.com/tzutalin/labelImg) | A graphical image annotation tool and label object bounding boxes in images ![](https://img.shields.io/github/stars/tzutalin/labelImg?color=purple&label=%E2%AD%90%EF%B8%8F&style=plastic) | MIT | | [LightlyStudio](https://github.com/lightly-ai/lightly-studio) | An open source tool to curate, annotate, and manage vision datasets (images and videos). Supports embedding-based auto-selection, annotation, and auto-labeling for bounding boxes, segmentation, and captions. ![](https://img.shields.io/github/stars/lightly-ai/lightly-studio?color=purple&label=%E2%AD%90%EF%B8%8F&style=plastic) | Apache-2 | | [LOST](https://github.com/l3p-cv/lost) | A flexible web-based framework for semi-automatic image annotation ![](https://img.shields.io/github/stars/l3p-cv/lost?color=purple&label=%E2%AD%90%EF%B8%8F&style=plastic) | MIT | | [Make Sense](https://github.com/SkalskiP/make-sense) | A free-to-use online tool for labeling photos ![](https://img.shields.io/github/stars/SkalskiP/make-sense?color=purple&label=%E2%AD%90%EF%B8%8F&style=plastic) | GPL-3 | | [MyVision](https://github.com/OvidijusParsiunas/myvision) | Computer vision based ML training data generation tool ![](https://img.shields.io/github/stars/OvidijusParsiunas/myvision?color=purple&label=%E2%AD%90%EF%B8%8F&style=plastic) | GPL-3 | | [OHIF Medical Imaging Viewer](https://github.com/OHIF/Viewers) | OHIF zero-footprint DICOM viewer and oncology specific Lesion Tracker ![](https://img.shields.io/github/stars/OHIF/Viewers?color=purple&label=%E2%AD%90%EF%B8%8F&style=plastic) | MIT | | [OpenLabeler](https://github.com/kinhong/OpenLabeler) | An open source desktop application for annotating objects for AI appplications ![](https://img.shields.io/github/stars/kinhong/OpenLabeler?color=purple&label=%E2%AD%90%EF%B8%8F&style=plastic) | Apache-2 | | [Pixano](https://github.com/pixano/pixano-app) | A web-based smart-annotation tool for computer vision applications ![](https://img.shields.io/github/stars/pixano/pixano-app?color=purple&label=%E2%AD%90%EF%B8%8F&style=plastic) | CeCILL-C | | [Scalabel](https://github.com/scalabel/scalabel) | A web-based visual data annotation tool, supporting both 2D and 3D data labeling ![](https://img.shields.io/github/stars/scalabel/scalabel?color=purple&label=%E2%AD%90%EF%B8%8F&style=plastic) | Apache-2 | | [webKnossos](https://github.com/scalableminds/webknossos) | A fully cloud- and browser-based 3D annotation tool for distributed large-scale data analysis in light- and electron-microscopy based Connectomics ![](https://img.shields.io/github/stars/scalableminds/webknossos?color=purple&label=%E2%AD%90%EF%B8%8F&style=plastic) | AGPL-3 | | [Yolo_Label](https://github.com/developer0hye/Yolo_Label) | GUI for marking bounded boxes of objects in images for training neural network YOLO ![](https://img.shields.io/github/stars/developer0hye/Yolo_Label?color=purple&label=%E2%AD%90%EF%B8%8F&style=plastic) | MIT | # Video | Name | Description | License | | ---- | ----------- | ------- | | [Chitralekha](https://github.com/AI4Bharat/Chitralekha) | An open source video transcreation tool ![](https://img.shields.io/github/stars/AI4Bharat/Chitralekha?color=orange&label=%E2%AD%90%EF%B8%8F&style=plastic) | MIT | | [DIVE](https://github.com/Kitware/dive) | Media annotation and analysis tools for web and desktop ![](https://img.shields.io/github/stars/Kitware/dive?color=orange&label=%E2%AD%90%EF%B8%8F&style=plastic) | Apache-2 | | [UltimateLabeling](https://github.com/alexandre01/UltimateLabeling) | A multi-purpose Video Labeling GUI in Python with integrated SOTA detector and tracker ![](https://img.shields.io/github/stars/alexandre01/UltimateLabeling?color=orange&label=%E2%AD%90%EF%B8%8F&style=plastic) | MIT | # Audio | Name | Description | License | | ---- | ----------- | ------- | | [aubio](https://aubio.org) | A library for audio and music analysis ![](https://img.shields.io/github/stars/aubio/aubio?color=pink&label=%E2%AD%90%EF%B8%8F&style=plastic) | GPL-3 | | [audino](https://github.com/midas-research/audino) | Open source audio annotation tool ![](https://img.shields.io/github/stars/midas-research/audino?color=pink&label=%E2%AD%90%EF%B8%8F&style=plastic) | MIT | | [Praat](https://github.com/praat/praat) | Annotation tool for phonetics analysis ![](https://img.shields.io/github/stars/praat/praat?color=pink&label=%E2%AD%90%EF%B8%8F&style=plastic) | GPL-3 | | [Peaks.js](https://github.com/bbc/peaks.js) | JavaScript UI component for interacting with audio waveforms ![](https://img.shields.io/github/stars/bbc/peaks.js?color=pink&label=%E2%AD%90%EF%B8%8F&style=plastic) | LGPL-3 | | [Wavesurfer.js](https://github.com/katspaugh/wavesurfer.js) | Navigable waveform built on Web Audio and Canvas ![](https://img.shields.io/github/stars/katspaugh/wavesurfer.js?color=pink&label=%E2%AD%90%EF%B8%8F&style=plastic) | BSD-3 | # Time Series | Name | Description | License | | ---- | ----------- | ------- | | [CardioMark](https://github.com/CardioMark/CardioMark) | An open-source MATLAB toolbox for ECG annotation for machine learning and academic research ![](https://img.shields.io/github/stars/CardioMark/CardioMark?color=blue&label=%E2%AD%90%EF%B8%8F&style=plastic) | GPL-3 | | [sktime](https://github.com/sktime/sktime) | A framework for machine learning with time series ![](https://img.shields.io/github/stars/sktime/sktime?color=blue&label=%E2%AD%90%EF%B8%8F&style=plastic) | BSD-3 | # Other | Name | Description | License | | ---- | ----------- | ------- | | [Compose](https://github.com/alteryx/compose) | Automated prediction engineering. Allows you to easily structure prediction problems and generate labels for supervised learning ![](https://img.shields.io/github/stars/alteryx/compose?color=green&label=%E2%AD%90%EF%B8%8F&style=plastic) | BSD-3 | | [Encord Active](https://github.com/encord-team/encord-active/) | Toolkit to test, validate, and evaluate your models and surface, curate, and prioritize the most valuable data for labeling ![](https://img.shields.io/github/stars/encord-team/encord-active?color=green&label=%E2%AD%90%EF%B8%8F&style=plastic) | Apache-2 | | [Label App](https://github.com/javserjod/label-app) | Application designed to assist in manually editing, visualizing and labelling your moderate-sized datasets ![](https://img.shields.io/github/stars/javserjod/label-app?color=green&label=%E2%AD%90%EF%B8%8F&style=plastic) | Apache-2 | | [NeuroTrALE](https://github.com/mit-ll/NeuroTrALE-data-manager) | Annotation software for brain mapping, supporting 3D imaging and annotation ![](https://img.shields.io/github/stars/mit-ll/NeuroTrALE-data-manager?color=green&label=%E2%AD%90%EF%B8%8F&style=plastic) | BSD-2 | | [OpenCRAVAT](https://github.com/KarchinLab/open-cravat) | A modular annotation tool for genomic variants ![](https://img.shields.io/github/stars/KarchinLab/open-cravat?color=green&label=%E2%AD%90%EF%B8%8F&style=plastic) | MIT | | [PatchSorter](https://github.com/choosehappy/PatchSorter) | An open-source digital pathology tool for histologic object labeling ![](https://img.shields.io/github/stars/choosehappy/PatchSorter?color=green&label=%E2%AD%90%EF%B8%8F&style=plastic) | BSD-3 | | [Personal Cancer Genome Reporter (PCGR)](https://github.com/sigven/pcgr) | A stand-alone software package for translation of individual tumor genomes for precision cancer medicine ![](https://img.shields.io/github/stars/sigven/pcgr?color=green&label=%E2%AD%90%EF%B8%8F&style=plastic) | MIT | | [Quepid](https://github.com/o19s/quepid) | Gather Human Judgements (aka Explicit Ratings) for Search Quality. Also a safe space to play with your search algorithm. ![](https://img.shields.io/github/stars/o19s/quepid?color=green&label=%E2%AD%90%EF%B8%8F&style=plastic) | Apache-2 | # Acknowledgements Thanks to the creators of [these](https://github.com/jsbroks/awesome-dataset-tools) [other](https://github.com/doccano/awesome-annotation-tools) [repositories](https://github.com/taivop/awesome-data-annotation) (and [this one](https://github.com/heartexlabs/awesome-data-labeling)!) for getting us going down the path of creating our own. I used these efforts to get started in my survey of the space before adding, updating and pruning as per the open-source and other criteria specified above.

AI & Machine Learning Data Labeling
706 Github Stars
mlstacks
Open Source

mlstacks

# MLStacks: Deploy your MLOps infrastructure in minutes ## 🌰 In a nutshell: What is MLStacks? [MLStacks](https://mlstacks.zenml.io) is a [Python package](https://pypi.org/project/mlstacks/) that allows you to quickly spin up MLOps infrastructure using Terraform. It is designed to be used with [ZenML](https://zenml.io), but can be used with any MLOps tool or platform. Simply write stack and component YAML specification files and deploy them using the MLStacks CLI. MLStacks will take care of the rest. We currently support modular MLOps stacks on AWS, GCP and K3D (for local use). ## 👷 Why We Built MLStacks [![maintained-by-zenml](https://user-images.githubusercontent.com/3348134/173032050-ad923313-f2ce-4583-b27a-afcaa8b355e2.png)](https://github.com/zenml-io/zenml) When we first created [ZenML](https://zenml.io) as an extensible MLOps framework for creating portable, production-ready MLOps pipelines, we saw many of our users having to deal with the pain of deploying infrastructure from scratch to run these pipelines. The community consistently asked questions like: - How do I deploy tool X with tool Y? - Does a combination of tool X with Y make sense? - Isn't there an easy way to just try these stacks out to make an informed decision? To address these questions, the ZenML team presents you a series of Terraform-based stacks to quickly provision popular combinations of MLOps tools. These stacks will be useful for you if: - You are at the start of your MLOps journey, and would like to explore different tools. - You are looking for guidelines for production-grade deployments. - You would like to run your MLOps pipelines on your chosen [ZenML Stack](https://docs.zenml.io/user-guide/starter-guide/understand-stacks). 🔥 **Do you use these tools or do you want to add one to your MLOps stack?** At ZenML, we are looking for design partnerships and collaboration to implement and develop these MLOps stacks in a real-world setting. If you'd like to learn more, please [join our Slack](https://zenml.io/slack-invite/) and leave us a message! ## 🤓 Learn More - Try the [Quickstart example in the documentation](https://mlstacks.zenml.io/getting-started/quickstart) to get started with MLStacks. - Discover what you can configure with the different stacks in the [Stacks documentation](https://mlstacks.zenml.io/stacks/stack-specification). - Learn about our CLI commands in the [CLI documentation](https://mlstacks.zenml.io/reference/cli.md). ## 🙏🏻 Acknowledgements Thank you to the folks over at [Fuzzy Labs](https://www.fuzzylabs.ai/) for their support and contributions to this repository. Also many thanks to [Ali Abbas Jaffri](https://github.com/aliabbasjaffri) for several stimulating discussions around the architecture of this project. We'd also like to acknowledge some of the cool inspirations for this project: - [FuseML](https://fuseml.github.io/) - [Combinator.ML](https://combinator.ml/) - [Building a ML Platform From Scratch](https://www.aporia.com/blog/building-an-ml-platform-from-scratch/)

DevOps & Infrastructure ML Frameworks Infrastructure as Code
254 Github Stars
kitaru
Open Source

kitaru

<p align="center"> <a href="https://kitaru.ai"> <img src="https://kitaru.ai/kitaru-logo.svg" alt="Kitaru" width="240"> </a> </p> <h3 align="center">The runtime layer underneath your agent stack.</h3> <p align="center"> Kitaru (来る, "to arrive") is a self-hosted, framework-agnostic runtime for autonomous agents — underneath the harness your team already picked. You keep your agent SDK, your prompts, your tools, your model. Kitaru adds durable execution: checkpoints, replay, resume, <code>wait()</code>, versioned deployments, and isolated runtimes, running on your own infrastructure. </p> <p align="center"> <a href="https://pypi.org/project/kitaru/"><img alt="PyPI" src="https://img.shields.io/pypi/v/kitaru?color=blue"></a> <a href="https://pypi.org/project/kitaru/"><img alt="Python" src="https://img.shields.io/pypi/pyversions/kitaru"></a> <a href="https://github.com/zenml-io/kitaru/blob/main/LICENSE"><img alt="License" src="https://img.shields.io/github/license/zenml-io/kitaru"></a> </p> <p align="center"> <a href="https://docs.zenml.io/kitaru">Docs</a> &middot; <a href="#quick-start">Quick Start</a> &middot; <a href="https://docs.zenml.io/kitaru/getting-started/examples">Examples</a> &middot; <a href="GETTING_STARTED.md">Getting Started Guide</a> &middot; <a href="https://www.zenml.io/roadmap">Roadmap</a> &middot; <a href="https://www.zenml.io/slack">Community</a> </p> --- <p align="center"> <img src="assets/dashboard.png" alt="Kitaru Dashboard" width="720"> </p> ## 🧩 Where Kitaru fits Agent stacks break cleanly into four layers. Kitaru is exactly one of them. | Layer | What it does | Examples | |---|---|---| | **Model** | The LLM itself — a compute unit over a context window | OpenAI, Anthropic, Google, open-weights, fine-tuned in-house | | **Harness** | The *loop around the model* — prompts, tools, model loop, framework choice | Pydantic AI / Pydantic AI Harness, LangGraph, Claude Agent SDK, OpenAI Agents SDK, raw Python | | **Runtime (Kitaru)** | How the agent *survives and executes over time* — checkpoints, replay, resume, `wait()`, versioned deployments, isolated runtimes | `@flow`, `@checkpoint`, `flow.deploy()`, `kitaru.wait()` | | **Platform** | How your org *governs* — auth, entitlements, interceptors, observability, product UI, policy | Your existing stack | Kitaru lives in the middle row. Harnesses define behavior, your stack defines policy, and Kitaru gives you the durable execution layer in between. If you're *buying* an agent platform, Kitaru may feel low-level. If you're *building* one, that's the point. Platform teams get the durable execution layer they'd otherwise build themselves — run lifecycle, checkpoint boundaries, replay, invocation routing, and self-hosted execution — without mandating which harness application teams use on top. ## 🎯 Why Kitaru? ### Durable execution - **Durable execution.** A crash, pod eviction, or timeout doesn't send the run back to zero. Fix the bug, replay, and the completed checkpoints return cached output instead of re-burning tokens. - **Pause and resume.** `kitaru.wait()` suspends a flow, releases compute, and resumes minutes, hours, or days later when input lands from a human, another agent, a webhook, or a CLI call. - **Versioned deployments.** `flow.deploy()` freezes a flow as an immutable snapshot consumers invoke by name. Tag to roll out, re-tag to roll back. Nothing that *calls* the agent redeploys when a new version ships. - **Artifact lineage.** Every checkpoint output is written to your object store as a typed, versioned artifact. Step through any run, diff artifacts across runs, and trace a bad output back to the step that produced it. - **Isolated execution.** `@checkpoint(runtime="isolated")` runs a specific step in its own pod or job on Kubernetes, AWS, GCP, or Azure. Heavy or risky steps stay isolated; orchestration stays inline. ### Python-first, no graph DSL Write normal Python. Use `if`, `for`, `try/except` — whatever your agent needs. Kitaru gives you two decorators (`@flow` and `@checkpoint`) and a handful of utility functions. That's all you need. ```python from kitaru import checkpoint, flow @checkpoint def research(topic: str) -> str: return do_research(topic) @checkpoint def write_draft(research: str) -> str: return generate_draft(research) @flow def writing_agent(topic: str) -> str: data = research(topic) return write_draft(data) result = writing_agent.run("quantum computing").wait() ``` ### Deploy on your cloud A single self-hosted server, your own infra. Flows run on whichever **stack** you pick — local, Kubernetes, GCP, AWS, or Azure — with artifacts in your own S3/GCS/Azure Blob bucket. No mandatory SaaS control plane. ### Built-in UI Every execution is observable from day one. See your agent runs, inspect checkpoint outputs, and approve human-in-the-loop wait steps, all from a UI that ships with the Kitaru server. To start the server locally, run `kitaru login` after installing `kitaru[local]`. To connect to an existing remote server, run `kitaru login <server>`. ### Works with your agent SDK Wrap an existing PydanticAI agent with `KitaruAgent` — no rewrite. For agents built on the OpenAI Agents SDK, Anthropic Agent SDK, or raw Python, use `@flow` and `@checkpoint` around your calls. Your model, your tools, your framework — Kitaru wraps them, not the other way around. ```python from kitaru import flow from kitaru.adapters.pydantic_ai import KitaruAgent from pydantic_ai import Agent researcher = KitaruAgent( Agent("openai:gpt-5.4", system_prompt="You summarize research topics.") ) @flow def research_flow(topic: str) -> str: return researcher.run_sync(topic).output ``` <a id="quick-start"></a> ## 🚀 Quick Start ### Install ```bash pip install kitaru ``` Or with [uv](https://docs.astral.sh/uv/) (recommended): ```bash uv pip install kitaru ``` To wrap a PydanticAI agent, install the adapter extra: ```bash uv pip install "kitaru[pydantic-ai]" ``` ### Optional: start a local Kitaru server Flows run locally by default with the base install. If you also want the local dashboard and REST API, install the local extra and then run bare `kitaru login`: ```bash uv pip install "kitaru[local]" kitaru login kitaru status ``` ### Optional: connect to an existing remote Kitaru server If you already have a deployed Kitaru server, connect to it explicitly: ```bash kitaru login https://my-server.example.com # add --project <PROJECT> or other remote-login flags if your setup requires them kitaru status ``` ### Initialize your project ```bash kitaru init ``` ### Write your first flow ```python # agent.py from kitaru import checkpoint, flow @checkpoint def fetch_data(url: str) -> str: return "some data" @checkpoint def process_data(data: str) -> str: return data.upper() @flow def my_agent(url: str) -> str: data = fetch_data(url) return process_data(data) result = my_agent.run("https://example.com").wait() print(result) # SOME DATA ``` ### Run it ```bash python agent.py ``` Every checkpoint's output is persisted automatically. You can inspect what happened, replay from any checkpoint, or resume a waiting flow: ```bash kitaru executions list kitaru executions get <EXECUTION_ID> kitaru executions logs <EXECUTION_ID> kitaru executions replay <EXECUTION_ID> --from process_data ``` ### Deploy it When the flow is ready, deploy it as a versioned snapshot and invoke it by name — no redeploy of whatever *calls* the agent. ```python # Freeze the current code + dependencies as a versioned snapshot. # Parameterized flows take representative deployment-time inputs; # consumers can override them at invocation time. my_agent.deploy(url="https://example.com") # Consumers invoke by name — from Python, CLI, MCP, or HTTP. from kitaru import KitaruClient KitaruClient().deployments.invoke( flow="my_agent", inputs={"url": "https://example.com"}, ) ``` ```bash # Tag a version into a stage; re-tag to roll back. kitaru flow tag my_agent latest --stage=prod kitaru flow tag my_agent v2 --stage=prod # rollback ``` ## 📚 Learn more | Resource | Description | |---|---| | [Getting Started Guide](GETTING_STARTED.md) | Full setup walkthrough with all examples | | [Documentation](https://docs.zenml.io/kitaru) | Complete reference and guides | | [Agent Harness Platform](https://docs.zenml.io/kitaru/agent-harness-platform) | Build a durable agent harness platform stage by stage | | [Examples](https://docs.zenml.io/kitaru/getting-started/examples) | Runnable workflows for every feature | | [Stacks](https://docs.zenml.io/kitaru/stacks) | Deploy to Kubernetes, AWS, GCP, or Azure | ## 🌱 Origins Kitaru is built by the team behind [ZenML](https://zenml.io), drawing on five years of production orchestration experience (JetBrains, Adeo, Brevo). The orchestration primitives (stacks, artifacts, lineage) are purpose-rebuilt here for autonomous agents. ## 🤝 Contributing We welcome contributions! See [CONTRIBUTING.md](CONTRIBUTING.md) for development setup, code style, and how to submit changes. The default branch is `develop` — all PRs should target it. ## 💬 Community and support - [Discussions](https://www.zenml.io/slack) — ask questions, share ideas - [Issues](https://github.com/zenml-io/kitaru/issues) — report bugs, request features - [Roadmap](https://www.zenml.io/roadmap) — see what's coming next - [Docs](https://docs.zenml.io/kitaru) — guides and reference ## 📄 License [Apache 2.0](LICENSE) <img referrerpolicy="no-referrer-when-downgrade" src="https://static.scarf.sh/a.png?x-pxid=633f1c0b-9a82-47af-8a6c-251a150bcc16" alt="" />

AI Agents ML Frameworks
183 Github Stars
mcp-zenml
Open Source

mcp-zenml

# MCP Server for ZenML [![Trust Score](https://archestra.ai/mcp-catalog/api/badge/quality/zenml-io/mcp-zenml)](https://archestra.ai/mcp-catalog/zenml-io__mcp-zenml) This project implements a [Model Context Protocol (MCP)](https://modelcontextprotocol.io/introduction) server for interacting with the [ZenML](https://zenml.io) API. ![ZenML MCP Server](assets/mcp-zenml.png) ## What is MCP? The Model Context Protocol (MCP) is an open protocol that standardizes how applications provide context to Large Language Models (LLMs). It acts like a "USB-C port for AI applications" - providing a standardized way to connect AI models to different data sources and tools. MCP follows a client-server architecture where: - **MCP Hosts**: Programs like Claude Desktop or IDEs that want to access data through MCP - **MCP Clients**: Protocol clients that maintain 1:1 connections with servers - **MCP Servers**: Lightweight programs that expose specific capabilities through the standardized protocol - **Local Data Sources**: Your computer's files, databases, and services that MCP servers can securely access - **Remote Services**: External systems available over the internet that MCP servers can connect to ## What is ZenML? ZenML is an open-source platform for building and managing ML and AI pipelines. It provides a unified interface for managing data, models, and experiments. For more information, see the [ZenML website](https://zenml.io) and [our documentation](https://docs.zenml.io). ## Features The server provides MCP tools to access core read functionality from the ZenML server, providing a way to get live information about: ### Core Entities - **Users** - user accounts and permissions - **Stacks** - infrastructure configurations - **Stack Components** - individual stack building blocks - **Flavors** - available component types - **Service Connectors** - cloud authentication ### Pipeline Execution - **Pipelines** - pipeline definitions - **Pipeline Runs** - execution history and status - **Pipeline Steps** - individual step details, code, and logs - **Schedules** - automated run schedules - **Artifacts** - metadata about data artifacts (not the data itself) ### Deployment & Serving - **Snapshots** - frozen pipeline configurations (the "what to run/serve" artifact) - **Deployments** - runtime serving instances with status, URL, and logs - **Services** - model serving endpoints ### Organization & Discovery - **Projects** - organizational containers for ZenML resources - **Tags** - cross-cutting metadata labels for discovery - **Builds** - pipeline build artifacts with image and code info ### Models - **Models** - ML model registry entries - **Model Versions** - versioned model artifacts ### Deprecated (migration recommended) - ~~Pipeline run templates~~ → use **Snapshots** instead (see [Migration Guide](#migration-run-templates--snapshots)) The server also allows you to **trigger new pipeline runs** using snapshots (preferred) or run templates (deprecated). *Note: We're continuously improving this integration based on user feedback. Please join our [Slack community](https://zenml.io/slack) to share your experience and help us make it even better!* ## Available Tools The MCP server exposes the following tools, grouped by category: ### Pipeline Execution (New in v1.2) | Tool | Description | |------|-------------| | `get_snapshot` | Get a frozen pipeline configuration by name/ID | | `list_snapshots` | List snapshots with filters (runnable, deployable, deployed, tag) | | `get_deployment` | Get a deployment's runtime status and URL | | `list_deployments` | List deployments with filters (status, pipeline, tag) | | `get_deployment_logs` | Get bounded logs from a deployment (tail=100 default, max 1000) | | `trigger_pipeline` | Trigger a pipeline run (prefer `snapshot_name_or_id` parameter) | ### Organization (New in v1.2) | Tool | Description | |------|-------------| | `get_active_project` | Get the currently active project | | `get_project` | Get project details by name/ID | | `list_projects` | List all projects | | `get_tag` | Get tag details (exclusive, colors) | | `list_tags` | List tags with filters (resource_type) | | `get_build` | Get build details (image, code embedding) | | `list_builds` | List builds with filters (is_local, contains_code) | ### Core Entities | Tool | Description | |------|-------------| | `get_user`, `list_users`, `get_active_user` | User management | | `get_stack`, `list_stacks` | Stack configurations | | `get_stack_component`, `list_stack_components` | Stack components | | `get_flavor`, `list_flavors` | Component flavors | | `get_service_connector`, `list_service_connectors` | Cloud connectors | | `get_pipeline_run`, `list_pipeline_runs` | Pipeline runs | | `get_run_step`, `list_run_steps` | Step details | | `get_step_logs`, `get_step_code` | Step logs and source code | | `list_pipelines`, `get_pipeline_details` | Pipeline definitions | | `get_schedule`, `list_schedules` | Schedules | | `list_artifacts` | Artifact metadata | | `list_secrets` | Secret names (not values) | | `get_service`, `list_services` | Model services | | `get_model`, `list_models` | Model registry | | `get_model_version`, `list_model_versions` | Model versions | ### Interactive Apps (Experimental) | Tool | Description | |------|-------------| | `open_pipeline_run_dashboard` | Open interactive pipeline runs dashboard (MCP App) | | `open_run_activity_chart` | Open 30-day run activity bar chart (MCP App) | ### Analysis Tools | Tool | Description | |------|-------------| | `stack_components_analysis` | Analyze stack component usage | | `recent_runs_analysis` | Analyze recent pipeline runs | | `most_recent_runs` | Get N most recent runs | ### Diagnostics | Tool | Description | |------|-------------| | `diagnose_zenml_setup` | Diagnose server setup (env vars, SDK, connectivity, auth). Works even when misconfigured. | ### Deprecated Tools | Tool | Replacement | |------|-------------| | `get_run_template` | Use `get_snapshot` instead | | `list_run_templates` | Use `list_snapshots` instead | | `trigger_pipeline(template_id=...)` | Use `trigger_pipeline(snapshot_name_or_id=...)` | ## Migration: Run Templates → Snapshots **Why the change?** ZenML evolved its "runnable pipeline artifact" concept. Run Templates are now deprecated wrappers that internally just point to Snapshots. New code should use Snapshots directly. ### Quick Migration Guide | Old Pattern (Templates) | New Pattern (Snapshots) | |------------------------|------------------------| | `list_run_templates()` | `list_snapshots(runnable=True, named_only=True)` | | `get_run_template(name)` | `get_snapshot(name, include_config_schema=True)` | | `trigger_pipeline(template_id=...)` | `trigger_pipeline(snapshot_name_or_id=...)` | ### Example Workflow (Snapshot-First) ``` 1. Discover project context: → get_active_project() 2. Find runnable snapshots: → list_snapshots(runnable=True, named_only=True) 3. Trigger a run: → trigger_pipeline(pipeline_name_or_id="my-pipeline", snapshot_name_or_id="my-snapshot") 4. Check deployments: → list_deployments(status="running") → get_deployment_logs(name_id_or_prefix="my-deployment", tail=100) ``` **Note:** `get_deployment_logs` returns bounded output (default 100 lines, max 1000, capped at 100KB) and requires the appropriate deployer integration to be installed. ## Quick Setup via Dashboard (Recommended) The easiest way to set up the ZenML MCP Server is through your ZenML dashboard's **MCP Settings page**. ![MCP Settings Page](assets/mcp-settings-page.gif) Navigate to **Settings → MCP** in your ZenML dashboard to get: - **Pre-configured snippets** for your specific server URL and credentials - **One-click installation** via deep links for supported IDEs - **Copy-paste configurations** for VS Code, Claude Desktop, Cursor, Claude Code, OpenAI Codex, and more - **Docker and uv options** based on your preference ### ZenML Pro Users The MCP Settings page lets you generate a Personal Access Token (PAT) with a single click. The token is automatically included in all generated configuration snippets. ### ZenML OSS Users 1. First create a service account token via **Settings → Service Accounts** 2. Paste the token into the MCP Settings page 3. Copy the generated configuration for your IDE --- **Prefer manual setup?** See the detailed instructions below. ## MCP Apps (Experimental) > **What are MCP Apps?** MCP Apps are interactive HTML UIs that MCP servers can > serve directly into AI clients. They render in sandboxed iframes and can call > server tools bidirectionally. See the [official announcement](https://blog.modelcontextprotocol.io/posts/2026-01-26-mcp-apps/) > for full details. ![Run Activity Chart](assets/apps-example-2.png) This server includes two experimental MCP Apps: | App | Tool | Description | |-----|------|-------------| | **Pipeline Runs Dashboard** | `open_pipeline_run_dashboard` | Interactive table of recent pipeline runs with status, step details, and logs | | **Run Activity Chart** | `open_run_activity_chart` | Bar chart of pipeline run activity over the last 30 days with status breakdown | ![Pipeline Runs Dashboard](assets/apps-example-1.png) These apps are included as proof-of-concept examples. We welcome feedback and contributions for more MCP Apps. It is still early days for this new feature so we'll have to see how it evolves. We expect to support it more fully in the future. ### Supported Clients MCP Apps require **Streamable HTTP** transport (not stdio). The following clients currently support MCP Apps: - ✅ **VS Code** (Insiders Edition) - ✅ **Goose** - ✅ **ChatGPT** (launching soon) - ⚠️ **Claude Desktop** -- as of late January 2026, doesn't yet render Apps. - ⚠️ **Claude.ai** (web) — as of late January 2026, doesn't yet render Apps. > **Note:** We were unable to test thoroughly with Claude Desktop or Claude.ai at the time of writing. If you encounter issues, please [report them](https://github.com/zenml-io/mcp-zenml/issues). ### Running MCP Apps with Docker MCP Apps require Streamable HTTP transport and a publicly reachable URL (for cloud-hosted clients like Claude.ai). The simplest setup uses Docker + Cloudflare tunnel: **1. Build and run the Docker container:** ```bash docker build -t mcp-zenml:apps . docker run --rm -d --name mcp-zenml-apps -p 8001:8001 \ -e ZENML_STORE_URL="https://your-zenml-server.example.com" \ -e ZENML_STORE_API_KEY="your-api-key" \ -e ZENML_ACTIVE_PROJECT_ID="your-project-id" \ mcp-zenml:apps --transport streamable-http --host 0.0.0.0 --port 8001 \ --disable-dns-rebinding-protection ``` **2. Start a Cloudflare tunnel (for cloud clients):** ```bash npx cloudflared tunnel --url http://localhost:8001 ``` This prints a public URL like `https://random-words.trycloudflare.com`. **3. Connect your client:** - In Claude Desktop or other clients, add the MCP server with URL: `https://random-words.trycloudflare.com/mcp` e.g.: ```json { "servers": { "ZenML": { "url": "https://USE-YOUR-OWN-URL.trycloudflare.com/mcp", "type": "http" } }, "inputs": [] } ``` - Ask the AI to "open the pipeline runs dashboard" or "show the run activity chart" **Important notes:** - `ZENML_ACTIVE_PROJECT_ID` is required — without it, pipeline run tools will fail with "No project is currently set as active" - The `--disable-dns-rebinding-protection` flag is needed when running behind reverse proxies (cloudflared, ngrok) — it's safe when the proxy handles security - The tunnel URL changes on each restart — update your client integration accordingly ## Testing & Quality Assurance This project includes automated testing to ensure the MCP server remains functional: - **🔄 Automated Smoke Tests**: A comprehensive smoke test runs every 3 days via GitHub Actions - **🚨 Issue Creation**: Failed tests automatically create GitHub issues with detailed debugging information - **⚡ Fast CI**: Uses UV with caching for quick dependency installation and testing - **🧪 Manual Testing**: You can run the smoke test locally using `uv run scripts/test_mcp_server.py server/zenml_server.py` The automated tests verify: - MCP protocol connection and handshake - Server initialization and tool discovery - Basic tool functionality (when ZenML server is accessible) - Resource and prompt enumeration - `diagnose_zenml_setup` returns structured diagnostics even in constrained environments ## Debugging with MCP Inspector For interactive debugging, use the [MCP Inspector](https://modelcontextprotocol.io/docs/tools/inspector) — a web-based tool that lets you test MCP tools in real-time: ```bash # Using .env.local (recommended for development) cp .env.local.example .env.local # Then edit with your credentials source .env.local && npx @modelcontextprotocol/inspector \ -e ZENML_STORE_URL=$ZENML_STORE_URL \ -e ZENML_STORE_API_KEY=$ZENML_STORE_API_KEY \ -- uv run server/zenml_server.py ``` This opens a web UI with your credentials pre-filled — just click **Connect** and use the **Tools** tab to test any tool interactively. See [CLAUDE.md](CLAUDE.md#debugging-with-mcp-inspector) for more detailed debugging instructions. ## Privacy & Analytics The ZenML MCP Server collects anonymous usage analytics to help us improve the product. **We track:** - Which tools are used and how often - Error rates and types (error type only, no messages) - Basic environment info (OS, Python version, and whether running in Docker/CI) - Session duration and tool usage patterns **We do NOT collect:** - Your ZenML server URL or API key - Pipeline names, model names, or any business data - Error messages or stack traces - Any personally identifiable information **To disable analytics:** ```bash # Option 1 export ZENML_MCP_ANALYTICS_ENABLED=false # Option 2 export ZENML_MCP_DISABLE_ANALYTICS=true ``` **For debugging/testing (logs events to stderr instead of sending):** ```bash export ZENML_MCP_ANALYTICS_DEV=true ``` **For Docker users:** You can set `ZENML_MCP_ANALYTICS_ID` (must be a valid UUID) to maintain a consistent anonymous ID across container restarts. If you don't set it and the container filesystem can't persist the analytics ID file, the server falls back to a deterministic anonymous UUID derived from a hash of `ZENML_STORE_URL` (the URL itself is never sent as an event property). **Additional analytics options:** - `ZENML_MCP_ANALYTICS_SHUTDOWN_TIMEOUT_S` — max time (seconds) to flush analytics synchronously during shutdown (default: 1.0) **Note on shutdown tracking:** Shutdown events are sent synchronously with a bounded timeout for best delivery reliability. However, if a container is killed with `SIGKILL` (e.g., `docker kill`), shutdown handlers cannot fire — this is a Docker/OS limitation, not a bug. ### Startup Validation You can enable a lightweight startup diagnostic check: ```bash # Print warnings but start normally uv run server/zenml_server.py --startup-validation warn # Exit non-zero if required setup is missing (useful in Docker/CI) uv run server/zenml_server.py --startup-validation strict ``` You can also set this via environment variable: `ZENML_MCP_STARTUP_VALIDATION=warn`. The `diagnose_zenml_setup` tool is also available as an MCP tool for runtime troubleshooting — it works even when the ZenML SDK is not installed or environment variables are missing. ## Manual Setup ### Prerequisites You will need to have access to a deployed ZenML server. If you don't have one, you can sign up for a free trial at [ZenML Pro](https://cloud.zenml.io) and we'll manage the deployment for you. > **Tip:** Once you have a ZenML server, check out the [MCP Settings page](#quick-setup-via-dashboard-recommended) in your dashboard for the easiest setup experience. > **Compatibility:** This MCP server is tested with and recommended for **ZenML >= 0.93.0**. > If you are running an older ZenML version, please use an [earlier release](https://github.com/zenml-io/mcp-zenml/releases) of this MCP server. You will also (probably) need to have `uv` installed locally. For more information, see the [`uv` documentation](https://docs.astral.sh/uv/getting-started/installation/). We recommend installation via their installer script or via `brew` if using a Mac. (Technically you don't *need* it, but it makes installation and setup easy.) You will also need to clone this repository somewhere locally: ```bash git clone https://github.com/zenml-io/mcp-zenml.git ``` ### Your MCP config file The MCP config file is a JSON file that tells the MCP client how to connect to your MCP server. Different MCP clients will use or specify this differently. Two commonly-used MCP clients are [Claude Desktop](https://claude.ai/download) and [Cursor](https://www.cursor.com/), for which we provide installation instructions below. You will need to specify your ZenML MCP server in the following format: ```json { "mcpServers": { "zenml": { "command": "/usr/local/bin/uv", "args": ["run", "path/to/server/zenml_server.py"], "env": { "LOGLEVEL": "WARNING", "NO_COLOR": "1", "ZENML_LOGGING_COLORS_DISABLED": "true", "ZENML_LOGGING_VERBOSITY": "WARN", "ZENML_ENABLE_RICH_TRACEBACK": "false", "PYTHONUNBUFFERED": "1", "PYTHONIOENCODING": "UTF-8", "ZENML_STORE_URL": "https://your-zenml-server-goes-here.com", "ZENML_STORE_API_KEY": "your-api-key-here" } } } } ``` There are four dummy values that you will need to replace: - the path to your locally installed `uv` (the path listed above is where it would be on a Mac if you installed it via `brew`) - the path to the `zenml_server.py` file (this is the file that will be run when you connect to the MCP server). This file is located inside this repository at the root. You will need to specify the exact full path to this file. - the ZenML server URL (this is the URL of your ZenML server. You can find this in the ZenML Cloud UI). It will look something like `https://d534d987a-zenml.cloudinfra.zenml.io`. - the ZenML server API key (this is the API key for your ZenML server. You can find this in the ZenML Cloud UI or [read these docs](https://docs.zenml.io/how-to/manage-zenml-server/connecting-to-zenml/connect-with-a-service-account) on how to create one. For the purposes of the ZenML MCP server we recommend using a service account.) You are free to change the way you run the MCP server Python file, but using `uv` will probably be the easiest option since it handles the environment and dependency installation for you. ### Installation for use with Claude Desktop > **Quick alternative:** Use the MCP Settings page in your ZenML dashboard (Settings → MCP) to get pre-configured installation instructions and deep links for Claude Desktop. You will need to have the latest version of [Claude Desktop](https://claude.ai/download) installed. You can simply open the Settings menu and drag the `mcp-zenml.mcpb` file from the root of this repository onto the menu and it will guide you through the installation and setup process. You'll need to add your ZenML server URL and API key. Note: MCP bundles (`.mcpb`) replace the older Desktop Extensions (`.dxt`) format; existing `.dxt` files still work in Claude Desktop. #### Optional: Improving ZenML Tool Output Display For a better experience with ZenML tool results, you can configure Claude to display the JSON responses in a more readable format. In Claude Desktop, go to Settings → Profile, and in the "What personal preferences should Claude consider in responses?" section, add something like the following (or use these exact words!): ```markdown When using zenml tools which return JSON strings and you're asked a question, you might want to consider using markdown tables to summarize the results or make them easier to view! ``` This will encourage Claude to format ZenML tool outputs as markdown tables, making the information much easier to read and understand. ### Installation for use with Cursor > **Quick alternative:** The MCP Settings page in your ZenML dashboard (Settings → MCP) can generate the exact `mcp.json` content with your credentials pre-filled. You will need to have [Cursor](https://www.cursor.com/) installed. Cursor works slightly differently to Claude Desktop in that you specify the config file on a per-repository basis. This means that if you want to use the ZenML MCP server in multiple repos, you will need to specify the config file in each of them. To set it up for a single repository, you will need to: - create a `.cursor` folder in the root of your repository - inside it, create a `mcp.json` file with the content above - go into your Cursor settings and click on the ZenML server to 'enable' it. In our experience, sometimes it shows a red error indicator even though it is working. You can try it out by chatting in the Cursor chat window. It will let you know if is able to access the ZenML tools or not. ## Docker Image You can run the server as a Docker container. The process communicates over stdio, so it will wait for an MCP client connection. Pass your ZenML credentials via environment variables. ### Prebuilt Images (Docker Hub) Pull the latest multi-arch image: ```bash docker pull zenmldocker/mcp-zenml:latest ``` Versioned releases are tagged as `X.Y.Z`: ```bash docker pull zenmldocker/mcp-zenml:1.0.8 ``` Run with your ZenML credentials (stdio mode): ```bash docker run -i --rm \ -e ZENML_STORE_URL="https://your-zenml-server.example.com" \ -e ZENML_STORE_API_KEY="your-api-key" \ zenmldocker/mcp-zenml:latest ``` ### Canonical MCP config using Docker ```json { "mcpServers": { "zenml": { "command": "docker", "args": [ "run", "-i", "--rm", "-e", "ZENML_STORE_URL=https://...", "-e", "ZENML_STORE_API_KEY=ZENKEY_...", "-e", "ZENML_ACTIVE_PROJECT_ID=...", "-e", "LOGLEVEL=WARNING", "-e", "NO_COLOR=1", "-e", "ZENML_LOGGING_COLORS_DISABLED=true", "-e", "ZENML_LOGGING_VERBOSITY=WARN", "-e", "ZENML_ENABLE_RICH_TRACEBACK=false", "-e", "PYTHONUNBUFFERED=1", "-e", "PYTHONIOENCODING=UTF-8", "zenmldocker/mcp-zenml:latest" ] } } } ``` ### Build Locally From the repository root: ```bash docker build -t zenmldocker/mcp-zenml:local . ``` Run the locally built image: ```bash docker run -i --rm \ -e ZENML_STORE_URL="https://your-zenml-server.example.com" \ -e ZENML_STORE_API_KEY="your-api-key" \ zenmldocker/mcp-zenml:local ``` ## MCP Bundles (.mcpb) This project uses MCP Bundles (`.mcpb`) — the successor to Anthropic's Desktop Extensions (DXT). MCP Bundles package an entire MCP server (including dependencies) into a single file with user-friendly configuration. Note on rename: MCP Bundles replace the older `.dxt` format. Claude Desktop remains backward‑compatible with existing `.dxt` files, but we now ship `mcp-zenml.mcpb` and recommend using it going forward. The `mcp-zenml.mcpb` file in the repository root contains everything needed to run the ZenML MCP server, eliminating the need for complex manual installation steps. This makes powerful ZenML integrations accessible to users without requiring technical setup expertise. When you drag and drop the `.mcpb` file into Claude Desktop's settings, it automatically handles: - Runtime dependency installation - Secure configuration management - Cross-platform compatibility - User-friendly setup process For more information, see Anthropic's announcement of Desktop Extensions (DXT) and related MCP bundle packaging guidance in their documentation: https://www.anthropic.com/engineering/desktop-extensions ## Published on the Anthropic MCP Registry This MCP server is published to the official Anthropic MCP Registry and is discoverable by compatible hosts. On each **tagged release**, our CI updates the registry entry via the registry’s `mcp-publisher` CLI using GitHub OIDC, so you can install or discover the **ZenML MCP Server** directly wherever the registry is supported (e.g., Claude Desktop’s Extensions catalog). - **Always up to date:** the registry entry is refreshed with every release from the tagged commit’s `manifest.json` and `server.json`. - **Alternate install paths:** you can still install locally via the packaged `.mcpb` bundle (see above) or run the Docker image. Learn more about the registry here: - Anthropic MCP Registry (community repo): https://github.com/modelcontextprotocol/registry

AI Agents API Tools
45 Github Stars