Tool Box MCP Server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Tool Box MCP Serverfind tools for data analysis and excel export"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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, 90%+ token savings
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 startTools (11 total)
Tool | Description |
| Find tools by natural language query |
| Explore tool dependencies via Knowledge Graph |
| Get complete tool set for a task |
| Add new tools to registry |
| Remove tools from registry |
| List all registered tools |
| Auto-generate and execute chain from query |
| Execute sequential MCP tool pipeline |
| Analyze chain before execution (schemas, skills, transforms) |
| Refresh chainable tools from MCP servers |
| 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 installStep 2: Run Setup
# This installs Python dependencies and initializes ChromaDB
./scripts/setup.shStep 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 servers to chain with |
| Tool relationships |
| 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 pathUsage 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 results to 2D array |
| Parse JSON string to object |
| Wrap object in array |
| Flatten nested arrays |
| Extract first element |
| Get object keys |
| Get object values |
Development
# Build from source
npm run build
# Run server
npm start
# Type check
npm run typecheckProject 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.jsonTroubleshooting
"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.shLicense
ISC
Available Tools
4 toolstoolhub_clusterGet Tool ClusterARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Natural language query to find a complete tool cluster | |
| include_context | No | Whether to include usage context and examples | |
| response_format | No | Output format | json |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false. The description adds behavioral context by explaining that the tool returns a complete set of tools including primary and dependencies, and provides a sample output structure. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured: a one-sentence title, a brief explanation of how it works, then clearly labelled Args and Returns sections. Every sentence adds value with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has three parameters with full schema coverage, and the description provides a detailed output example including fields like primary, dependencies, context, and stats. Although no output schema exists, the example sufficiently describes the return value for an agent to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the description repeats parameter definitions with slight elaboration (e.g., 'Natural language task description' for query). Since schema already provides descriptions, the description adds marginal value. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get a complete tool cluster for a task query.' It explains it combines vector search and graph expansion to return primary tools, dependencies, and context. This distinguishes it from siblings like toolhub_search (likely semantic matches only) and toolhub_expand (graph expansion on a single tool).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'Use this tool for complete task setup - returns everything needed to start working.' This gives clear guidance on when to use it, but does not explicitly mention when not to use it or compare with alternatives beyond the description of what it returns.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
toolhub_expandExpand Tool GraphARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| depth | No | How many levels of relationships to traverse | |
| tool_name | Yes | Name of the tool to expand (e.g., 'n8n-workflow-builder') | |
| relation_types | No | Filter by relationship types (e.g., ['REQUIRES', 'WORKS_WITH']) | |
| response_format | No | Output format | json |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond annotations (readOnlyHint=true, destructiveHint=false), the description adds significant behavior context: traversal depth limits (default 2, max 4), relation types (REQUIRES, WORKS_WITH, etc.), example output, and explanation of how dependencies are returned. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with sections for arguments, relation types, returns, and usage tip. It is informative but slightly verbose; could be more concise by merging the argument list with the existing schema documentation. Still, every sentence adds useful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description provides an example JSON response, lists all relation types, and explains the depth and filter parameters. For a tool with 4 parameters, this is sufficiently complete for an agent to understand inputs and outputs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Although schema description coverage is 100%, the description adds value by providing an example of tool_name ('n8n-workflow-builder'), explaining relation types, and showing the response format. This goes beyond the schema's basic property descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Expand a tool to find its dependencies via Knowledge Graph.' It uses a specific verb ('expand') and resource ('tool'), and distinguishes itself from sibling tools like toolhub_search, toolhub_health, and toolhub_cluster by focusing on dependency discovery.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear usage guideline: 'Use this tool when you know a primary tool and need to find related tools.' However, it does not explicitly mention when not to use it or directly compare with alternatives, such as using toolhub_search for broader search instead of dependency traversal.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
toolhub_healthHealth CheckARead-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
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true, destructiveHint=false. The description adds value by detailing the return fields (chromadb, knowledgeGraph, toolCount, version), providing context on what the tool checks. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, consisting of a brief sentence and a bullet list of return fields. Every part is informative with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple health check tool with no parameters and no output schema, the description sufficiently explains the return structure. It could mention typical use or that it's a lightweight check, but overall it is complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and schema coverage is 100%. The description does not need to add parameter meaning. A baseline score of 4 is appropriate for a parameterless tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool checks service status and lists the returned fields. The verb 'Check' with resource 'Tool Hub service status' is specific and distinguishes from siblings like search, expand, and cluster.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly state when to use this tool versus alternatives. However, the purpose is clear and the tool has no parameters, making it suitable as a lightweight health check. No usage caveats or exclusions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
toolhub_searchSearch ToolsARead-onlyIdempotent
Search for relevant tools using Vector Search + Knowledge Graph.
This tool finds the most relevant MCP servers, skills, and tools for a given query. It uses semantic similarity (ChromaDB) to find matches and optionally expands results using the Knowledge Graph to include dependencies.
Args:
query (string): Natural language query (e.g., "n8n workflow automation")
limit (number): Maximum tools to return (default: 10, max: 50)
include_graph (boolean): Expand with Knowledge Graph (default: true)
response_format ('json' | 'markdown'): Output format (default: 'json')
Returns: JSON format: { "results": [ { "name": "n8n-workflow-builder", "type": "MCP_Server", "description": "Create and manage n8n workflows", "similarity": 0.89 } ], "stats": { "vectorCount": 3, "graphCount": 4, "totalCount": 7, "tokenEstimate": 7000, "savingsPercent": 92.1 } }
Examples:
"n8n 워크플로우 자동화" → n8n-workflow-builder, n8n-node-templates, ...
"TikTok 데이터 분석" → sqlite_tiktok_analytics, pandas-excel, ...
"Excel 리포트 생성" → pandas-excel, 데이터-구조-파악, ...
Use this tool when you need to find which tools are relevant for a task.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of tools to return | |
| query | Yes | Natural language query to find relevant tools (e.g., 'n8n workflow automation', 'TikTok data analysis') | |
| include_graph | No | Whether to expand results using Knowledge Graph relationships | |
| response_format | No | Output format: 'json' for structured data or 'markdown' for human-readable | json |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, destructiveHint=false, idempotentHint=true. The description adds behavioral details about the search mechanism (semantic similarity via ChromaDB) and knowledge graph expansion. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-organized with a purpose statement, args detail, and examples. While somewhat lengthy, it is front-loaded with the main purpose and each section adds value. Minor redundancy in repeating args that are in schema, but overall structure is good.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description provides a detailed example of the return format, including JSON structure and stats. It explains the mechanism (ChromaDB, KG) and covers all relevant aspects for a tool with 4 parameters and no nested objects.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description includes an 'Args' section that repeats schema information and adds examples, but does not significantly enhance understanding beyond the schema. The example return format is helpful but not required for parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool searches for relevant tools using Vector Search and Knowledge Graph. It specifies the types of items found (MCP servers, skills, tools) and distinguishes from siblings like toolhub_expand, toolhub_health, and toolhub_cluster.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'Use this tool when you need to find which tools are relevant for a task' and provides examples. However, it does not explicitly state when not to use it or contrast with siblings, though context implies that for expansion or cluster operations different tools should be used.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
4 tool updates
v1.0.0- First observed
toolhub_cluster - First observed
toolhub_expand - First observed
toolhub_health - First observed
toolhub_search
TDQS
Each tool has a clear primary function: search, expand, health, and cluster. However, toolhub_cluster combines search and graph expansion, which might cause some confusion with using search and expand separately, but descriptions clarify the distinction.
All tools share the 'toolhub_' prefix, providing consistency. However, the second part mixes verbs (search, expand) and nouns (health, cluster), which is a minor deviation from an ideal verb_noun pattern.
Four tools is well-scoped for a tool discovery server. Each tool serves a distinct and necessary purpose without unnecessary bloat.
The tool set covers the core functions: searching, expanding dependencies, health checking, and full cluster retrieval. A minor gap is the lack of a direct tool for listing all registered tools or browsing categories, but search with broad queries may partially address this.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
AI agent registry — search, discover, register, and connect agents via MCP.
A registry of AI agent tools — MCP servers, APIs, CLIs, SDKs — kept current by automated ingestion.
Pay-per-use tool marketplace for AI agents. Search, price-check, and call APIs via MCP.
Find, compare, and audit software for AI agents. Scored registry of tools and MCP servers.
Related MCP Servers
AlicenseNot gradedqualityCmaintenanceMCP tool discovery for AI agents — find, compare, verify tools across 35+ registries.3MIT- AlicenseNot gradedqualityAmaintenanceAn 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.3,623MIT
- AlicenseNot gradedqualityFmaintenanceMCP server registry and marketplace that enables dynamic discovery, installation, and activation of tools at runtime, allowing AI agents to use new tools without restarting.1267MIT
- AlicenseNot gradedqualityDmaintenanceFederating gateway for AI agents to discover and call tools from multiple MCP servers with intelligent search and dynamic tool registration.39MIT
Appeared in Searches
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Adriftnote/tool-box-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server