Skip to content

Commit 1c36b01

Browse files
Daniel Hnykgithub-actions[bot]
authored andcommitted
feat: rename everyrow SDK to futuresearch-python (#4943)
Sourced from commit a8ee4f471f7bd4ebdd51c7b2abc39a81fcbf8db8
1 parent 52f11d7 commit 1c36b01

218 files changed

Lines changed: 1606 additions & 1455 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.claude-plugin/marketplace.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,11 @@
44
"name": "FutureSearch"
55
},
66
"metadata": {
7-
"description": "everyrow plugins from FutureSearch"
7+
"description": "futuresearch plugins from FutureSearch"
88
},
99
"plugins": [
1010
{
11-
"name": "everyrow",
11+
"name": "futuresearch",
1212
"source": "./",
1313
"description": "Give Claude Code a research team. Forecast, score, classify, or research every row of a dataset.",
1414
"version": "0.5.1"

.claude-plugin/plugin.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
11
{
2-
"name": "everyrow",
2+
"name": "futuresearch",
33
"description": "Give Claude Code a research team. Forecast, score, classify, or research every row of a dataset.",
44
"version": "0.5.1",
55
"author": {
66
"name": "FutureSearch"
77
},
88
"repository": "https://github.com/futuresearch/everyrow-sdk",
99
"mcpServers": {
10-
"everyrow": {
10+
"futuresearch": {
1111
"command": "uvx",
12-
"args": ["everyrow-mcp"],
12+
"args": ["futuresearch-mcp"],
1313
"env": {
14-
"EVERYROW_API_KEY": "${EVERYROW_API_KEY}"
14+
"FUTURESEARCH_API_KEY": "${FUTURESEARCH_API_KEY}"
1515
}
1616
}
1717
}

.claude/skills/deploy-mcp/SKILL.md

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
name: deploy-mcp
3-
description: Deploy the everyrow 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.
3+
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.
44
---
55

66
# Deploying the MCP Server
@@ -39,10 +39,10 @@ gh run list --workflow="Deploy MCP Server" --limit 3
3939
gh run watch <run-id>
4040

4141
# Check pod rollout
42-
kubectl rollout status deploy/everyrow-mcp-staging -n everyrow-mcp-staging --timeout=5m
42+
kubectl rollout status deploy/futuresearch-mcp-staging -n futuresearch-mcp-staging --timeout=5m
4343

4444
# Verify pods are running
45-
kubectl get pods -n everyrow-mcp-staging -o wide
45+
kubectl get pods -n futuresearch-mcp-staging -o wide
4646
```
4747

4848
## How It Works
@@ -62,7 +62,7 @@ The deploy uses `--atomic` so it auto-rolls back on failure.
6262

6363
### Via Helm values (persistent)
6464

65-
Edit `everyrow-mcp/deploy/chart/values.staging.yaml`:
65+
Edit `futuresearch-mcp/deploy/chart/values.staging.yaml`:
6666
```yaml
6767
replicaCount: 2 # Change this
6868
```
@@ -72,29 +72,29 @@ Commit, push, and redeploy.
7272
7373
```bash
7474
# Staging
75-
kubectl scale deploy everyrow-mcp-staging -n everyrow-mcp-staging --replicas=3
75+
kubectl scale deploy futuresearch-mcp-staging -n futuresearch-mcp-staging --replicas=3
7676

7777
# Take offline
78-
kubectl scale deploy everyrow-mcp-staging -n everyrow-mcp-staging --replicas=0
78+
kubectl scale deploy futuresearch-mcp-staging -n futuresearch-mcp-staging --replicas=0
7979
```
8080

8181
## Environments
8282

8383
| Environment | Namespace | Host | Redis DB |
8484
|---|---|---|---|
85-
| Staging | `everyrow-mcp-staging` | `mcp-staging.everyrow.io` | 14 |
86-
| Production | `everyrow-mcp` | `mcp.everyrow.io` | (default in values.yaml) |
85+
| Staging | `futuresearch-mcp-staging` | `mcp-staging.everyrow.io` | 14 |
86+
| Production | `futuresearch-mcp` | `mcp.everyrow.io` | (default in values.yaml) |
8787

88-
Both environments hit the **same production EveryRow API** — there is no staging API.
88+
Both environments hit the **same production FutureSearch API** — there is no staging API.
8989

9090
## Updating Secrets
9191

9292
```bash
9393
# View current secrets
94-
sops -d everyrow-mcp/deploy/chart/secrets.staging.enc.yaml
94+
sops -d futuresearch-mcp/deploy/chart/secrets.staging.enc.yaml
9595

9696
# Update a value
97-
sops --set '["secrets"]["data"]["KEY_NAME"] "new-value"' everyrow-mcp/deploy/chart/secrets.staging.enc.yaml
97+
sops --set '["secrets"]["data"]["KEY_NAME"] "new-value"' futuresearch-mcp/deploy/chart/secrets.staging.enc.yaml
9898
```
9999

100100
Commit the encrypted file and redeploy.
@@ -104,11 +104,11 @@ Commit the encrypted file and redeploy.
104104
| File | Purpose |
105105
|------|---------|
106106
| `.github/workflows/deploy-mcp.yaml` | CI/CD workflow (checks → build → deploy) |
107-
| `everyrow-mcp/deploy/chart/values.yaml` | Base Helm values |
108-
| `everyrow-mcp/deploy/chart/values.staging.yaml` | Staging overrides |
109-
| `everyrow-mcp/deploy/chart/secrets.enc.yaml` | Production secrets (SOPS) |
110-
| `everyrow-mcp/deploy/chart/secrets.staging.enc.yaml` | Staging secrets (SOPS) |
111-
| `everyrow-mcp/deploy/Dockerfile` | Server container image |
107+
| `futuresearch-mcp/deploy/chart/values.yaml` | Base Helm values |
108+
| `futuresearch-mcp/deploy/chart/values.staging.yaml` | Staging overrides |
109+
| `futuresearch-mcp/deploy/chart/secrets.enc.yaml` | Production secrets (SOPS) |
110+
| `futuresearch-mcp/deploy/chart/secrets.staging.enc.yaml` | Staging secrets (SOPS) |
111+
| `futuresearch-mcp/deploy/Dockerfile` | Server container image |
112112

113113
## Gotchas
114114

.claude/skills/run-mcp-local/SKILL.md

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
11
---
22
name: run-mcp-local
3-
description: Run the everyrow HTTP MCP server locally with Docker Compose and optionally expose it via Cloudflare tunnel. Use when starting/stopping the local MCP server, debugging startup issues, connecting Claude.ai or Claude Desktop to a local instance, or checking server logs. Triggers on mcp local, mcp server, run mcp, mcp docker, mcp tunnel, cloudflare tunnel, mcp logs.
3+
description: Run the FutureSearch HTTP MCP server locally with Docker Compose and optionally expose it via Cloudflare tunnel. Use when starting/stopping the local MCP server, debugging startup issues, connecting Claude.ai or Claude Desktop to a local instance, or checking server logs. Triggers on mcp local, mcp server, run mcp, mcp docker, mcp tunnel, cloudflare tunnel, mcp logs.
44
---
55

6-
# Running the everyrow MCP Server Locally
6+
# Running the FutureSearch MCP Server Locally
77

8-
Two-container stack: **mcp-server** (FastAPI on :8000) and **redis** (on :6379), orchestrated by `everyrow-mcp/deploy/docker-compose.yaml` with local overrides.
8+
Two-container stack: **mcp-server** (FastAPI on :8000) and **redis** (on :6379), orchestrated by `futuresearch-mcp/deploy/docker-compose.yaml` with local overrides.
99

1010
## Pre-flight Checks
1111

1212
**CRITICAL: Always check for stale processes on port 8000 before starting.**
1313

14-
A leftover `everyrow-mcp --no-auth` or similar process on the host will shadow the Docker container's port binding. All requests hit the stale process instead of the container — this can look like auth routes are broken, sheets tools are missing, etc.
14+
A leftover `futuresearch-mcp --no-auth` or similar process on the host will shadow the Docker container's port binding. All requests hit the stale process instead of the container — this can look like auth routes are broken, sheets tools are missing, etc.
1515

1616
```bash
1717
# Check for anything on port 8000
@@ -29,7 +29,7 @@ docker info --format '{{.ServerVersion}}' || colima start
2929
## Quick Start
3030

3131
```bash
32-
cd everyrow-mcp/deploy
32+
cd futuresearch-mcp/deploy
3333

3434
REDIS_PASSWORD=testpass \
3535
MCP_SERVER_URL=http://localhost:8000 \
@@ -55,7 +55,7 @@ These are templated in `docker-compose.local.yaml` as `${VAR:-default}` — the
5555

5656
## Secrets
5757

58-
The `.env` file at `everyrow-mcp/deploy/.env` contains production secrets (Supabase, API keys, upload secret). It is already present and should NOT be committed or overwritten.
58+
The `.env` file at `futuresearch-mcp/deploy/.env` contains production secrets (Supabase, API keys, upload secret). It is already present and should NOT be committed or overwritten.
5959

6060
`REDIS_PASSWORD` is intentionally NOT in `.env` — always pass it as an env var (`testpass` for local dev).
6161

@@ -64,8 +64,8 @@ The `.env` file at `everyrow-mcp/deploy/.env` contains production secrets (Supab
6464
The `.env` file is gitignored and won't exist in worktrees. Symlink it:
6565

6666
```bash
67-
ln -s /Users/rafaelpoyiadzi/Documents/git/everyrow-sdk/everyrow-mcp/deploy/.env \
68-
<worktree-path>/everyrow-mcp/deploy/.env
67+
ln -s /Users/rafaelpoyiadzi/Documents/git/futuresearch-python/futuresearch-mcp/deploy/.env \
68+
<worktree-path>/futuresearch-mcp/deploy/.env
6969
```
7070

7171
## Exposing via Cloudflare Tunnel
@@ -95,7 +95,7 @@ This prints a URL like `https://something-something.trycloudflare.com`.
9595
The server must know its public URL for OAuth redirects to work:
9696

9797
```bash
98-
cd everyrow-mcp/deploy
98+
cd futuresearch-mcp/deploy
9999

100100
REDIS_PASSWORD=testpass \
101101
MCP_SERVER_URL=https://something-something.trycloudflare.com \
@@ -128,10 +128,10 @@ Both should return JSON with `issuer`, `authorization_endpoint`, etc. If local r
128128
**Claude Code**: Add a project-scoped MCP server (writes to `.claude/settings.local.json` in the current dir, not the global config):
129129

130130
```bash
131-
claude mcp add everyrow --scope project --transport http <TUNNEL_URL>/mcp
131+
claude mcp add futuresearch --scope project --transport http <TUNNEL_URL>/mcp
132132
```
133133

134-
Then restart Claude Code. Remove with `claude mcp remove everyrow --scope project`.
134+
Then restart Claude Code. Remove with `claude mcp remove futuresearch --scope project`.
135135

136136
## Logs
137137

@@ -149,7 +149,7 @@ docker logs deploy-mcp-server-1 2>&1 | grep "User-Agent"
149149
## Teardown
150150

151151
```bash
152-
cd everyrow-mcp/deploy
152+
cd futuresearch-mcp/deploy
153153

154154
REDIS_PASSWORD=testpass MCP_SERVER_URL=http://localhost:8000 \
155155
docker compose -f docker-compose.yaml -f docker-compose.local.yaml down
@@ -166,12 +166,12 @@ Run the server directly with `uv run` — no Docker needed. Useful for quick loc
166166
### Prerequisites
167167

168168
- Redis running on localhost:6379 (e.g. `docker run -d --name test-redis -p 6379:6379 redis:7-alpine`)
169-
- `EVERYROW_API_KEY` in `~/.claude/secrets/remote.env`
169+
- `FUTURESEARCH_API_KEY` (or legacy `FUTURESEARCH_API_KEY`) in `~/.claude/secrets/remote.env`
170170

171171
### Start the server
172172

173173
```bash
174-
cd everyrow-mcp
174+
cd futuresearch-mcp
175175
ALLOW_NO_AUTH=1 \
176176
UPLOAD_SECRET=$(python -c "import secrets; print(secrets.token_urlsafe(32))") \
177177
EXTRA_ALLOWED_HOSTS="host.docker.internal,localhost" \
@@ -195,8 +195,8 @@ Note: Direct mode won't work (CORS). Auth mode won't work (Inspector v0.21.0 doe
195195

196196
```bash
197197
uv run python scripts/mcp_call.py list
198-
uv run python scripts/mcp_call.py call everyrow_balance
199-
uv run python scripts/mcp_call.py call everyrow_agent '{"params": {"task": "...", "data": [...]}}'
198+
uv run python scripts/mcp_call.py call futuresearch_balance
199+
uv run python scripts/mcp_call.py call futuresearch_agent '{"params": {"task": "...", "data": [...]}}'
200200
```
201201

202202
Note: `mcp_call.py` only works against `--no-auth` servers. It doesn't do OAuth, so authenticated servers will show a subset of tools or fail.
@@ -214,7 +214,7 @@ Note: `mcp_call.py` only works against `--no-auth` servers. It doesn't do OAuth,
214214
| cloudflared output is empty | It writes to stderr: use `2>/tmp/cf-tunnel.log` redirect |
215215
| Container doesn't pick up code changes | Add `--build` to the `docker compose up` command |
216216
| Container doesn't pick up env var changes | Must recreate: `docker compose ... down && docker compose ... up -d` |
217-
| `.env` not found in worktree | Symlink from main repo: `ln -s <main>/everyrow-mcp/deploy/.env <worktree>/everyrow-mcp/deploy/.env` |
217+
| `.env` not found in worktree | Symlink from main repo: `ln -s <main>/futuresearch-mcp/deploy/.env <worktree>/futuresearch-mcp/deploy/.env` |
218218
| Sheets tools not showing in tool list | Pass `ENABLE_SHEETS_TOOLS=true` and recreate the container |
219219
| `mcp_call.py` shows fewer tools than expected | It connects without auth — authenticated servers may filter tools |
220220
| Docker daemon not running | `colima start` (may need `colima stop && colima start` if socket is stale) |
@@ -223,7 +223,7 @@ Note: `mcp_call.py` only works against `--no-auth` servers. It doesn't do OAuth,
223223

224224
| File | Purpose |
225225
|------|---------|
226-
| `everyrow-mcp/deploy/docker-compose.yaml` | Base compose (server + redis) |
227-
| `everyrow-mcp/deploy/docker-compose.local.yaml` | Local overrides (ports, env passthrough) |
228-
| `everyrow-mcp/deploy/.env` | Production secrets (DO NOT commit changes) |
229-
| `everyrow-mcp/deploy/Dockerfile` | Server container build |
226+
| `futuresearch-mcp/deploy/docker-compose.yaml` | Base compose (server + redis) |
227+
| `futuresearch-mcp/deploy/docker-compose.local.yaml` | Local overrides (ports, env passthrough) |
228+
| `futuresearch-mcp/deploy/.env` | Production secrets (DO NOT commit changes) |
229+
| `futuresearch-mcp/deploy/Dockerfile` | Server container build |

.env.example

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,12 @@
1-
# everyrow API Configuration
2-
# Required: Your API key for authenticating with the everyrow API
3-
EVERYROW_API_KEY=
1+
# FutureSearch API Configuration
2+
# Required: Your API key for authenticating with the FutureSearch API
3+
FUTURESEARCH_API_KEY=
44

55
# Optional: API base URL (defaults to https://futuresearch.ai/api/v0/)
6-
# EVERYROW_API_URL=https://futuresearch.ai/api/v0/
6+
# FUTURESEARCH_API_URL=https://futuresearch.ai/api/v0/
77
# Optional: App base URL (defaults to https://futuresearch.ai/)
8-
# EVERYROW_APP_URL=https://futuresearch.ai/
8+
# FUTURESEARCH_APP_URL=https://futuresearch.ai/
9+
10+
# Legacy env vars (still supported for backwards compatibility):
11+
# EVERYROW_API_KEY=
12+
# EVERYROW_API_URL=

.github/workflows/ci.yaml

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,22 +4,22 @@ on:
44
push:
55
branches: ["main"]
66
paths:
7-
- "src/everyrow/**"
7+
- "src/futuresearch/**"
88
- "tests/**"
99
- "examples/**"
1010
- "pyproject.toml"
1111
- "uv.lock"
1212
- ".github/workflows/ci.yaml"
13-
- "everyrow-mcp/**"
13+
- "futuresearch-mcp/**"
1414

1515
pull_request:
1616
paths:
17-
- "src/everyrow/**"
17+
- "src/futuresearch/**"
1818
- "tests/**"
1919
- "examples/**"
2020
- "pyproject.toml"
2121
- "uv.lock"
22-
- "everyrow-mcp/**"
22+
- "futuresearch-mcp/**"
2323

2424
concurrency:
2525
group: ${{ github.workflow }}-${{ github.ref }}
@@ -59,7 +59,7 @@ jobs:
5959
run: uv run basedpyright
6060

6161
mcp-checks:
62-
name: everyrow-mcp
62+
name: futuresearch-mcp
6363
runs-on: ubuntu-latest
6464
steps:
6565
- uses: actions/checkout@v4
@@ -79,13 +79,13 @@ jobs:
7979
python-version: "3.12"
8080

8181
- name: Install dependencies
82-
run: uv sync --directory everyrow-mcp
82+
run: uv sync --directory futuresearch-mcp
8383

8484
- name: Check formatting
85-
run: uv run --directory everyrow-mcp ruff format --check
85+
run: uv run --directory futuresearch-mcp ruff format --check
8686

8787
- name: Run ruff
88-
run: uv run --directory everyrow-mcp ruff check
88+
run: uv run --directory futuresearch-mcp ruff check
8989

9090
- name: Run tests
91-
run: uv run --directory everyrow-mcp pytest tests
91+
run: uv run --directory futuresearch-mcp pytest tests

.github/workflows/deploy-mcp.yaml

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ on:
2222
env:
2323
GKE_ZONE: ${{ vars.BETA_CLUSTER_REGION }}
2424
GKE_NAME: ${{ vars.BETA_CLUSTER_NAME }}
25-
MCP_IMAGE_NAME: ${{ vars.GCP_REGISTRY_NAME }}/${{ vars.GCP_PROJECT_NAME }}/delphos/everyrow-mcp
25+
MCP_IMAGE_NAME: ${{ vars.GCP_REGISTRY_NAME }}/${{ vars.GCP_PROJECT_NAME }}/delphos/futuresearch-mcp
2626

2727
permissions:
2828
contents: read
@@ -65,11 +65,11 @@ jobs:
6565
with:
6666
python-version: "3.12"
6767
- name: Install deps
68-
run: uv sync --directory everyrow-mcp
68+
run: uv sync --directory futuresearch-mcp
6969
- name: Run ruff
70-
run: uv run --directory everyrow-mcp ruff check
70+
run: uv run --directory futuresearch-mcp ruff check
7171
- name: Run tests
72-
run: uv run --directory everyrow-mcp pytest tests
72+
run: uv run --directory futuresearch-mcp pytest tests
7373

7474
build-and-push:
7575
needs: [setup, checks]
@@ -105,7 +105,7 @@ jobs:
105105
uses: useblacksmith/build-push-action@v2
106106
with:
107107
context: .
108-
file: everyrow-mcp/deploy/Dockerfile
108+
file: futuresearch-mcp/deploy/Dockerfile
109109
push: true
110110
tags: ${{ steps.tags.outputs.tags }}
111111
platforms: linux/amd64
@@ -145,18 +145,18 @@ jobs:
145145

146146
- name: Decrypt production secrets
147147
if: inputs.deploy_production == true
148-
run: sops -d everyrow-mcp/deploy/chart/secrets.enc.yaml > everyrow-mcp/deploy/chart/values.secrets.yaml
148+
run: sops -d futuresearch-mcp/deploy/chart/secrets.enc.yaml > futuresearch-mcp/deploy/chart/values.secrets.yaml
149149

150150
- name: Decrypt staging secrets
151151
if: inputs.deploy_staging == true
152-
run: sops -d everyrow-mcp/deploy/chart/secrets.staging.enc.yaml > everyrow-mcp/deploy/chart/values.secrets.staging.yaml
152+
run: sops -d futuresearch-mcp/deploy/chart/secrets.staging.enc.yaml > futuresearch-mcp/deploy/chart/values.secrets.staging.yaml
153153

154154
- name: Deploy to production
155155
if: inputs.deploy_production == true
156-
working-directory: everyrow-mcp/deploy/chart
156+
working-directory: futuresearch-mcp/deploy/chart
157157
run: |
158-
helm upgrade --install everyrow-mcp . \
159-
-n everyrow-mcp \
158+
helm upgrade --install futuresearch-mcp . \
159+
-n futuresearch-mcp \
160160
-f values.yaml \
161161
-f values.secrets.yaml \
162162
--set-string releaseId="${{ needs.setup.outputs.sha_short }}" \
@@ -167,10 +167,10 @@ jobs:
167167
168168
- name: Deploy to staging
169169
if: inputs.deploy_staging == true
170-
working-directory: everyrow-mcp/deploy/chart
170+
working-directory: futuresearch-mcp/deploy/chart
171171
run: |
172-
helm upgrade --install everyrow-mcp-staging . \
173-
-n everyrow-mcp-staging \
172+
helm upgrade --install futuresearch-mcp-staging . \
173+
-n futuresearch-mcp-staging \
174174
-f values.yaml \
175175
-f values.staging.yaml \
176176
-f values.secrets.staging.yaml \

0 commit comments

Comments
 (0)