Files
mcp-proxy/docker-compose.yml
Travis Vasceannie e280269150 chore: update docker-compose to make mcp_net attachable
- Changed the mcp_net network configuration from external to attachable to allow services to connect dynamically.
2025-11-26 08:46:42 -05:00

159 lines
5.8 KiB
YAML

networks:
public:
external: true
badge-net:
external: true
mcp_net:
driver: overlay
attachable: true
services:
pieces-mcp:
image: git.baked.rocks/vasceannie/pieces-mcp:latest
deploy:
placement:
constraints:
- node.hostname == wslbox
labels:
- "traefik.enable=true"
- "traefik.http.routers.pieces-mcp.rule=Host(`mcp.box`) && PathPrefix(`/pieces-mcp`)"
- "traefik.http.routers.pieces-mcp.entrypoints=web"
- "traefik.http.services.pieces-mcp.loadbalancer.server.port=8096"
- "traefik.http.middlewares.pieces-mcp-stripprefix.stripprefix.prefixes=/pieces-mcp"
- "traefik.http.routers.pieces-mcp.middlewares=pieces-mcp-stripprefix"
replicas: 1
restart_policy:
condition: any
healthcheck:
test: ["CMD", "sh", "-c", "netstat -tln | grep ':8096 ' || exit 1"]
interval: 30s
timeout: 10s
retries: 3
start_period: 40s
command: >
--named-server pieces-os 'mcp-proxy --transport streamablehttp http://host.docker.internal:39301/model_context_protocol/2025-03-26/mcp'
--port=8096 --host=0.0.0.0 --allow-origin='*'
networks:
- public
- badge-net
- mcp_net
# firecrawl-mcp:
# image: git.baked.rocks/vasceannie/firecrawl-mcp:latest
# deploy:
# placement:
# constraints:
# - node.hostname == wslbox
# labels:
# - "traefik.enable=true"
# - "traefik.http.routers.firecrawl-mcp.rule=Host(`mcp.box`) && PathPrefix(`/firecrawl-mcp`)"
# - "traefik.http.routers.firecrawl-mcp.entrypoints=web"
# - "traefik.http.services.firecrawl-mcp.loadbalancer.server.port=8097"
# - "traefik.http.middlewares.firecrawl-mcp-stripprefix.stripprefix.prefixes=/firecrawl-mcp"
# - "traefik.http.routers.firecrawl-mcp.middlewares=firecrawl-mcp-stripprefix"
# replicas: 1
# restart_policy:
# condition: any
# environment:
# - FIRECRAWL_API_URL=http://crawl.toy
# - FIRECRAWL_API_KEY=dummy-key
# healthcheck:
# test: ["CMD", "sh", "-c", "netstat -tln | grep ':809[6-9]\\|:8100' || exit 1"]
# interval: 30s
# timeout: 10s
# retries: 3
# start_period: 40s
# command: >
# --pass-environment
# --stateless
# --transport streamablehttp
# --port=8097 --host=0.0.0.0
# npx firecrawl-mcp
# networks:
# - traefik
context7-mcp:
image: git.baked.rocks/vasceannie/context7-mcp:latest
deploy:
placement:
constraints:
- node.hostname == wslbox
labels:
- "traefik.enable=true"
- "traefik.http.routers.context7-mcp.rule=Host(`mcp.box`) && PathPrefix(`/context7-mcp`)"
- "traefik.http.routers.context7-mcp.entrypoints=web"
- "traefik.http.services.context7-mcp.loadbalancer.server.port=8098"
- "traefik.http.middlewares.context7-mcp-stripprefix.stripprefix.prefixes=/context7-mcp"
- "traefik.http.routers.context7-mcp.middlewares=context7-mcp-stripprefix"
replicas: 1
restart_policy:
condition: any
healthcheck:
test: ["CMD", "sh", "-c", "netstat -tln | grep ':809[6-9]\\|:8100' || exit 1"]
interval: 30s
timeout: 10s
retries: 3
start_period: 40s
command: >
--named-server context7 'mcp-proxy --stateless --transport streamablehttp --headers CONTEXT7_API_KEY ctx7sk-f6f1b998-88a2-4e78-9d21-433545326e6c https://mcp.context7.com/mcp'
--port=8098 --host=0.0.0.0 --allow-origin='*'
networks:
- public
- badge-net
- mcp_net
# knowledge-graph-mcp:
# image: git.baked.rocks/vasceannie/knowledge-graph-mcp:latest
# deploy:
# placement:
# constraints:
# - node.hostname == wslbox
# labels:
# - "traefik.enable=true"
# - "traefik.http.routers.knowledge-graph-mcp.rule=Host(`mcp.box`) && PathPrefix(`/knowledge-graph-mcp`)"
# - "traefik.http.routers.knowledge-graph-mcp.entrypoints=web"
# - "traefik.http.services.knowledge-graph-mcp.loadbalancer.server.port=8099"
# - "traefik.http.middlewares.knowledge-graph-mcp-stripprefix.stripprefix.prefixes=/knowledge-graph-mcp"
# - "traefik.http.routers.knowledge-graph-mcp.middlewares=knowledge-graph-mcp-stripprefix"
# replicas: 1
# restart_policy:
# condition: any
# healthcheck:
# test: ["CMD", "sh", "-c", "netstat -tln | grep ':809[6-9]\\|:8100' || exit 1"]
# interval: 30s
# timeout: 10s
# retries: 3
# start_period: 40s
# command: >
# --named-server knowledge-graph 'mcp-proxy --transport sse http://host.docker.internal:48000/sse'
# --port=8099 --host=0.0.0.0 --allow-origin='*'
# networks:
# - traefik
xpipe-mcp:
image: git.baked.rocks/vasceannie/xpipe-mcp:latest
deploy:
placement:
constraints:
- node.hostname == wslbox
labels:
- "traefik.enable=true"
- "traefik.http.routers.xpipe-mcp.rule=Host(`mcp.box`) && PathPrefix(`/xpipe-mcp`)"
- "traefik.http.routers.xpipe-mcp.entrypoints=web"
- "traefik.http.services.xpipe-mcp.loadbalancer.server.port=8100"
- "traefik.http.middlewares.xpipe-mcp-stripprefix.stripprefix.prefixes=/xpipe-mcp"
- "traefik.http.routers.xpipe-mcp.middlewares=xpipe-mcp-stripprefix"
replicas: 1
restart_policy:
condition: any
healthcheck:
test: ["CMD", "sh", "-c", "netstat -tln | grep ':809[6-9]\\|:8100' || exit 1"]
interval: 30s
timeout: 10s
retries: 3
start_period: 40s
command: >
--named-server xpipe 'mcp-proxy --transport streamablehttp --headers Authorization "Bearer 27d1c4ca-dfec-4d38-adc1-1e0f4bcbaadc" http://host.docker.internal:21721/mcp'
--port=8100 --host=0.0.0.0 --allow-origin='*'
networks:
- public
- badge-net
- mcp_net