Skip to main content
Glama

Stock MCP Server

by huweihua123
docker-compose.yml4.17 kB
# filepath: /Users/huweihua/java/stock-mcp/docker-compose.yml version: "3.8" services: # Redis 服务 - 用于缓存 redis: image: redis:7-alpine container_name: stock-mcp-redis restart: unless-stopped ports: - "6380:6379" volumes: - redis_data:/data command: redis-server --appendonly yes networks: - stock-network healthcheck: test: ["CMD", "redis-cli", "ping"] interval: 10s timeout: 3s retries: 3 # MySQL 服务 - 用于数据存储 mysql: image: mysql:8.0 container_name: stock-mcp-mysql restart: unless-stopped ports: - "3307:3306" environment: - MYSQL_ROOT_PASSWORD=123456hwh - MYSQL_DATABASE=stock_mcp - MYSQL_USER=stock_user - MYSQL_PASSWORD=123456hwh - TZ=Asia/Shanghai volumes: - mysql_data:/var/lib/mysql - ./scripts/init_mysql.sql:/docker-entrypoint-initdb.d/01-init.sql:ro networks: - stock-network command: - --character-set-server=utf8mb4 - --collation-server=utf8mb4_unicode_ci - --max_connections=1000 - --default-authentication-plugin=mysql_native_password healthcheck: test: [ "CMD", "mysqladmin", "ping", "-h", "localhost", "-u", "stock_user", "-pstock_password", ] interval: 10s timeout: 5s retries: 5 # 股票 MCP 服务 stock-mcp: build: context: . dockerfile: Dockerfile container_name: stock-mcp-server restart: unless-stopped ports: - "9998:9998" # FastAPI Web 服务器 - "9999:9999" # MCP 服务器 # 配置 DNS 服务器,解决网络连接问题 dns: - 8.8.8.8 - 114.114.114.114 - 223.5.5.5 # 添加宿主机映射,支持容器访问宿主机服务(如代理) extra_hosts: - "host.docker.internal:host-gateway" environment: # 服务器配置 - HOST=0.0.0.0 - PORT=9998 - DEBUG=false # MCP 服务器配置 - MCP_SERVER_NAME=stock-data-server - MCP_SERVER_VERSION=1.0.0 # Redis 配置 - REDIS_HOST=redis - REDIS_PORT=6379 - REDIS_DB=0 # MySQL 配置 - MYSQL_HOST=mysql - MYSQL_PORT=3306 - MYSQL_USER=stock_user - MYSQL_PASSWORD=123456hwh - MYSQL_DATABASE=stock_mcp # 代理配置(访问国外数据源如 yfinance) # 容器访问宿主机代理使用 host.docker.internal - HTTP_PROXY=${HTTP_PROXY:-http://host.docker.internal:7890} - HTTPS_PROXY=${HTTPS_PROXY:-http://host.docker.internal:7890} - NO_PROXY=${NO_PROXY:-localhost,127.0.0.1,redis,stock-mcp-redis} - YFINANCE_PROXY=${YFINANCE_PROXY:-http://host.docker.internal:7890} # AKShare 配置(增加超时时间) - AKSHARE_TIMEOUT=60 # Tushare Token (请在 .env 文件中配置) - TUSHARE_TOKEN=${TUSHARE_TOKEN:-} # NewsAPI Token (可选) - NEWS_API_KEY=${NEWS_API_KEY:-} # Finnhub Token (可选) - FINNHUB_API_KEY=${FINNHUB_API_KEY:-} # Tavily Token (可选) - TAVILY_API_KEY=${TAVILY_API_KEY:-} # Python 环境变量 - PYTHONPATH=/app - PYTHONDONTWRITEBYTECODE=1 - PYTHONUNBUFFERED=1 - HOME=/root # 网络超时和重试配置 - REQUESTS_TIMEOUT=60 - HTTP_RETRY_TOTAL=5 - HTTP_RETRY_BACKOFF=1 volumes: # 如果需要持久化日志,可以挂载日志目录 - ./logs:/app/logs # 挂载本地数据目录(宏观数据CSV文件) - ./data:/app/data depends_on: redis: condition: service_healthy mysql: condition: service_healthy networks: - stock-network healthcheck: test: ["CMD", "curl", "-f", "http://localhost:9998/health"] interval: 30s timeout: 10s retries: 3 start_period: 10s # 网络配置 networks: stock-network: driver: bridge name: stock-mcp-network # 数据卷配置 volumes: redis_data: name: stock-mcp-redis-data mysql_data: name: stock-mcp-mysql-data

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/huweihua123/stock-mcp'

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