Skip to content

Commit 560fd68

Browse files
committed
feat(custom-mcp): add brave, wikipedia, postgres servers; secrets wiring; Taskfile targets
1 parent c17c57e commit 560fd68

File tree

5 files changed

+58
-5
lines changed

5 files changed

+58
-5
lines changed

custom-mcp/.mcp.env

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# Copy this file to .mcp.env and fill in the values you need
2+
# Common MCP servers
3+
GITHUB_TOKEN=
4+
DUCKDUCKGO_APP_NAME=docker-compose-for-agents
5+
6+
# Optional Postgres example (if you enable postgres server)
7+
# POSTGRES_URL=postgres://user:password@host:5432/dbname

custom-mcp/README.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,16 @@ Modify servers
2222
- Edit compose.yaml and add or remove `--servers=...` entries on the mcp-gateway service.
2323
- If a server needs credentials, add them to `.mcp.env` and reference via `--secrets=...` if required.
2424

25+
Included servers & secrets
26+
- duckduckgo: No secret required (optional app name via DUCKDUCKGO_APP_NAME)
27+
- github-official: Requires GITHUB_TOKEN in .mcp.env
28+
- brave: Requires BRAVE_API_KEY in .mcp.env
29+
- wikipedia-mcp: No secret required
30+
- postgres with SQL query tool:
31+
- Create a file named `postgres_url` in this directory containing the DSN, e.g.
32+
postgres://user:password@host:5432/dbname
33+
- This is mounted as a secret named `database-url` and used by the gateway.
34+
2535
Notes
2636
- The example includes a minimal curl-based `mcp-client` container that checks gateway health.
2737
- To integrate with an agent, set its MCP server URL to the gateway endpoint, e.g. `http://mcp-gateway:8811/sse` for SSE transport.

custom-mcp/Taskfile.yaml

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
version: "3"
2+
3+
tasks:
4+
up:
5+
desc: Start custom MCP stack
6+
cmds:
7+
- docker compose up --build
8+
dir: .
9+
10+
down:
11+
desc: Stop and remove containers
12+
cmds:
13+
- docker compose down -v --remove-orphans
14+
dir: .
15+
16+
build:
17+
desc: Build images
18+
cmds:
19+
- docker compose build
20+
dir: .
21+
22+
clean:
23+
desc: Clean everything
24+
cmds:
25+
- docker compose down -v --remove-orphans
26+
- docker builder prune -f
27+
dir: .

custom-mcp/compose.yaml

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,15 +17,20 @@ services:
1717
- --transport=sse
1818
# secrets can be provided multiple times and referenced per server
1919
- --secrets=docker-desktop:/run/secrets/mcp_secret
20+
# For Postgres DSN
21+
- --secrets=/run/secrets/database-url
2022
# Enable the servers you need. Add/remove as desired.
2123
# Built-in servers supported by gateway include e.g. duckduckgo, github-official, postgres
2224
- --servers=duckduckgo
2325
- --servers=github-official
24-
# Example Postgres tool (requires POSTGRES_URL in secrets)
25-
# - --servers=postgres
26-
# - --tools=query
26+
- --servers=brave
27+
- --servers=wikipedia-mcp
28+
# Postgres server and SQL tool (requires database-url secret file)
29+
- --servers=postgres
30+
- --tools=query
2731
secrets:
2832
- mcp_secret
33+
- database-url
2934

3035
# Example model configuration if you want to co-run with Docker Model Runner
3136
# and point an agent to it. Not strictly required for MCP Gateway testing.
@@ -38,3 +43,5 @@ services:
3843
secrets:
3944
mcp_secret:
4045
file: ./.mcp.env
46+
database-url:
47+
file: ./postgres_url

custom-mcp/mcp.env.example

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22
# Common MCP servers
33
GITHUB_TOKEN=
44
DUCKDUCKGO_APP_NAME=docker-compose-for-agents
5+
BRAVE_API_KEY=
56

6-
# Optional Postgres example (if you enable postgres server)
7-
# POSTGRES_URL=postgres://user:password@host:5432/dbname
7+
# Postgres DSN is read from a separate secret file named "postgres_url" in this directory.
8+
# Example content:
9+
# postgres://user:password@host:5432/dbname

0 commit comments

Comments
 (0)