Skip to main content

Install and build

git clone https://github.com/Philo-Studio/toolshed.git
cd toolshed
pnpm install
pnpm build

Configure the server

Copy the environment template and add your credentials:
cp apps/server/.env.example apps/server/.env.local
At minimum, you need DATABASE_URL (Neon Postgres) and BETTER_AUTH_SECRET. See Environment Variables for all options.

Run the database migration

npx @better-auth/cli migrate -y
This creates Better Auth’s tables (user, session, account, verification) in your Neon database.

Start the server and web app

# Terminal 1 — API server
pnpm --filter @toolshed/server dev

# Terminal 2 — Web dashboard
pnpm --filter @toolshed/web dev
The server runs at http://localhost:3000, the web app at http://localhost:5173.

Sign in

Open http://localhost:5173 and create an account with your @philo.ventures email, or sign in with Google.

Connect tools

  1. Go to the Tools tab
  2. Connect personal tools (GitHub, Google) via OAuth
  3. Connect team tools (Slack, Linear, etc.) by entering API keys
  4. Toggle built-in tools (Firecrawl, Perplexity, etc.) on/off

Create an MCP endpoint

  1. Go to the MCP URLs tab
  2. Click New endpoint and give it a name
  3. Copy the stdio config into your AI tool’s MCP config
For Claude Desktop, add to claude_desktop_config.json:
{
  "mcpServers": {
    "toolshed": {
      "command": "npx",
      "args": ["toolshed", "serve"],
      "env": { "TOOLSHED_TOKEN": "ts_mcp_..." }
    }
  }
}

First interaction

Once connected, an agent interacts through the MCP tools:
Agent: "What tools are available for GitHub?"

→ calls search_tools({ query: "github" })
→ finds github.issues.list, github.issues.create, github.repos.search

Agent: "Create an issue for the login bug"

→ calls run({ script: `...tools.github.issues.create(...)...` })
→ execution PAUSES — returns { paused: { executionId: "abc123", ... } }
→ agent calls resume({ execution_id: "abc123", approved: true })
→ issue is created

Development commands

CommandDescription
pnpm buildBuild all packages via Turborepo
pnpm devStart dev mode
pnpm testRun all tests (Vitest)
pnpm typecheckType-check all packages
pnpm lintLint with Biome
pnpm lint:fixLint and auto-fix