Skip to main content
Glama
docker-compose.yml3.75 kB
# ============================================ # Paperlib MCP - Self-contained Docker Compose # ============================================ # 一键启动完整环境(PostgreSQL + MinIO + MCP Server) services: # ========================================== # PostgreSQL with pgvector # ========================================== postgres: image: pgvector/pgvector:pg16 container_name: paperlib-postgres environment: POSTGRES_USER: ${POSTGRES_USER:-paper} POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-paper} POSTGRES_DB: ${POSTGRES_DB:-paperlib} volumes: - ${DATA_DIR:-./data}/postgres:/var/lib/postgresql/data - ./initdb:/docker-entrypoint-initdb.d:ro ports: - "${POSTGRES_PORT:-5432}:5432" healthcheck: test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER:-paper} -d ${POSTGRES_DB:-paperlib}"] interval: 10s timeout: 5s retries: 5 restart: unless-stopped # ========================================== # MinIO Object Storage (S3 Compatible) # ========================================== minio: image: minio/minio:latest container_name: paperlib-minio environment: MINIO_ROOT_USER: ${MINIO_ROOT_USER:-minio} MINIO_ROOT_PASSWORD: ${MINIO_ROOT_PASSWORD:-minio123} command: server /data --console-address ":9001" volumes: - ${DATA_DIR:-./data}/minio:/data ports: - "${MINIO_API_PORT:-9000}:9000" - "${MINIO_CONSOLE_PORT:-9001}:9001" healthcheck: test: ["CMD", "mc", "ready", "local"] interval: 10s timeout: 5s retries: 5 restart: unless-stopped # ========================================== # MinIO Bucket Initialization # ========================================== minio-init: image: minio/mc:latest container_name: paperlib-minio-init depends_on: minio: condition: service_healthy entrypoint: > /bin/sh -c " mc alias set local http://minio:9000 ${MINIO_ROOT_USER:-minio} ${MINIO_ROOT_PASSWORD:-minio123}; mc mb local/${MINIO_BUCKET:-papers} --ignore-existing; exit 0; " # ========================================== # Paperlib MCP Server # ========================================== paperlib-mcp: build: context: . dockerfile: Dockerfile container_name: paperlib-mcp environment: # PostgreSQL POSTGRES_USER: ${POSTGRES_USER:-paper} POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-paper} POSTGRES_DB: ${POSTGRES_DB:-paperlib} POSTGRES_HOST: postgres POSTGRES_PORT: 5432 # MinIO MINIO_ROOT_USER: ${MINIO_ROOT_USER:-minio} MINIO_ROOT_PASSWORD: ${MINIO_ROOT_PASSWORD:-minio123} MINIO_BUCKET: ${MINIO_BUCKET:-papers} S3_ENDPOINT: http://minio:9000 # OpenRouter OPENROUTER_API_KEY: ${OPENROUTER_API_KEY} EMBEDDING_MODEL: ${EMBEDDING_MODEL:-openai/text-embedding-3-small} LLM_MODEL: ${LLM_MODEL:-openai/gpt-4o-mini} depends_on: postgres: condition: service_healthy minio: condition: service_healthy minio-init: condition: service_completed_successfully # MCP Server runs in STDIO mode, typically invoked by client # For standalone testing, you can exec into the container stdin_open: true tty: true restart: unless-stopped # ========================================== # Database Admin (Optional) # ========================================== adminer: image: adminer:latest container_name: paperlib-adminer ports: - "${ADMINER_PORT:-8080}:8080" depends_on: - postgres restart: unless-stopped profiles: - admin # 只在需要时启动: docker-compose --profile admin up

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/h-lu/paperlib-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server