Skip to content

Commit 9b9525f

Browse files
Merge branch 'docker:main' into feat/aks-mcp
2 parents a6e6dc0 + 17fdb6e commit 9b9525f

File tree

15 files changed

+1018
-29
lines changed

15 files changed

+1018
-29
lines changed

.github/workflows/ci.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ jobs:
2525
shell: bash
2626
run: |
2727
git fetch origin ${{ github.event.pull_request.base.ref }}
28-
git diff --name-only --diff-filter=AM origin/${{ github.event.pull_request.base.ref }} HEAD | grep "^servers/" > changed-servers.txt || true
28+
git diff --name-only --diff-filter=AM origin/${{ github.event.pull_request.base.ref }}...HEAD | grep "^servers/" > changed-servers.txt || true
2929
3030
- name: Build and catalog changed servers
3131
shell: bash

cmd/build/main.go

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -84,14 +84,14 @@ func run(ctx context.Context, name string, listTools bool, pullCommunity bool) e
8484

8585
func buildDockerEnv(additionalEnv ...string) []string {
8686
env := []string{"PATH=" + os.Getenv("PATH")}
87-
87+
8888
// On Windows, Docker also needs ProgramW6432
8989
// See https://github.com/docker/mcp-registry/issues/79 for more details
9090
programW6432 := os.Getenv("ProgramW6432")
9191
if runtime.GOOS == "windows" && programW6432 != "" {
9292
env = append(env, "ProgramW6432="+programW6432)
9393
}
94-
94+
9595
return append(env, additionalEnv...)
9696
}
9797

@@ -127,11 +127,21 @@ func buildMcpImage(ctx context.Context, server servers.Server) error {
127127
var cmd *exec.Cmd
128128
token := os.Getenv("GITHUB_TOKEN")
129129

130+
buildArgs := []string{
131+
"-f", server.GetDockerfile(), "-t", "check", "-t", server.Image, "--label", "org.opencontainers.image.revision=" + sha,
132+
}
133+
134+
if server.Source.BuildTarget != "" {
135+
buildArgs = append(buildArgs, "--target", server.Source.BuildTarget)
136+
}
137+
138+
buildArgs = append(buildArgs, gitURL)
139+
130140
if token != "" {
131-
cmd = exec.CommandContext(ctx, "docker", "buildx", "build", "--secret", "id=GIT_AUTH_TOKEN", "-f", server.GetDockerfile(), "-t", "check", "-t", server.Image, "--label", "org.opencontainers.image.revision="+sha, gitURL)
141+
cmd = exec.CommandContext(ctx, "docker", append([]string{"buildx", "build", "--secret", "id=GIT_AUTH_TOKEN"}, buildArgs...)...)
132142
cmd.Env = buildDockerEnv("GIT_AUTH_TOKEN=" + token)
133143
} else {
134-
cmd = exec.CommandContext(ctx, "docker", "buildx", "build", "-f", server.GetDockerfile(), "-t", "check", "-t", server.Image, "--label", "org.opencontainers.image.revision="+sha, gitURL)
144+
cmd = exec.CommandContext(ctx, "docker", append([]string{"buildx", "build"}, buildArgs...)...)
135145
cmd.Env = buildDockerEnv()
136146
}
137147

pkg/servers/types.go

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -79,11 +79,12 @@ type About struct {
7979
}
8080

8181
type Source struct {
82-
Project string `yaml:"project,omitempty" json:"project,omitempty"`
83-
Upstream string `yaml:"upstream,omitempty" json:"upstream,omitempty"`
84-
Branch string `yaml:"branch,omitempty" json:"branch,omitempty"`
85-
Directory string `yaml:"directory,omitempty" json:"directory,omitempty"`
86-
Dockerfile string `yaml:"dockerfile,omitempty" json:"dockerfile,omitempty"`
82+
Project string `yaml:"project,omitempty" json:"project,omitempty"`
83+
Upstream string `yaml:"upstream,omitempty" json:"upstream,omitempty"`
84+
Branch string `yaml:"branch,omitempty" json:"branch,omitempty"`
85+
Directory string `yaml:"directory,omitempty" json:"directory,omitempty"`
86+
Dockerfile string `yaml:"dockerfile,omitempty" json:"dockerfile,omitempty"`
87+
BuildTarget string `yaml:"buildTarget,omitempty" json:"buildTarget,omitempty"`
8788
}
8889

8990
type Run struct {

servers/brave/server.yaml

Lines changed: 2 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -20,20 +20,5 @@ config:
2020
example: YOUR_API_KEY_HERE
2121
env:
2222
- name: BRAVE_MCP_TRANSPORT
23-
example: stdio
24-
value: '{{brave.mcp_transport}}'
25-
- name: BRAVE_MCP_PORT
26-
example: "8080"
27-
value: '{{brave.mcp_port}}'
28-
- name: BRAVE_MCP_HOST
29-
example: 0.0.0.0
30-
value: '{{brave.mcp_host}}'
31-
parameters:
32-
type: object
33-
properties:
34-
mcp_transport:
35-
type: string
36-
mcp_port:
37-
type: string
38-
mcp_host:
39-
type: string
23+
example: "stdio"
24+
value: "stdio"

servers/cloud-run-mcp/server.yaml

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
name: cloud-run-mcp
2+
image: mcp/cloud-run-mcp
3+
type: server
4+
meta:
5+
category: devops
6+
tags:
7+
- devops
8+
about:
9+
title: Cloud Run MCP
10+
description: MCP server to deploy apps to Cloud Run
11+
icon: https://avatars.githubusercontent.com/u/2810941?v=4
12+
source:
13+
project: https://github.com/GoogleCloudPlatform/cloud-run-mcp
14+
config:
15+
description: Configure the connection to Google Cloud Run
16+
env:
17+
- name: GOOGLE_APPLICATION_CREDENTIALS
18+
value: '/app/.config/gcloud/application_default_credentials.json'
19+
example: '/Users/slim/.config/gcloud/application_default-credentials.json'
20+
parameters:
21+
type: object
22+
properties:
23+
credentials_path:
24+
type: string
25+
description: path to application-default credentials (eg $HOME/.config/gcloud/application_default_credentials.json )
26+
run:
27+
volumes:
28+
- '{{cloud-run-mcp.credentials_path}}:/app/.config/gcloud/application_default_credentials.json'
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
name: dynatrace-mcp-server
2+
image: mcp/dynatrace-mcp-server
3+
type: server
4+
meta:
5+
category: monitoring
6+
tags:
7+
- Dynatrace
8+
- Observability
9+
- Monitoring
10+
about:
11+
title: Dynatrace MCP Server
12+
description: This MCP Server allows interaction with the Dynatrace observability platform, brining real-time observability data directly into your development workflow.
13+
icon: https://avatars.githubusercontent.com/u/58178984?s=200&v=4
14+
source:
15+
project: https://github.com/dynatrace-oss/dynatrace-mcp
16+
branch: main
17+
config:
18+
description: Configure the connection to Dynatrace
19+
secrets:
20+
- name: dynatrace-mcp-server.oauth_client_id
21+
env: OAUTH_CLIENT_ID
22+
example: dt0s02.SAMPLE
23+
- name: dynatrace-mcp-server.oauth_client_secret
24+
env: OAUTH_CLIENT_SECRET
25+
example: dt0s02.SAMPLE.abcd1234
26+
env:
27+
- name: DT_ENVIRONMENT
28+
example: https://abc12345.apps.dynatrace.com
29+
value: '{{dynatrace-mcp-server.url}}'
30+
parameters:
31+
type: object
32+
properties:
33+
url:
34+
type: string
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
name: hostinger-mcp-server
2+
image: mcp/api-mcp-server
3+
type: server
4+
meta:
5+
category: devops
6+
tags:
7+
- devops
8+
about:
9+
title: Hostinger API MCP Server
10+
description: Interact with Hostinger services over the Hostinger API.
11+
icon: https://avatars.githubusercontent.com/u/2630767?v=4
12+
source:
13+
project: https://github.com/hostinger/api-mcp-server
14+
config:
15+
description: Configure the connection to Hostinger API MCP Server
16+
secrets:
17+
- name: hostinger-mcp-server.api_token
18+
env: APITOKEN
19+
example: 0ASvFDoYoloTOoLd6fSRKUx9ihuoejCVbTT6xpmob7adce6d
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
name: hoverfly-mcp-server
2+
image: kapish88/hoverfly-mcp-server
3+
type: server
4+
meta:
5+
category: productivity
6+
tags:
7+
- ai
8+
- service-virtualization
9+
- http-mocking
10+
- devtools
11+
about:
12+
title: Hoverfly MCP Server
13+
icon: https://raw.githubusercontent.com/kapishmalik/hoverfly-mcp-server/main/HoverflyMCPServerDocker.png
14+
description: A Model Context Protocol (MCP) server that exposes Hoverfly as a programmable tool for AI assistants like Cursor, Claude, GitHub Copilot, and others supporting MCP. It enables dynamic mocking of third-party APIs to unblock development, automate testing, and simulate unavailable services during integration.
15+
source:
16+
project: https://github.com/kapishmalik/hoverfly-mcp-server
17+
run:
18+
volumes:
19+
- '{{hoverfly-mcp-server.data}}:/opt/hoverfly-mcp/simulation-data'
20+
config:
21+
description: The MCP server is allowed to access this path for storing simulation files
22+
parameters:
23+
type: object
24+
properties:
25+
data:
26+
type: string
27+
default:
28+
$HOME/data
29+
required:
30+
- data

servers/inspektor-gadget/server.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@ name: inspektor-gadget
22
image: mcp/inspektor-gadget
33
type: server
44
meta:
5-
category: devops
5+
category: monitoring
66
tags:
77
- inspektor-gadget
88
- kubernetes
9-
- devops
9+
- monitoring
1010
- ebpf
1111
about:
1212
title: Inspektor Gadget

0 commit comments

Comments
 (0)