Add HTTP transport + bearer auth + Docker/Compose for self-hosting
Restore the Streamable HTTP transport (kept alongside stdio) guarded by a shared bearer token (MCP_AUTH_TOKEN, constant-time check; /health stays open for probes). Add mcp-server/Dockerfile, root docker-compose.yml and .dockerignore to run it as a container on the Gitea box. README documents hosting + connecting Claude Desktop via mcp-remote. Verified HTTP 401-without/200-with-token locally; npm ci validated for the image build. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
29
docker-compose.yml
Normal file
29
docker-compose.yml
Normal file
@@ -0,0 +1,29 @@
|
||||
# Run the SharePoint Lists MCP server as a service (HTTP transport).
|
||||
# docker compose up -d --build
|
||||
#
|
||||
# Requires mcp-server/.env (git-ignored) with:
|
||||
# SP_TENANT_ID, SP_CLIENT_ID, SP_CLIENT_SECRET, MCP_AUTH_TOKEN
|
||||
# See mcp-server/.env.example.
|
||||
|
||||
services:
|
||||
sharepoint-mcp:
|
||||
build:
|
||||
context: .
|
||||
dockerfile: mcp-server/Dockerfile
|
||||
image: sharepoint-lists-mcp:latest
|
||||
container_name: sharepoint-lists-mcp
|
||||
restart: unless-stopped
|
||||
env_file:
|
||||
- ./mcp-server/.env
|
||||
environment:
|
||||
PORT: "3838"
|
||||
ports:
|
||||
# Exposes on all host interfaces. To restrict to the LAN IP, use
|
||||
# "192.168.101.12:3838:3838". The bearer token guards the endpoint either way.
|
||||
- "3838:3838"
|
||||
healthcheck:
|
||||
test: ["CMD", "wget", "-qO-", "http://localhost:3838/health"]
|
||||
interval: 30s
|
||||
timeout: 5s
|
||||
retries: 3
|
||||
start_period: 10s
|
||||
Reference in New Issue
Block a user