deploy-mcp
Deploy the FutureSearch MCP server to staging or production on GKE. Use when the user wants to deploy, redeploy, roll back, scale…
Bump the FutureSearch SDK version across all files. Use when releasing a new SDK version, updating version numbers, or the user says bump version, release, version bump.
Claude Code
$ npx -y skills add futuresearch/futuresearch-python --skill bump-sdk-version --agent claude-code
Codex
$ npx skills add futuresearch/futuresearch-python --skill bump-sdk-version -a codex -y
Cursor
$ npx skills add futuresearch/futuresearch-python --skill bump-sdk-version -a cursor -y
Gemini CLI
$ npx skills add futuresearch/futuresearch-python --skill bump-sdk-version -a gemini-cli -y
GitHub Copilot
$ npx skills add futuresearch/futuresearch-python --skill bump-sdk-version -a github-copilot -y
OpenCode
$ npx skills add futuresearch/futuresearch-python --skill bump-sdk-version -a opencode -y
Windsurf
$ npx skills add futuresearch/futuresearch-python --skill bump-sdk-version -a windsurf -y
name: bump-sdk-version description: Bump the FutureSearch SDK version across all files. Use when releasing a new SDK version, updating version numbers, or the user says bump version, release, version bump.
We use **semantic versioning** (MAJOR.MINOR.PATCH) while at major version 0:
| Bump | When | Examples | |:-----|:-----|:---------| | **Patch** (0.8.0 -> 0.8.1) | Bug fixes, docs changes, small tweaks, dependency updates | Fix a typo in output, update a dependency | | **Minor** (0.8.1 -> 0.9.0) | New features, new operation types, API additions | Add a new operation, new SDK method, new MCP tool | | **Patch for breaking changes** that are trivial to adapt | Rename a parameter, change a default | Rename `max_rows` to `row_limit` | | **Minor for breaking changes** that require migration | Remove or restructure API surface | Remove an operation type, change return format |
If unsure, ask the user which component to bump.
All paths are relative to `futuresearch-python/`. Update the version string in each:
1. **`pyproject.toml`** — `project.version` (the source of truth) 2. **`.claude-plugin/plugin.json`** — `version` 3. **`.claude-plugin/marketplace.json`** — `plugins[0].version` 4. **`gemini-extension.json`** — `version` 5. **`futuresearch-mcp/pyproject.toml`** — `project.version` AND `dependencies` (`futuresearch>=X.Y.Z`) 6. **`futuresearch-mcp/server.json`** — `version` AND `packages[0].version` 7. **`futuresearch-mcp/manifest.json`** — `version` 8. **`CITATION.cff`** — `version` AND `date-released` (set to today's date) 9. **`README.md`** — BibTeX `version` field in the citation block 10. **`stubs/everyrow/pyproject.toml`** — `project.version` AND `dependencies` (`futuresearch>=X.Y.Z`) 11. **`stubs/everyrow-mcp/pyproject.toml`** — `project.version` AND `dependencies` (`futuresearch-mcp>=X.Y.Z`)
After editing, regenerate the lock files. Run `uv lock` in `futuresearch-python/` first:
cd futuresearch-python && uv lock
Then sync transitive lockfiles across the entire monorepo. The CI check `check-uv-sync` runs `./uv-all.sh sync --all-extras --dev --all-groups` and will fail if any other workspace's `uv.lock` still references the old SDK version. Run it from the repo root:
cd <repo-root> && ./uv-all.sh sync --all-extras --dev --all-groups
Stage any additional lockfiles it touches alongside the bump.
cd futuresearch-python && uv run pytest tests/test_version.py -v
Search for the OLD version number to catch any files that were missed. Use `--hidden` (or equivalent) to include `.claude-plugin/` and other dotfiles:
cd futuresearch-python && rg --hidden "OLD_VERSION" --glob '!.venv' --glob '!uv.lock' --glob '!*.pyc' --glob '!__pycache__'
Be sure to escape the `.` characters in the version number: `"1\.2\.3"`.
Review any hits — some may be false positives: e.g., changelogs, migration notes, 3rd party packages.
Create a branch and commit with message: `Bump SDK version to X.Y.Z`
Version bumps should be in their own PR — do not bundle them with feature or fix changes. The commit message and PR title should be: `Bump SDK version to X.Y.Z`
Merging the bump PR does NOT publish. The publish pipeline lives in the public `futuresearch/futuresearch-python` repo's `.github/workflows/publish.yaml` and triggers on `release: published` only. After the bump PR merges:
1. Wait for `sync-futuresearch-python` to mirror the bump commit to the public repo (verify with `gh api repos/futuresearch/futuresearch-python/commits/main --jq '.commit.message'`). 2. Create a GitHub Release with tag `vX.Y.Z` (note the `v` prefix) and the auto-generated changelog:
gh release create vX.Y.Z \
--repo futuresearch/futuresearch-python \
--generate-notes \
--latest3. This kicks off `publish.yaml`, which:
`everyrow`, `everyrow-mcp`)
4. Watch the run:
gh run list --repo futuresearch/futuresearch-python --workflow=publish.yaml --limit 1
Forecast what will happen, including outcomes of your decisions. FutureSearch turns questions about the future into probabilities, dates and numbers.
Deploy the FutureSearch MCP server to staging or production on GKE. Use when the user wants to deploy, redeploy, roll back, scale…
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.