chore: import upstream snapshot with attribution
govulncheck / govulncheck (push) Has been cancelled
Lint / golangci-lint (push) Has been cancelled
Run Tests / Unit Tests (push) Has been cancelled
Run Tests / Etcd Integration Tests (push) Has been cancelled
Harness (E2E) / Harnesses (mock LLM) (push) Has been cancelled
Harness (E2E) / Provider harnesses (live LLM conformance) (push) Has been cancelled

This commit is contained in:
wehub-resource-sync
2026-07-13 12:40:33 +08:00
commit e071084ebe
982 changed files with 160368 additions and 0 deletions
+13
View File
@@ -0,0 +1,13 @@
# Multi-stage build for a go-micro service
FROM golang:1.22-alpine AS builder
WORKDIR /app
COPY go.mod go.sum ./
RUN go mod download
COPY . .
RUN CGO_ENABLED=0 go build -o /service .
FROM alpine:3.19
RUN apk --no-cache add ca-certificates
COPY --from=builder /service /service
ENTRYPOINT ["/service"]
+13
View File
@@ -0,0 +1,13 @@
# Standalone MCP gateway
FROM golang:1.22-alpine AS builder
WORKDIR /app
COPY go.mod go.sum ./
RUN go mod download
COPY . .
RUN CGO_ENABLED=0 go build -o /gateway ./cmd/gateway
FROM alpine:3.19
RUN apk --no-cache add ca-certificates
COPY --from=builder /gateway /gateway
ENTRYPOINT ["/gateway"]
+116
View File
@@ -0,0 +1,116 @@
# Docker Compose Deployment Example
Run a go-micro service with MCP gateway, service registry, and distributed tracing in one command.
## Architecture
```
┌─────────┐ discover ┌──────────┐ RPC ┌─────────┐
│ Agent │ ─────────────→ │ MCP │ ──────────→ │ Your │
│ (Claude) │ MCP :3001 │ Gateway │ │ Service │
└─────────┘ └──────────┘ └─────────┘
│ │
▼ ▼
┌──────────┐ ┌──────────┐
│ Consul │ │ Jaeger │
│ Registry │ │ Tracing │
│ :8500 │ │ :16686 │
└──────────┘ └──────────┘
```
## Quick Start
```bash
docker-compose up
```
## Endpoints
| Service | URL |
|---------|-----|
| MCP Tools | http://localhost:3001/mcp/tools |
| Consul UI | http://localhost:8500 |
| Jaeger UI | http://localhost:16686 |
| Service RPC | http://localhost:9090 |
## Test
```bash
# List MCP tools
curl http://localhost:3001/mcp/tools | jq
# Call a tool
curl -X POST http://localhost:3001/mcp/call \
-H 'Content-Type: application/json' \
-d '{"tool": "myservice.Handler.Method", "arguments": {"key": "value"}}'
# View traces in Jaeger
open http://localhost:16686
```
## Connect Claude Code
```bash
# Claude Code can connect to the running MCP gateway
# Add to your Claude Code MCP settings:
```
```json
{
"mcpServers": {
"my-services": {
"url": "http://localhost:3001/mcp"
}
}
}
```
## Customizing
### Add Your Service
Replace the `app` service's build context with your service directory:
```yaml
app:
build:
context: ../path/to/your/service
dockerfile: Dockerfile
```
### Add More Services
```yaml
users:
build: ./users
environment:
MICRO_REGISTRY: consul
MICRO_REGISTRY_ADDRESS: consul:8500
orders:
build: ./orders
environment:
MICRO_REGISTRY: consul
MICRO_REGISTRY_ADDRESS: consul:8500
```
All services register with Consul. The MCP gateway discovers them automatically.
### Add Redis Cache
```yaml
redis:
image: redis:7-alpine
ports:
- "6379:6379"
```
Then set `MICRO_CACHE_ADDRESS=redis:6379` on your service.
### Production Considerations
- Add health checks to each service
- Use named volumes for Consul data persistence
- Configure rate limiting on the MCP gateway
- Set up TLS between services
- Use secrets management for API keys
+65
View File
@@ -0,0 +1,65 @@
# Go Micro + MCP Gateway deployment with Docker Compose
#
# This runs:
# 1. Consul — service registry (discovery)
# 2. App — your go-micro service(s)
# 3. MCP Gateway — standalone MCP gateway connected to Consul
# 4. Jaeger — distributed tracing UI
#
# Usage:
# docker-compose up
#
# Endpoints:
# MCP Tools: http://localhost:3001/mcp/tools
# Consul UI: http://localhost:8500
# Jaeger UI: http://localhost:16686
# Service: http://localhost:9090 (RPC)
services:
# --- Service Registry ---
consul:
image: consul:1.15
ports:
- "8500:8500"
command: agent -server -bootstrap-expect=1 -ui -client=0.0.0.0
# --- Your Go Micro Service ---
app:
build:
context: .
dockerfile: Dockerfile
ports:
- "9090:9090"
environment:
MICRO_REGISTRY: consul
MICRO_REGISTRY_ADDRESS: consul:8500
MICRO_SERVER_ADDRESS: :9090
depends_on:
- consul
restart: unless-stopped
# --- MCP Gateway (standalone) ---
mcp-gateway:
build:
context: .
dockerfile: Dockerfile.gateway
ports:
- "3001:3001"
environment:
MICRO_REGISTRY: consul
MICRO_REGISTRY_ADDRESS: consul:8500
MCP_ADDRESS: :3001
OTEL_EXPORTER_OTLP_ENDPOINT: http://jaeger:4318
depends_on:
- consul
- app
restart: unless-stopped
# --- Tracing ---
jaeger:
image: jaegertracing/all-in-one:1.53
ports:
- "16686:16686" # UI
- "4318:4318" # OTLP HTTP
environment:
COLLECTOR_OTLP_ENABLED: "true"