Skip to content

Commit 088992b

Browse files
peterjsam-heilbron
andauthored
update readme (#94)
Signed-off-by: Peter Jausovec <peter.jausovec@solo.io> Signed-off-by: Peter Jausovec <peterj@users.noreply.github.com> Co-authored-by: Sam Heilbron <SamHeilbron@gmail.com>
1 parent 8500ffa commit 088992b

2 files changed

Lines changed: 119 additions & 17 deletions

File tree

README.md

Lines changed: 119 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -21,36 +21,97 @@
2121
<img src="https://img.shields.io/discord/1346225185166065826?style=flat&label=Join%20Discord&color=6D28D9" alt="Discord">
2222
</a>
2323
</div>
24+
<h3>A development platform and control plane for the Model Context Protocol (MCP)</h3>
25+
<p>Build, deploy, and manage MCP servers with a seamless workflow from development to production</p>
2426
</div>
2527

28+
---
2629

27-
# kmcp
28-
29-
**A development platform and control plane for the Model Context Protocol (MCP)**
30+
## Overview
3031

3132
`kmcp` is a comprehensive toolkit for building, deploying, and managing Model Context Protocol (MCP) servers. It provides a command-line interface (CLI) for local development and a Kubernetes controller for production deployments, enabling a seamless transition from development to production.
3233

34+
Whether you're building AI agent tools, deploying production MCP infrastructure, or managing multiple MCP servers at scale, `kmcp` streamlines the entire lifecycle with familiar tooling and cloud-native deployment patterns.
35+
36+
<img src="img/kmcp.png" alt="kmcp architecture" width="800">
37+
38+
## Why kmcp?
39+
40+
Building and deploying MCP servers today involves several challenges:
41+
42+
- **Manual scaffolding**: Setting up project structure, dependencies, and boilerplate code for each new MCP server
43+
- **Inconsistent deployment**: No standardized way to deploy MCP servers to production environments
44+
- **Transport complexity**: Handling different transport protocols (HTTP, WebSocket, SSE) requires custom implementation
45+
- **Kubernetes integration**: Manually creating deployments, services, and configurations for each MCP server
46+
- **Dev-prod parity**: Different setups for local development versus production deployment
47+
48+
`kmcp` solves these problems by providing:
49+
50+
-**Rapid scaffolding** with support for FastMCP (Python) and MCP Go SDK
51+
- 🚀 **One-command deployment** to Kubernetes with pre-configured Transport Adapters
52+
- 🔄 **Consistent workflow** from local development to production
53+
- 🌐 **Built-in transport support** for HTTP, WebSocket, and Server-Sent Events
54+
- ☸️ **Kubernetes-native** using Custom Resource Definitions (CRDs)
55+
- 🔐 **Secrets management** integrated with Kubernetes secrets
56+
57+
## Quick Start
58+
59+
Get started with `kmcp` in under a minute:
60+
61+
```bash
62+
# Install kmcp CLI
63+
curl -fsSL https://raw.githubusercontent.com/kagent-dev/kmcp/refs/heads/main/scripts/get-kmcp.sh | bash
64+
65+
# Create a new MCP server
66+
kmcp init python my-weather-server
67+
68+
# Navigate to your project
69+
cd my-weather-server
70+
71+
# Add a tool
72+
kmcp add-tool get_weather --description "Get current weather for a location"
73+
74+
# Run locally for testing
75+
kmcp run
76+
77+
# Build and deploy to Kubernetes (requires cluster access)
78+
kmcp build
79+
kmcp install # Install controller (one-time setup)
80+
kmcp deploy
81+
```
82+
83+
Your MCP server is now running locally! Edit the generated tool in `src/tools/get_weather.py` to implement your logic.
84+
3385
## Core Concepts
3486

3587
`kmcp` is composed of three primary components that work together to provide a complete MCP server-management solution:
3688

37-
1. **The `kmcp` CLI**: The CLI is your primary tool for local development. It allows you to scaffold new MCP projects, manage tools, build container images, and run your MCP server locally for testing and development.
89+
### 1. The `kmcp` CLI
90+
91+
The CLI is your primary tool for local development. It allows you to scaffold new MCP projects, manage tools, build container images, and run your MCP server locally for testing and development.
92+
93+
### 2. The Kubernetes Controller
94+
95+
The `kmcp` controller runs in your Kubernetes cluster and manages the lifecycle of your MCP server deployments. It uses a Custom Resource Definition (CRD) to define MCP servers as native Kubernetes objects, allowing you to manage them with familiar `kubectl` commands.
3896

39-
2. **The Kubernetes Controller**: The `kmcp` controller runs in your Kubernetes cluster and manages the lifecycle of your MCP server deployments. It uses a Custom Resource Definition (CRD) to define MCP servers as native Kubernetes objects, allowing you to manage them with familiar `kubectl` commands.
97+
### 3. The Transport Adapter
4098

41-
3. **The Transport Adapter**: In a Kubernetes environment, `kmcp` deploys your MCP server behind a dedicated Transport Adapter. `kmcp` acts as a control plane for this adapter, configuring it to provide features such as external traffic routing for your MCP server with support for multiple transport protocols without requiring any changes to your code.
99+
In a Kubernetes environment, `kmcp` deploys your MCP server behind a dedicated Transport Adapter. `kmcp` acts as a control plane for this adapter, configuring it to provide features such as external traffic routing for your MCP server with support for multiple transport protocols without requiring any changes to your code.
42100

43-
## Features (CLI Command Overview)
101+
## Features
44102

45103
The `kmcp` CLI provides a set of commands to manage the entire lifecycle of your MCP server:
46104

47-
- `kmcp init`: Scaffolds a new MCP server project. Supported frameworks include [FastMCP](https://github.com/jlowin/fastmcp) for Python and the [official MCP Go SDK](https://github.com/mark3labs/mcp-go) for Go.
48-
- `kmcp add-tool`: Adds a new tool to your project, automatically handling boilerplate and registration.
49-
- `kmcp run`: Runs the MCP server in a local development environment.
50-
- `kmcp build`: Builds a Docker image for your MCP server.
51-
- `kmcp install`: Installs the `kmcp` controller and CRDs on a Kubernetes cluster.
52-
- `kmcp deploy`: Deploys your MCP server to a Kubernetes cluster, placing it behind a pre-configured Transport Adapter.
53-
- `kmcp secrets`: Manages secrets for your MCP server deployment in Kubernetes.
105+
| Command | Description |
106+
|---------|-------------|
107+
| `kmcp init` | Scaffolds a new MCP server project with FastMCP (Python) or MCP Go SDK |
108+
| `kmcp add-tool` | Adds a new tool to your project with automatic boilerplate and registration |
109+
| `kmcp run` | Runs the MCP server locally for development and testing |
110+
| `kmcp build` | Builds a Docker image for your MCP server |
111+
| `kmcp install` | Installs the `kmcp` controller and CRDs on a Kubernetes cluster (one-time setup) |
112+
| `kmcp deploy` | Deploys your MCP server to Kubernetes behind a pre-configured Transport Adapter |
113+
| `kmcp secrets` | Manages secrets for your MCP server deployment in Kubernetes |
114+
54115

55116
## Architecture
56117

@@ -83,10 +144,29 @@ graph TD
83144
E -- Contains --> I;
84145
```
85146

86-
## Get started
147+
### How It Works
148+
149+
1. **Local Development**: Developers use `kmcp init` to scaffold a new project and `kmcp add-tool` to add tools. The server runs locally with `kmcp run` for rapid iteration.
150+
151+
2. **Build Phase**: `kmcp build` packages your MCP server into a Docker image, handling all dependencies and configuration automatically.
152+
153+
3. **Deployment**: `kmcp deploy` creates a Kubernetes custom resource that the controller watches. The controller then:
154+
- Deploys your MCP server as a pod
155+
- Configures and deploys a Transport Adapter as a sidecar or separate service
156+
- Sets up networking and ingress rules
157+
- Manages secrets and environment variables
87158

88-
- [Quick Start](https://kagent.dev/docs/kmcp/quickstart)
89-
- [Installation Guide](https://kagent.dev/docs/kmcp/deploy/install-controller)
159+
4. **Production Runtime**: The Transport Adapter receives external requests, handles protocol translation, and routes them to your MCP server. The controller continuously monitors and manages the deployment.
160+
161+
## Use Cases
162+
163+
`kmcp` is designed for:
164+
165+
- **AI/ML Engineers**: Building custom tools and integrations for AI agents with rapid iteration and testing
166+
- **Platform Teams**: Managing multiple MCP servers across development, staging, and production environments
167+
- **DevOps Engineers**: Deploying and scaling MCP infrastructure using familiar Kubernetes patterns
168+
- **Enterprise Organizations**: Standardizing MCP server development and deployment across teams
169+
- **Startups**: Quickly prototyping and deploying AI-powered features without infrastructure overhead
90170

91171
## Documentation
92172

@@ -96,6 +176,15 @@ The kmcp documentation is available at [kagent.dev/docs/kmcp](https://kagent.dev
96176

97177
We welcome contributions! Please see our [Contributing Guide](CONTRIBUTING.md) for details.
98178

179+
### Ways to Contribute
180+
181+
- 🐛 Report bugs and issues
182+
- 💡 Suggest new features
183+
- 📖 Improve documentation
184+
- 🔧 Submit pull requests
185+
- ⭐ Star the repository
186+
- 💬 Help others in Discord
187+
99188
Thanks to all contributors!
100189

101190
<a href="https://github.com/kagent-dev/kmcp/graphs/contributors">
@@ -134,3 +223,16 @@ limitations under the License.
134223
- [MCP Documentation](https://modelcontextprotocol.io/)
135224
- [Anthropic's MCP Announcement](https://www.anthropic.com/news/model-context-protocol)
136225
- [FastMCP Python Documentation](https://github.com/jlowin/fastmcp)
226+
- [MCP Go SDK](https://github.com/mark3labs/mcp-go)
227+
228+
---
229+
230+
<div align="center">
231+
<p>Built with ❤️ by the kagent team</p>
232+
<p>
233+
<a href="https://kagent.dev">Website</a> •
234+
<a href="https://kagent.dev/docs/kmcp">Documentation</a> •
235+
<a href="https://discord.gg/Fu3k65f2k3">Discord</a> •
236+
<a href="https://github.com/kagent-dev/kmcp">GitHub</a>
237+
</p>
238+
</div>

img/kmcp.png

71.4 KB
Loading

0 commit comments

Comments
 (0)