Skip to main content

Install and build

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

Start the server

pnpm dev
This starts the Toolshed API server at http://localhost:3000.

Start the MCP server

In a separate terminal:
toolshed serve
This starts an MCP server over stdio that agents can connect to.

Connect an agent

Add Toolshed to your MCP client. For Claude Desktop, add to your claude_desktop_config.json:
{
  "mcpServers": {
    "toolshed": {
      "command": "npx",
      "args": ["toolshed", "serve"]
    }
  }
}

First interaction

Once connected, an agent interacts through the four 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: "Show me the schema for listing issues"

→ calls read_tool({ path: "github.issues.list" })
→ gets full input/output schema

Agent: "List open issues in my repo"

→ calls run({ script: `
    const result = await tools.github.issues.list({
      owner: "my-org",
      repo: "my-repo",
      state: "open",
      limit: 10
    });
    return result;
  `})
→ returns issues array

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