Contributing to ToolHive
Thank you for your interest in contributing to ToolHive! This page provides an overview of the project's architecture and links to resources for contributing to each component.
Project overview
ToolHive is composed of several independently developed components, each with its own codebase, contributing guide, and development workflow. The components work together to provide a complete platform for running and managing Model Context Protocol (MCP) servers.
All ToolHive components are open source and licensed under the Apache 2.0 license.
Project components
ToolHive CLI, API, and Kubernetes Operator
The core ToolHive repository contains the command-line interface, API server, and Kubernetes operator. These components share a common codebase and provide the runtime environment for deploying and managing MCP servers.
Repository: stacklok/toolhive
Key resources:
ToolHive desktop UI
The ToolHive Desktop UI is a cross-platform application that provides a graphical interface for discovering, installing, and managing MCP servers. It's built with TypeScript and Electron, and runs on macOS, Windows, and Linux.
Repository: stacklok/toolhive-studio
Key resources:
ToolHive Cloud UI
The ToolHive Cloud UI is a web application for visualizing MCP servers running in user infrastructure with easy URL copying for integration with AI agents. Built with Next.js and TypeScript, this is an experimental project that is actively being developed and tested.
Repository: stacklok/toolhive-cloud-ui
Key resources:
Registry server
The Registry Server is an API server that implements the official MCP Registry API. It provides standardized access to MCP servers from multiple backends, including file-based and other API-compliant registries.
Repository: stacklok/toolhive-registry-server
Key resources:
Built-in registry
The built-in registry contains the curated list of MCP servers available in ToolHive. If you want to add a new MCP server to the registry, this is the repository to contribute to.
Repository: stacklok/toolhive-registry
Key resources:
Dockyard
Dockyard is a tool that packages MCP servers into containers. It handles the containerization process, making it easy to run MCP servers in isolated environments.
Repository: stacklok/dockyard
Key resources:
MCP Optimizer
The MCP Optimizer acts as an intelligent intermediary between AI clients and MCP servers. It provides tool discovery, unified access to multiple MCP servers through a single endpoint, and intelligent routing. The optimizer reduces token usage by narrowing down the toolset to only relevant tools for each request.
Repository: StacklokLabs/mcp-optimizer
Key resources:
Documentation website
The documentation website (this site) is built with Docusaurus and contains guides, tutorials, and reference documentation for all ToolHive components.
Repository: stacklok/docs-website
Key resources:
Ways to contribute
We welcome contributions of all kinds, and no contribution is too small. Whether you're fixing a typo, improving documentation, or adding a major feature, your help is appreciated. First-time contributors are especially welcome!
Here are some ways you can contribute to ToolHive:
- Code: Fix bugs, add features, or improve performance in any of the project components.
- Documentation: Write guides, improve existing docs, add examples, or fix typos.
- Testing: Test new features, report bugs, or contribute automated tests.
- Bug triage: Help review and reproduce issues reported by others.
- Examples and tutorials: Create sample projects or write tutorials showing how to use ToolHive.
- MCP servers: Submit new MCP servers to the registry or improve existing ones.
- Community support: Help answer questions in GitHub issues or on Discord.
- Design and UX: Contribute to the UI design or suggest improvements to the user experience.
Getting started
Ready to contribute? Here are some ways to get involved:
-
Explore the codebase: Browse the repositories that interest you and read through the contributing guides to understand the development workflow.
-
Find an issue: Look for issues labeled
good first issueorhelp wantedin the issue trackers. These are great starting points for new contributors. -
Join the community: Connect with other contributors in the Stacklok Discord community. The
#toolhive-developerschannel is dedicated to technical discussions. -
Report bugs: If you find a bug, open an issue in the appropriate repository with a clear description and steps to reproduce.
-
Suggest features: Have an idea for a new feature? Open an issue to discuss it with the maintainers before starting work.
Code of conduct
All contributors are expected to follow the Stacklok Code of Conduct. We're committed to providing a welcoming and inclusive environment for everyone.