Skip to main content
Glama
Tool Box MCP Server

Tool Box MCP Server

by Adriftnote

Tool Box MCP Server

Central registry for AI tools with Vector Search + Knowledge Graph for intelligent tool discovery and chaining.

Features

  • Vector Search: Semantic tool discovery via ChromaDB

  • Knowledge Graph: Tool relationships and dependency traversal

  • Tool Chaining: Execute multi-step MCP tool pipelines with data transformations

  • Progressive Disclosure: Load only what's needed

  • Unified Registry: MCP Servers, Skills, Tools, Commands in one place

Related MCP server: executor

Quick Start

# Clone
git clone https://github.com/Adriftnote/tool-box-mcp.git
cd tool-box-mcp

# Install dependencies
npm install

# Run setup (initializes ChromaDB and sample data)
./scripts/setup.sh

# Start server
npm start

Tools (11 total)

Tool

Description

toolhub_search

Find tools by natural language query

toolhub_expand

Explore tool dependencies via Knowledge Graph

toolhub_cluster

Get complete tool set for a task

toolhub_register

Add new tools to registry

toolhub_delete

Remove tools from registry

toolhub_list

List all registered tools

toolhub_execute

Auto-generate and execute chain from query

toolhub_chain

Execute sequential MCP tool pipeline

toolhub_prepare_chain

Analyze chain before execution (schemas, skills, transforms)

toolhub_discover

Refresh chainable tools from MCP servers

toolhub_chainable

List tools available for chaining

Installation

Prerequisites

  • Node.js 18+

  • Python 3.8+ (for ChromaDB)

  • pip (Python package manager)

Step 1: Clone and Install

git clone https://github.com/Adriftnote/tool-box-mcp.git
cd tool-box-mcp
npm install

Step 2: Run Setup

# This installs Python dependencies and initializes ChromaDB
./scripts/setup.sh

Step 3: Configure MCP Client

Add to your Claude Code or MCP client settings:

{
  "mcpServers": {
    "tool-box": {
      "type": "stdio",
      "command": "node",
      "args": ["/path/to/tool-box-mcp/dist/index.js"]
    }
  }
}

Configuration

Data Files

After installation, configure these files in the data/ directory:

File

Purpose

mcp-config.json

MCP servers to chain with

knowledge-graph.json

Tool relationships

chromadb/

Vector search database

Environment Variables (Optional)

Override default paths with environment variables:

TOOLHUB_GRAPH_PATH       # Knowledge Graph JSON path
TOOLHUB_MCP_CONFIG       # MCP config path
TOOLHUB_PYTHON_PATH      # Python interpreter path

Usage Examples

1. Search Tools

toolhub_search({
  query: "data analysis excel",
  limit: 10,
  include_graph: true
})

2. Execute Tool Chain

toolhub_chain({
  mcpPath: [
    {
      toolName: "sqlite_read_query",
      toolArgs: "{\"query\": \"SELECT * FROM metrics LIMIT 10\"}",
      outputTransform: "sqlite→2d"
    },
    {
      toolName: "document_create_excel",
      toolArgs: "{\"filepath\": \"/tmp/report.xlsx\", \"content\": \"CHAIN_RESULT\"}"
    }
  ]
})

3. Register New Tool

toolhub_register({
  name: "my-mcp-server",
  type: "MCP_Server",
  description: "My custom MCP server for data processing"
})

Architecture

┌─────────────────────────────────────────────┐
│  Claude Code / AI Agent                     │
└─────────────────────────────────────────────┘
                    │ MCP Call
                    ▼
┌─────────────────────────────────────────────┐
│  Tool Box MCP Server                        │
│  ┌─────────────────────────────────────┐   │
│  │ HybridSearchService                 │   │
│  │ ├─ VectorSearchService (ChromaDB)   │   │
│  │ └─ GraphSearchService (JSON)        │   │
│  ├─────────────────────────────────────┤   │
│  │ ToolDiscoveryService                │   │
│  │ └─ Chain Execution + Transforms     │   │
│  └─────────────────────────────────────┘   │
└─────────────────────────────────────────────┘
         │                    │
         ▼                    ▼
┌───────────────┐    ┌───────────────┐
│  ChromaDB     │    │  Knowledge    │
│  (data/)      │    │  Graph JSON   │
└───────────────┘    └───────────────┘

Data Transforms

Built-in transforms for chain data flow:

Transform

Description

sqlite→2d

SQLite results to 2D array

json→object

Parse JSON string to object

object→array

Wrap object in array

flatten

Flatten nested arrays

first

Extract first element

keys

Get object keys

values

Get object values

Development

# Build from source
npm run build

# Run server
npm start

# Type check
npm run typecheck

Project Structure

tool-box-mcp/
├── dist/                 # Compiled JavaScript (included)
├── src/
│   ├── index.ts          # Main server entry
│   ├── schemas/          # Zod input schemas
│   └── services/         # Search, chain, transform services
├── scripts/
│   ├── setup.sh          # Initial setup script
│   └── register-tool.py  # Tool registration utility
├── data/
│   ├── chromadb/         # Vector database
│   ├── knowledge-graph.json
│   └── mcp-config.json
└── package.json

Troubleshooting

"ChromaDB not found"

pip install chromadb sentence-transformers

"Python not found"

Set the Python path:

export TOOLHUB_PYTHON_PATH=/usr/bin/python3

"No tools found"

Run setup to initialize sample data:

./scripts/setup.sh

License

ISC

Available Tools

4 tools
toolhub_clusterGet Tool ClusterA
Read-onlyIdempotent

Get a complete tool cluster for a task query.

This combines vector search and graph expansion to return a complete set of tools needed for a task. Includes primary tools (semantic matches) and their dependencies (graph expansion), plus usage context.

Args:

  • query (string): Natural language task description

  • include_context (boolean): Include usage patterns and examples (default: true)

  • response_format ('json' | 'markdown'): Output format

Returns: { "primary": [ { "name": "n8n-workflow-builder", "type": "MCP_Server", ... } ], "dependencies": [ { "name": "n8n-node-templates", "type": "Skill", ... } ], "context": { "usagePatterns": ["Use MCP servers for data operations", ...], "examples": ["Primary workflow: n8n-workflow-builder - ...", ...] }, "stats": { "totalTools": 7, "tokenEstimate": 7000, "savingsPercent": 92.1 } }

Use this tool for complete task setup - returns everything needed to start working.

Inputs: query (required), include_context, response_format.

toolhub_expandExpand Tool GraphA
Read-onlyIdempotent

Expand a tool to find its dependencies via Knowledge Graph.

Given a tool name, traverse the Knowledge Graph to find related tools, requirements, and dependencies. Useful for understanding what other tools are needed to complete a task.

Args:

  • tool_name (string): Name of the tool to expand (e.g., 'n8n-workflow-builder')

  • depth (number): Traversal depth (default: 2, max: 4)

  • relation_types (string[]): Filter by relation types (optional)

  • response_format ('json' | 'markdown'): Output format

Relation types:

  • REQUIRES: Tool A requires Tool B to function

  • WORKS_WITH: Tools that commonly work together

  • EXECUTABLE_VIA: Tool can be executed via another tool

  • OUTPUTS_TO: Tool outputs data to another tool

  • BENEFITS_FROM: Tool benefits from using another tool

Returns: { "tool": "n8n-workflow-builder", "dependencies": [ { "name": "n8n-node-templates", "type": "Skill", "relation": "BENEFITS_FROM" } ], "totalCount": 4 }

Use this tool when you know a primary tool and need to find related tools.

Inputs: tool_name (required), depth, relation_types, response_format.

toolhub_healthHealth CheckA
Read-onlyIdempotent

Check Tool Hub service status.

Returns:

  • chromadb: Connection status to vector database

  • knowledgeGraph: Knowledge graph file status

  • toolCount: Number of registered tools

  • version: Server version

Inputs: no named parameters.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A4.1/5.0

    Scored across 4 tools

    Disambiguation2/5

    toolhub_search and toolhub_cluster substantially overlap: both take a natural language query and return relevant tools with optional Knowledge Graph expansion, making it unclear when to prefer one. toolhub_expand and toolhub_health are distinct, but the boundary between search and cluster is not crisp.

    Naming Consistency3/5

    All tools share the toolhub_ prefix and snake_case, but the suffixes are inconsistent in style: search and expand are verbs, health is a noun, and cluster is a noun/verb. A pattern like toolhub_get_cluster or toolhub_check_health would be clearer.

    Tool Count5/5

    Four tools is well-scoped for a tool-discovery service: search, dependency expansion, full cluster assembly, and health checking. Each tool has a clear operational role, and the count is neither thin nor bloated.

    Completeness4/5

    The core discovery workflow (query, expand, cluster, health) is covered with no dead ends. Minor gaps exist: there is no direct list-all-tools or get-tool-detail operation, and cluster largely subsumes search, but agents can accomplish the main task.

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      B
      maintenance
      An integration layer for AI agents that provides a catalog of tools from various sources (OpenAPI, GraphQL, MCP, etc.) and can be used as an MCP server for compatible agents.
      4,451
      MIT
    • A
      license
      Not graded
      quality
      B
      maintenance
      MCP server registry and marketplace that enables dynamic discovery, installation, and activation of tools at runtime, allowing AI agents to use new tools without restarting.
      129 npm
      7
      MIT
    • A
      license
      Not graded
      quality
      D
      maintenance
      Federating gateway for AI agents to discover and call tools from multiple MCP servers with intelligent search and dynamic tool registration.
      39
      MIT