Skip to content

Commit 63b8d3a

Browse files
committed
fix readme
1 parent 6cf9740 commit 63b8d3a

File tree

2 files changed

+121
-56
lines changed

2 files changed

+121
-56
lines changed

README.md

Lines changed: 103 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -1,72 +1,101 @@
11
# Istio MCP Server
22

3-
A Model Context Protocol (MCP) server for Istio service mesh operations.
3+
A **Model Context Protocol (MCP) server** that provides AI assistants and developers with **read-only access** to Istio service mesh resources in Kubernetes clusters. This server enables intelligent querying of Istio configurations, Virtual Services, Destination Rules, Gateways, and Envoy proxy configurations through a safe, non-destructive interface.
44

5-
## Overview
5+
## 🚀 Overview
66

7-
This project provides an MCP server that allows AI assistants and other MCP clients to interact with Istio service mesh resources in Kubernetes clusters. **This server is designed for read-only operations only - no destructive commands are allowed.** It provides comprehensive tools for querying Istio resources including Virtual Services, Destination Rules, Gateways, and proxy configurations without any risk of modifying or deleting resources.
7+
The Istio MCP Server bridges the gap between AI assistants and Istio service mesh operations by implementing the Model Context Protocol. It provides comprehensive tools for querying Istio resources including Virtual Services, Destination Rules, Gateways, and proxy configurations **without any risk of modifying or deleting resources**.
88

9-
## Features
9+
**Key Benefits:**
10+
- 🔒 **100% Read-Only Operations** - No destructive commands allowed
11+
- 🤖 **AI Assistant Friendly** - Designed for MCP protocol integration
12+
- 🔍 **Comprehensive Istio Access** - Covers all major Istio resource types
13+
- 🛡️ **Safe by Design** - Zero risk of accidental resource modifications
14+
- 🌐 **Multi-Protocol Support** - STDIO, SSE, and HTTP protocols
15+
- 📊 **Rich Observability** - Access to Envoy proxy configurations and telemetry
1016

11-
- **Virtual Services**: Query Istio Virtual Services (read-only)
12-
- **Destination Rules**: Query Istio Destination Rules (read-only)
13-
- **Gateways**: Query Istio Gateways (read-only)
14-
- **Service Entries**: Query Istio Service Entries (read-only)
15-
- **Security Policies**: Query Authorization Policies and Peer Authentications (read-only)
16-
- **Proxy Configuration**: Access Envoy proxy configurations including clusters, listeners, routes, and endpoints (read-only)
17-
- **Configuration Management**: Get comprehensive Istio configuration summaries (read-only)
18-
- **Multiple Protocols**: Support for STDIO, SSE, and HTTP protocols
19-
- **Safe Operations**: All operations are read-only with no destructive commands allowed
17+
## ✨ Features
2018

21-
## Quick Start
19+
### 🔧 Core Istio Resources (Read-Only)
20+
- **Virtual Services**: Query Istio Virtual Services and routing rules
21+
- **Destination Rules**: Query Istio Destination Rules and traffic policies
22+
- **Gateways**: Query Istio Gateways and ingress configurations
23+
- **Service Entries**: Query Istio Service Entries and external services
24+
- **Envoy Filters**: Query Istio Envoy Filters and custom configurations
25+
26+
### 🛡️ Security & Policies (Read-Only)
27+
- **Authorization Policies**: Query Istio Authorization Policies
28+
- **Peer Authentications**: Query Istio Peer Authentication policies
29+
- **Security Configurations**: Access Istio security settings
30+
31+
### 📊 Observability & Telemetry (Read-Only)
32+
- **Telemetry Configurations**: Query Istio telemetry settings
33+
- **Proxy Status**: Get Envoy proxy health and status information
34+
- **Configuration Summaries**: Comprehensive Istio configuration overviews
35+
36+
### 🌐 Envoy Proxy Access (Read-Only)
37+
- **Cluster Configuration**: Access Envoy cluster configurations
38+
- **Listener Configuration**: Access Envoy listener configurations
39+
- **Route Configuration**: Access Envoy route configurations
40+
- **Endpoint Configuration**: Access Envoy endpoint configurations
41+
- **Bootstrap Configuration**: Access Envoy bootstrap configurations
42+
- **Full Configuration Dumps**: Complete Envoy configuration snapshots
43+
44+
## 🚀 Quick Start
2245

2346
### Prerequisites
2447

25-
- Go 1.24 or later
26-
- Access to a Kubernetes cluster with Istio installed
27-
- kubectl configured with appropriate permissions
28-
- istioctl installed (for proxy configuration features)
48+
- **Go 1.24+** for building from source
49+
- **Kubernetes cluster** with Istio installed
50+
- **kubectl** configured with appropriate permissions
51+
- **istioctl** installed (for advanced proxy configuration features)
2952

30-
### Build and Run
53+
### Installation
3154

3255
```bash
33-
# Initialize dependencies
34-
make deps
56+
# Install via npm (recommended)
57+
npm install -g istio-mcp-server
3558

36-
# Build the server
59+
# Or build from source
60+
git clone https://github.com/krutsko/istio-mcp-server.git
61+
cd istio-mcp-server
3762
make build
63+
```
3864

39-
# Run the server (STDIO mode)
40-
make run
65+
### Basic Usage
4166

42-
# Or run with specific options
67+
```bash
68+
# Run in STDIO mode (for MCP clients)
4369
./bin/istio-mcp-server --kubeconfig ~/.kube/config
4470

4571
# Run SSE server on port 8080
4672
./bin/istio-mcp-server --sse-port 8080
4773

48-
# Show help
74+
# Run HTTP server on port 8080
75+
./bin/istio-mcp-server --http-port 8080
76+
77+
# Show all available options
4978
./bin/istio-mcp-server --help
5079
```
5180

52-
### Available Tools
81+
## 🛠️ Available Tools
5382

54-
#### Networking Resources
83+
### 🌐 Networking Resources
5584
- `get-virtual-services` - List Virtual Services in a namespace
5685
- `get-destination-rules` - List Destination Rules in a namespace
5786
- `get-gateways` - List Gateways in a namespace
5887
- `get-service-entries` - List Service Entries in a namespace
5988

60-
#### Security Resources
89+
### 🛡️ Security Resources
6190
- `get-authorization-policies` - List Authorization Policies in a namespace
6291
- `get-peer-authentications` - List Peer Authentications in a namespace
6392

64-
#### Configuration Resources
93+
### ⚙️ Configuration Resources
6594
- `get-envoy-filters` - List Envoy Filters in a namespace
6695
- `get-telemetry` - List Telemetry configurations in a namespace
6796
- `get-istio-config` - Get comprehensive Istio configuration summary
6897

69-
#### Proxy Configuration
98+
### 🔍 Proxy Configuration
7099
- `get-proxy-clusters` - Get Envoy cluster configuration from a pod
71100
- `get-proxy-listeners` - Get Envoy listener configuration from a pod
72101
- `get-proxy-routes` - Get Envoy route configuration from a pod
@@ -75,23 +104,41 @@ make run
75104
- `get-proxy-config-dump` - Get full Envoy configuration dump from a pod
76105
- `get-proxy-status` - Get proxy status information
77106

78-
## Configuration
107+
## ⚙️ Configuration
79108

80109
The server supports various configuration options:
81110

82-
- `--kubeconfig`: Path to kubeconfig file
83-
- `--sse-port`: Start SSE server on specified port
84-
- `--http-port`: Start HTTP server on specified port
85-
- `--log-level`: Set logging level (0-9)
86-
- `--profile`: MCP profile to use (default: "full")
111+
| Option | Description | Default |
112+
|--------|-------------|---------|
113+
| `--kubeconfig` | Path to kubeconfig file | `~/.kube/config` |
114+
| `--sse-port` | Start SSE server on specified port | Disabled |
115+
| `--http-port` | Start HTTP server on specified port | Disabled |
116+
| `--log-level` | Set logging level (0-9) | `0` |
117+
| `--profile` | MCP profile to use | `"full"` |
118+
119+
**🔒 Security Note**: This server operates in read-only mode by design. All operations are safe and non-destructive.
87120

88-
**Note**: This server operates in read-only mode by design. All operations are safe and non-destructive.
121+
## 🏗️ Architecture
89122

90-
## Development
123+
The Istio MCP Server follows clean architecture principles with clear separation of concerns:
124+
125+
```
126+
istio-mcp-server/
127+
├── cmd/ # Application entrypoints and CLI commands
128+
├── pkg/
129+
│ ├── istio-mcp-server/ # Core application logic and CLI handling
130+
│ ├── istio/ # Istio client and resource management
131+
│ ├── mcp/ # MCP server implementation and tool definitions
132+
│ ├── version/ # Version information and build metadata
133+
│ └── output/ # Output formatting and display utilities
134+
└── npm/ # NPM package distribution
135+
```
136+
137+
## 🧪 Development
91138

92139
```bash
93140
# Install development dependencies
94-
make dev-deps
141+
make deps
95142

96143
# Format code
97144
make fmt
@@ -104,22 +151,27 @@ make test
104151

105152
# Clean build artifacts
106153
make clean
154+
155+
# Build for all platforms
156+
make build-all-platforms
157+
158+
# Test release process
159+
make test-release
107160
```
108161

109-
## Architecture
162+
## 🔗 Related Projects
163+
164+
- **[Model Context Protocol](https://modelcontextprotocol.io/)** - The protocol specification
165+
- **[Istio](https://istio.io/)** - Service mesh platform
166+
- **[Kubernetes](https://kubernetes.io/)** - Container orchestration platform
167+
- **[Envoy Proxy](https://www.envoyproxy.io/)** - High-performance proxy
110168

111-
The Istio MCP Server is built with a clean, modular architecture:
169+
## 📄 License
112170

113-
- **cmd/**: Application entrypoints and CLI commands
114-
- **pkg/istio-mcp-server/**: Core application logic and CLI handling
115-
- **pkg/istio/**: Istio client and resource management
116-
- **pkg/mcp/**: MCP server implementation and tool definitions
117-
- **pkg/version/**: Version information
118-
- **pkg/output/**: Output formatting utilities
171+
This project is licensed under the **MIT License** - see the [LICENSE](LICENSE) file for details.
119172

120-
The server follows Go best practices with proper error handling, context propagation, and clean separation of concerns.
173+
## 🤝 Contributing
121174

122-
## License
175+
Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.
123176

124-
This project is licensed under the MIT License.
125177

npm/istio-mcp-server/package.json

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "istio-mcp-server",
33
"version": "0.0.0",
4-
"description": "Model Context Protocol (MCP) server for Istio",
4+
"description": "Model Context Protocol (MCP) server for Istio service mesh - provides AI assistants with read-only access to Istio resources, Virtual Services, Destination Rules, Gateways, and Envoy proxy configurations in Kubernetes clusters",
55
"main": "./bin/index.js",
66
"bin": {
77
"istio-mcp-server": "bin/index.js"
@@ -20,12 +20,25 @@
2020
},
2121
"keywords": [
2222
"mcp",
23+
"model-context-protocol",
2324
"istio",
2425
"kubernetes",
25-
"model context protocol",
26-
"model",
27-
"context",
28-
"protocol"
26+
"service-mesh",
27+
"envoy",
28+
"proxy",
29+
"virtual-service",
30+
"destination-rule",
31+
"gateway",
32+
"authorization-policy",
33+
"telemetry",
34+
"ai-assistant",
35+
"cli-tool",
36+
"read-only",
37+
"safe-operations",
38+
"microservices",
39+
"networking",
40+
"security",
41+
"observability"
2942
],
3043
"author": {
3144
"name": "Sergey Krutsko",

0 commit comments

Comments
 (0)