bump-sdk-version
Bump the FutureSearch SDK version across all files. Use when releasing a new SDK version, updating version numbers, or the user…
Deploy the FutureSearch MCP server to staging or production on GKE. Use when the user wants to deploy, redeploy, roll back, scale replicas, or check deployment status. Triggers on deploy, redeploy, staging, production, rollout, scale, replicas.
Claude Code
$ npx -y skills add futuresearch/futuresearch-python --skill deploy-mcp --agent claude-code
Codex
$ npx skills add futuresearch/futuresearch-python --skill deploy-mcp -a codex -y
Cursor
$ npx skills add futuresearch/futuresearch-python --skill deploy-mcp -a cursor -y
Gemini CLI
$ npx skills add futuresearch/futuresearch-python --skill deploy-mcp -a gemini-cli -y
GitHub Copilot
$ npx skills add futuresearch/futuresearch-python --skill deploy-mcp -a github-copilot -y
OpenCode
$ npx skills add futuresearch/futuresearch-python --skill deploy-mcp -a opencode -y
Windsurf
$ npx skills add futuresearch/futuresearch-python --skill deploy-mcp -a windsurf -y
name: deploy-mcp description: Deploy the FutureSearch MCP server to staging or production on GKE. Use when the user wants to deploy, redeploy, roll back, scale replicas, or check deployment status. Triggers on deploy, redeploy, staging, production, rollout, scale, replicas.
> **Deploying more than just the MCP server?** Start from the `deploy-to-staging` skill (repo > root `.claude/skills/`) — it routes a change through every layer of the stack in dependency > order. This skill owns only the MCP layer.
gh workflow run "Deploy MCP Server" -f branch=main -f deploy_staging=true
gh workflow run "Deploy MCP Server" -f branch=main -f deploy_production=true
gh workflow run "Deploy MCP Server" -f branch=main -f deploy_staging=true -f deploy_production=true
gh workflow run "Deploy MCP Server" -f branch=feat/my-branch -f deploy_staging=true
# Watch the workflow run gh run list --workflow="Deploy MCP Server" --limit 3 gh run watch <run-id> # Check pod rollout kubectl rollout status deploy/futuresearch-mcp-staging -n futuresearch-mcp-staging --timeout=5m # Verify pods are running kubectl get pods -n futuresearch-mcp-staging -o wide
The GitHub Actions workflow (`.github/workflows/deploy-mcp.yaml`) does:
1. **Checks** — ruff lint + pytest on the target branch 2. **Build & push** — Docker image to GAR, tagged with short SHA (+ `latest` on main) 3. **Deploy** — Helm upgrade with layered values:
The deploy uses `--atomic` so it auto-rolls back on failure.
Edit `futuresearch-mcp/deploy/chart/values.staging.yaml`:
replicaCount: 2 # Change this
Commit, push, and redeploy.
# Staging kubectl scale deploy futuresearch-mcp-staging -n futuresearch-mcp-staging --replicas=3 # Take offline kubectl scale deploy futuresearch-mcp-staging -n futuresearch-mcp-staging --replicas=0
| Environment | Namespace | Host | Upstream FutureSearch API | Redis DB | |---|---|---|---|---| | Staging | `futuresearch-mcp-staging` | `mcp-staging.futuresearch.ai` | `engine-staging.futuresearch.ai/api/v0` (staging engine) | 14 | | Production | `futuresearch-mcp` | `mcp.futuresearch.ai` | `futuresearch.ai/api/v0` (prod engine) | (default in values.yaml) |
**The two environments are fully separated, including their upstream engine.** Staging MCP calls the **staging** engine API (`FUTURESEARCH_API_URL` in `values.staging.yaml`), not prod — so `everyrow-cc-staging → mcp-staging → engine-staging` (cohort-staging) is a self-contained **pure staging route** end to end. Production has its own matching chain. This means a branch that changes both the engine API and the MCP tools can be exercised entirely on staging, provided you deploy each piece from your branch (see below).
Because the chain is `cc-staging → mcp-staging → engine-staging`, a full staging test of a feature branch needs each layer the branch touches deployed from that branch:
deploy the MCP server from your branch (`-f branch=<your-branch> -f deploy_staging=true`), or the staging MCP keeps serving the old tool schema and rejects the new arg.
your branch too — see the `manage-engine-staging` skill — since staging MCP calls `engine-staging`.
A change confined to one layer only needs that layer redeployed.
# View current secrets sops -d futuresearch-mcp/deploy/chart/secrets.staging.enc.yaml # Update a value sops --set '["secrets"]["data"]["KEY_NAME"] "new-value"' futuresearch-mcp/deploy/chart/secrets.staging.enc.yaml
Commit the encrypted file and redeploy.
| File | Purpose | |------|---------| | `.github/workflows/deploy-mcp.yaml` | CI/CD workflow (checks → build → deploy) | | `futuresearch-mcp/deploy/chart/values.yaml` | Base Helm values | | `futuresearch-mcp/deploy/chart/values.staging.yaml` | Staging overrides | | `futuresearch-mcp/deploy/chart/secrets.enc.yaml` | Production secrets (SOPS) | | `futuresearch-mcp/deploy/chart/secrets.staging.enc.yaml` | Staging secrets (SOPS) | | `futuresearch-mcp/deploy/Dockerfile` | Server container image |
Forecast what will happen, including outcomes of your decisions. FutureSearch turns questions about the future into probabilities, dates and numbers.
Bump the FutureSearch SDK version across all files. Use when releasing a new SDK version, updating version numbers, or the user…
Run the FutureSearch HTTP MCP server locally with Docker Compose and optionally expose it via Cloudflare tunnel. Use when…
Use when the user wants a FutureSearch forecast: the probability, date or number for a question about the future, or the outcomes…
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Ask which skill or flow fits your situation. A router over the skills in this repo.