hypertool-mcp
Hypertool-mcp centralizes and manages AI tools from multiple MCP servers by organizing them into focused 'toolsets' to enhance AI performance and overcome tool limits.
Discover Available Tools: List all tools from connected MCP servers with metadata, namespaced names, and reference IDs
Create & Manage Toolsets: Build custom toolsets by selecting specific tools, with options to auto-equip and save configurations
Dynamic Tool Control: Equip/unequip toolsets to dynamically filter available tools, ensuring only relevant tools are exposed to the AI
Toolset Operations: List, delete, and get detailed status of saved toolsets including tool counts and server information
Tool Annotations: Add contextual notes and guidance to individual tools within toolsets to improve AI tool selection
Server Organization: Group MCP servers logically by project or environment for easier management
Enhanced AI Performance: Improve focus, decision-making speed, and accuracy by providing task-specific, curated tool contexts while bypassing typical AI tool limits
Distributed through npm, allowing easy installation and updates via the npm package registry.
Built with TypeScript, providing type safety and better developer experience for those extending or modifying the 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., "@hypertool-mcpswitch to my coding toolset"
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.
โก Features
๐ Break Free from Tool Limits
Connect unlimited MCP servers. Use 10, 50, or 500+ tools total - your AI only sees what it needs.
๐ฏ Task-Specific Toolsets
Build "git-essentials" with 5 tools instead of drowning in 47 Git commands. Switch contexts instantly.
๐ง Smart Tool Descriptions
Enhance tools with examples and context. Watch your AI pick the right tool 89% more often.
Related MCP server: mcp-all-in-one
๐ Quick Start
Step 1: Copy Your Existing Config
# In your project directory
cp .mcp.json .mcp.hypertool.jsonStep 2: Point Your AI to HyperTool
Replace your .mcp.json with:
{
"mcpServers": {
"hypertool": {
"command": "npx",
"args": ["-y", "@toolprint/hypertool-mcp", "mcp", "run", "--mcp-config", ".mcp.hypertool.json"]
}
}
}Step 3: Create Your First Toolset
Restart your AI and try:
You: "Create a toolset called 'coding' with git and docker tools"
AI: "Created 'coding' toolset with 15 focused tools"
You: "Switch to coding toolset"
AI: "Equipped! I now have just the tools needed for development"That's it! Your AI is now focused and effective. ๐
๐ก Want automated setup? Try our interactive setup command - see Advanced Guide for details.
๐ Configuration Mode: HyperTool uses a smart Configuration Mode to keep toolset management separate from your operational tools. Learn more in the Configuration Mode Guide.
๐ญ Personas: Pre-configured Tool Bundles (NEW!)
Don't want to configure from scratch? Use personas - ready-to-use MCP server bundles with pre-built toolsets.
What are Personas?
Think of personas as "app bundles" for your AI - they come with:
โ Pre-configured MCP servers
โ Curated toolsets for specific workflows
โ Everything you need to get started instantly
Quick Start with Personas
# 1. Clone the persona collection
git clone https://github.com/toolprint/awesome-mcp-personas
# 2. Add a persona (e.g., web-dev persona)
hypertool-mcp persona add awesome-mcp-personas/personas/web-dev
# 3. Run with the persona
npx -y @toolprint/hypertool-mcp mcp run --persona web-devThat's it! No server configuration needed. The persona brings its own servers and toolsets.
๐ฆ Browse all available personas: awesome-mcp-personas
Available Personas
Persona | Included Servers | Best For |
web-dev | Git, Docker, Filesystem, Browser, Testing | Full-stack web development |
data-scientist | Python, Jupyter, Database, Filesystem, Plotting | Data analysis & ML workflows |
devops | Docker, Kubernetes, AWS, Terraform, Monitoring | Infrastructure & deployment |
content-creator | Notion, Slack, Grammar, SEO, Social | Writing & content management |
researcher | Perplexity, Arxiv, Wikipedia, Filesystem | Research & knowledge work |
Persona vs Standard Mode
# Standard Mode (use your existing MCP servers):
npx -y @toolprint/hypertool-mcp mcp run --mcp-config .mcp.hypertool.json
# Persona Mode (bundled servers + pre-built toolsets):
npx -y @toolprint/hypertool-mcp mcp run --persona web-dev
# Persona Mode with specific toolset:
npx -y @toolprint/hypertool-mcp mcp run --persona web-dev --equip-toolset frontend๐ก Pro tip: Personas can be mixed with your existing servers! Add --mcp-config to include your custom servers alongside the persona's servers.
๐ Learn more: See the complete Personas Guide for detailed instructions, creating custom personas, and troubleshooting.
๐ Context Measurement (NEW!)
See exactly how much context each tool consumes. Optimize your toolsets with token estimates for every tool.
Why it matters:
๐ฏ Optimize context usage - Identify heavyweight tools consuming your context window
๐ Make informed decisions - See token costs before adding tools to toolsets
๐ Compare alternatives - Find lighter tools that do the same job
๐ก Budget your context - Understand exactly what you're exposing to your AI
How to use:
Ask your AI to use these MCP tools to see context information:
list-available-tools- Shows token estimates for all available toolsget-active-toolset- Shows token usage for your currently equipped toolset
Each tool displays estimated tokens and percentage of total context consumed. Perfect for building lean, efficient toolsets!
๐ฌ Demo
Hotswap toolsets across 100+ tools
Targeted toolsets across any number of MCPs. Swap to the best toolset for a goal with a tool call. Dynamic tool registration.
๐๏ธ How It Works
Before: Tool Chaos ๐ต
โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Claude/ โโโโถโ 50+ tools from 8 servers โ
โ Cursor โ โ โ Wrong picks โ
โ โ โ โ Slow decisions โ
โ โ โ โ Confused context โ
โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
After: Expert Mode ๐ฏ
โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโ
โ Claude/ โโโโถโ HyperTool โโโโถโ ALL Your Tools โ
โ Cursor โ โ (Local) โ โ (Same servers) โ
โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโ
โ Smart Toolsets โ
โ ๐จ coding (5) โ โ "I'm coding now"
โ ๐ writing (3) โ โ "I'm writing now"
โ ๐ analysis (4) โ โ "I'm analyzing now"
โโโโโโโโโโโโโโโโโโโ
โ
Expert picks every timeWhat's a "Toolset"? Think Playlists for Your AI
Just like Spotify playlists organize your music, toolsets organize your AI tools:
ALL YOUR TOOLS (64 total) YOUR TOOLSETS
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโ
โ ๐ณ Docker (19 tools) โ โ ๐จ "coding" โ
โ โข build_image โ โโโโโถ โ โข git.status โ
โ โข create_container โ โ โ โข git.commit โ
โ โข run_container โ โ โ โข docker.build โ
โ โข stop_container โ โ โ โข docker.run โ
โ โข [... 15 more] โ โ โ โข github.pr โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค โ โโโโโโโโโโโโโโโโโโโโ
โ ๐ Git (12 tools) โโโโโค
โ โข status โ โ โโโโโโโโโโโโโโโโโโโโ
โ โข commit โ โ โ ๐ "writing" โ
โ โข push โ โโโโโถ โ โข notion.create โ
โ โข [... 9 more] โ โ โข slack.send โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค โ โข grammarly.fix โ
โ ๐ Notion (8 tools) โโโโโโโ โโโโโโโโโโโโโโโโโโโโ
โ ๐ฌ Slack (6 tools) โ โ
โ ๐ Linear (10 tools) โ โ โโโโโโโโโโโโโโโโโโโโ
โ ๐งช Testing (9 tools) โ โโโถ โ ๐ "debugging" โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ โข logs.search โ
โ โข docker.logs โ
AI sees ALL 64 tools = confused ๐ต โ โข traces.view โ
โโโโโโโโโโโโโโโโโโโโ
AI sees 3-5 tools = focused ๐ฏ๐ผ Real-World Toolsets
Create focused toolsets for different workflows:
๐จ Development Mode
"deep-coding": git + docker + filesystem (12 tools)
โ Everything you need for feature development
"code-review": git + github + linear (10 tools)
โ Review PRs, update tickets, merge with confidence
"debugging": logs + docker + traces + alerts (8 tools)
โ Find and fix issues fast๐ Content Creation
"writing": notion + grammarly + slack (6 tools)
โ Blog posts, docs, and team updates
"research": perplexity + notion + filesystem (7 tools)
โ Deep dives with organized notes๐ฌ Real Chat Example
You: "I need to debug our API"
AI: "I'll switch to the debugging toolset for better focus"
[Now has: logs, traces, curl, docker]
You: "Actually, let's write the incident report"
AI: "Switching to writing toolset"
[Now has: notion, slack, templates]๐ก Pro tip: Start with 3-5 tools per toolset. Your AI will thank you!
๐ All Features
Explore everything HyperTool can do:
Feature | Description | Guide |
๐ญ Personas | Pre-configured MCP server bundles with curated toolsets. Get started instantly with ready-to-use workflows for web-dev, data science, DevOps, and more. | |
๐ Server Groups | Organize MCP servers into logical groups. Launch related servers together, switch between projects, and maintain focused contexts. | |
๐ Context Measurement | See token estimates for every tool. Optimize your toolsets by understanding exactly how much context each tool consumes. | |
๐ง Configuration Mode | Smart separation of toolset management from operational tools. Keep your AI focused on work, not configuration. | |
๐ฏ Dynamic Toolsets | Build, modify, and switch between toolsets on the fly. Adapt your AI's capabilities to match your current task. | |
๐ง Tool Annotations | Enhance tools with custom descriptions, examples, and context. Improve your AI's tool selection accuracy by 89%. | |
๐ HTTP Mode | Run HyperTool as a long-lived HTTP server for persistent connections and faster response times. | |
๐ Unlimited Servers | Connect as many MCP servers as you need. Break free from the 100-tool limit without sacrificing performance. |
โ FAQ
General Questions
Q: How is this different from just using MCP servers directly? A: HyperTool lets you use unlimited MCP servers without hitting the 100-tool limit, and dynamically switches between focused toolsets for better AI performance.
Q: What's the difference between Personas and Standard Mode? A: Standard Mode uses your existing MCP server configurations. Personas are pre-packaged bundles that include both MCP servers AND curated toolsets - perfect for getting started quickly or trying new workflows.
Q: Can I use multiple toolsets at once?
A: In stdio mode (default), use --equip-toolset <name> when launching. HTTP mode supports one active toolset but you can switch anytime.
Q: Where are my toolsets and configurations stored?
A: Everything is stored locally in ~/.toolprint/hypertool-mcp/:
Personas:
~/.toolprint/hypertool-mcp/personas/Toolsets:
~/.toolprint/hypertool-mcp/toolsets/Preferences:
~/.toolprint/hypertool-mcp/config/You can directly edit these files when HyperTool is not running.
Setup & Compatibility
Q: Does this work with Claude Desktop / Cursor / Claude Code? A: Yes! Cursor has full hot-swapping support. Claude Desktop works with restart. Claude Code hot-swap coming soon.
Q: What if an MCP server goes down? A: HyperTool monitors health and automatically reconnects when servers come back. Your toolsets stay intact.
Q: Can I share toolsets with my team? A: Import/export is coming soon! For now, you can copy and share toolset files - they'll work if your team has the same MCP servers configured.
Q: How accurate are the token estimates in context measurement? A: The estimates use BPE-based approximation for consistent relative comparisons between tools. They're perfect for understanding which tools consume more context, but not exact counts since different LLMs use different tokenizers.
Q: Does context measurement slow down my toolsets? A: No! Token counts are cached and add less than 10ms overhead. You won't notice any performance impact.
Technical Questions
Q: How do I add tools from a new MCP server?
A: Just add the server to your .mcp.hypertool.json config. It's automatically available for toolsets.
Q: Can I use this in production? A: Yes! For enterprise support, contact us.
๐ฎ App Compatibility
Works with ANY MCP-compatible app! HyperTool is a standard MCP server, so if your app supports MCP, it supports HyperTool.
Hot-swap Toolsets Without Restarts
App | Status | How to Switch Toolsets |
Cursor/VSCode | โ Full support | Switch toolsets instantly - no restart needed! |
Claude Code | โณ Coming soon | Use |
Claude Desktop | โณ In progress | Restart app after switching toolsets |
๐ Learn More
๐ญ Personas Guide - Complete guide to using and creating personas
๐ฌ Research & Performance - Why focused toolsets work
๐ Advanced Features - Tool annotations, HTTP mode, CLI
๐ง Troubleshooting - Common issues and solutions
๐ Examples & Recipes - Toolset patterns for every workflow
๐ ๏ธ Development Setup
Prerequisites
Node.js 18+
Python 3.8+ (for pre-commit hooks)
Quick Setup
# Clone and install
git clone https://github.com/toolprint/hypertool-mcp.git
cd hypertool-mcp
just setup-dev # Installs dependencies and pre-commit hooksPre-commit Hooks
This project uses pre-commit hooks to ensure code quality:
# Install pre-commit hooks (included in setup-dev)
just setup-pre-commit
# Run hooks manually
just pre-commit-check # On staged files
just pre-commit-check-all # On all files
# Skip hooks for emergency commits (use sparingly)
SKIP=eslint,typescript git commit -m "emergency fix"Available Commands
just build # Build the project
just test # Run tests
just lint # Run linting
just format # Format code
just typecheck # Check types
just pre-publish-checks # Run all quality checksService command
The hypertool-mcp service subcommand is currently disabled and will exit with a
notification when invoked.
๐ค Contributing
Found a bug? Have an idea? We'd love your help!
๐ Report issues
๐ก Share ideas
๐ง Submit PRs
๐ License
MIT License - see LICENSE file for details.
Built by developers who got tired of watching AI pick the wrong tools ๐ฏ
Available Tools
8 toolsadd-tool-annotationA
Add contextual annotations to a tool in the current toolset to guide LLM usage. Annotations provide user-specific guidance, best practices, and usage notes that will be displayed with the tool's description. Example: {toolRef: {namespacedName: 'linear.create_issue'}, notes: [{name: 'team-selection', note: 'Always confirm team with user first'}]}
| Name | Required | Description | Default |
|---|---|---|---|
| notes | Yes | Array of annotations to add to the tool. Each annotation has a name (identifier) and note (content). | |
| toolRef | Yes | Reference to the tool (use namespacedName or refId). Use list-available-tools to find the correct reference. |
Output Schema
| Name | Required | Description |
|---|---|---|
| tool | Yes | Tool that was annotated |
| errors | No | Error messages for failed annotations |
| toolset | Yes | Name of the toolset that was updated |
| addedNotes | Yes | Notes that were successfully added |
| errorCount | Yes | Number of annotations that failed to be added |
| successCount | Yes | Number of annotations successfully added |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It explains the tool's purpose and provides an example, but doesn't disclose important behavioral traits like whether annotations are persistent across sessions, if they override existing ones, what permissions are required, or how they integrate with the toolset system. The example helps but leaves operational details unclear.
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 perfectly front-loaded with the core purpose in the first sentence, followed by supporting details about what annotations provide, and concludes with a practical example. Every sentence earns its place with no redundant information, making it efficient and well-structured.
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 the tool's moderate complexity (2 parameters with nested objects), 100% schema coverage, and presence of an output schema, the description is reasonably complete. It explains the purpose and provides an example, though it could benefit from mentioning how these annotations affect tool usage in practice or referencing the output schema's role.
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?
With 100% schema description coverage, the baseline is 3. The description adds value by providing a concrete example that illustrates how both parameters (toolRef and notes) work together in practice, showing the structure of annotations with specific field examples. This enhances understanding beyond the schema's technical definitions.
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 specific action ('Add contextual annotations'), target resource ('to a tool in the current toolset'), and purpose ('to guide LLM usage'). It distinguishes this from sibling tools like 'list-available-tools' or 'build-toolset' by focusing on annotation management rather than tool discovery or set construction.
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 clear context about when to use this tool ('to guide LLM usage') and includes an example annotation structure. However, it doesn't explicitly state when NOT to use it or mention alternatives like modifying existing annotations versus adding new ones, which prevents a perfect score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
build-toolsetA
Build and save a custom toolset by selecting specific tools. Like assembling tools from a workshop - pick the exact tools you need for a specific task or workflow. You must specify which tools to include. Each tool must specify either namespacedName or refId for identification. Example: {name: 'dev-essentials', tools: [{namespacedName: 'git.status'}, {namespacedName: 'docker.ps'}], autoEquip: true} creates and immediately equips a development toolset.
| Name | Required | Description | Default |
|---|---|---|---|
| autoEquip | No | Automatically equip this toolset after creation (default: false) | |
| description | No | Optional description of what this toolset is for (e.g., 'Essential tools for web development') | |
| name | Yes | Name for the new toolset. Use lowercase with hyphens (e.g., 'dev-essentials', 'git-workflow', 'debug-kit') | |
| tools | Yes | Array of tools to include in the toolset. Each tool must specify either namespacedName or refId for identification. Use list-available-tools to see available options. |
Output Schema
| Name | Required | Description |
|---|---|---|
| meta | Yes | Operation metadata |
| toolset | No | Toolset information (only present if successful) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It clearly indicates this is a creation/save operation ('Build and save'), mentions the auto-equip behavior, and provides an example. However, it doesn't disclose important behavioral aspects like whether duplicate toolset names are allowed, what happens on failure, or if there are rate limits.
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 efficiently structured with a clear purpose statement, helpful analogy, essential requirements, and a concrete example. Every sentence adds value without redundancy, and the example demonstrates proper usage while reinforcing key concepts.
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 the tool's complexity (creation operation with 4 parameters) and the presence of an output schema, the description provides good coverage of the core functionality. It explains the purpose, requirements, and includes a helpful example. However, with no annotations, it could better address behavioral aspects like error conditions or constraints.
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?
With 100% schema description coverage, the baseline is 3. The description adds meaningful context beyond the schema by explaining the purpose of tool selection ('pick the exact tools you need'), providing a concrete example with specific tool names, and emphasizing the requirement to specify tools with either namespacedName or refId.
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 specific action ('Build and save a custom toolset') and resource ('by selecting specific tools'), distinguishing it from siblings like delete-toolset or equip-toolset. The workshop analogy reinforces the core purpose of assembling tools for specific tasks.
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 clear context for when to use this tool ('for a specific task or workflow') and mentions using list-available-tools to see options, but doesn't explicitly state when NOT to use it or contrast it with alternatives like add-tool-annotation for modifying existing toolsets.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete-toolsetC
Delete a saved toolset configuration
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | No | Confirm deletion (required to actually delete) | |
| name | Yes | Name of the toolset to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions deletion but fails to detail critical aspects like permissions required, whether deletion is reversible, confirmation requirements beyond the 'confirm' parameter, or error handling. This leaves significant gaps for a destructive operation.
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 a single, direct sentence that states the tool's purpose without unnecessary words. It is front-loaded and efficient, making it easy to understand at a glance, with no wasted verbiage.
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 the tool's destructive nature and lack of annotations or output schema, the description is insufficient. It does not cover behavioral traits like safety warnings, return values, or error conditions, leaving the agent with incomplete information for proper invocation in a complex environment.
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 input schema has 100% description coverage, clearly documenting both parameters ('name' and 'confirm'). The description does not add any semantic details beyond what the schema provides, such as explaining the 'confirm' parameter's role in safety or naming conventions. Baseline 3 is appropriate as the schema handles the parameter documentation adequately.
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 action ('Delete') and the resource ('a saved toolset configuration'), making the purpose immediately understandable. It distinguishes from siblings like 'list-saved-toolsets' or 'build-toolset' by specifying deletion. However, it doesn't explicitly differentiate from potentially similar destructive operations among siblings, keeping it at 4 rather than 5.
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 no guidance on when to use this tool versus alternatives, such as 'unequip-toolset' or other siblings. It lacks context about prerequisites, dependencies, or scenarios where deletion is appropriate, offering only a basic statement of function without usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
equip-toolsetC
Equip a saved toolset configuration to filter available tools
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Name of the toolset to equip |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It mentions 'filter available tools' which hints at read-only behavior, but doesn't clarify if this is a mutation (e.g., changing system state), what permissions are needed, or what happens on success/failure. For a tool with zero annotation coverage, this is insufficient behavioral disclosure.
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 a single, efficient sentence that directly states the tool's purpose without redundancy. It's front-loaded with the core action and resource, making it easy to parse. Every word earns its place.
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 the complexity (toolset management), lack of annotations, and no output schema, the description is incomplete. It doesn't explain what 'equip' entails operationally, how filtering works, or what the agent should expect after invocation. This leaves significant gaps for effective tool use.
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 description coverage is 100%, with the single parameter 'name' documented as 'Name of the toolset to equip'. The description adds no additional parameter semantics beyond this, such as format examples or constraints. With high schema coverage, the baseline score of 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 action ('equip') and the resource ('saved toolset configuration'), specifying that it 'filters available tools'. This provides a specific verb+resource combination. However, it doesn't explicitly differentiate from sibling tools like 'get-active-toolset' or 'build-toolset', which prevents a perfect score.
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 no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing a saved toolset first), exclusions, or comparisons to siblings like 'unequip-toolset' or 'get-active-toolset'. This leaves the agent without context for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get-active-toolsetB
Get detailed information about the currently equipped toolset including availability status
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| toolset | No | Toolset information (only present if equipped) |
| equipped | Yes | Whether a toolset is currently equipped |
| warnings | Yes | List of warnings |
| toolSummary | No | Tool summary information |
| exposedTools | Yes | Tools grouped by server |
| serverStatus | No | Server status summary |
| unavailableServers | Yes | List of unavailable server names |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool retrieves information, implying a read-only operation, but doesn't specify if it requires authentication, has rate limits, returns structured data, or handles errors. The description adds minimal context beyond the basic purpose.
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 a single, efficient sentence that front-loads the core purpose ('Get detailed information about the currently equipped toolset') and adds a clarifying detail ('including availability status'). There is zero waste, and every word earns its place.
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 the tool has 0 parameters, 100% schema coverage, and an output schema exists (so return values are documented elsewhere), the description is minimally adequate. However, as a read operation with no annotations, it lacks behavioral details like authentication needs or error handling, leaving some gaps in context.
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 0 parameters, and schema description coverage is 100%, so no parameter documentation is needed. The description doesn't add parameter details, which is appropriate here. Baseline is 4 for zero parameters, as it avoids unnecessary complexity.
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 verb ('Get detailed information') and resource ('currently equipped toolset'), specifying what information is retrieved ('including availability status'). It distinguishes from siblings like 'list-available-tools' or 'list-saved-toolsets' by focusing on the currently equipped toolset, though it doesn't explicitly contrast them.
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 no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing an equipped toolset first), exclusions, or compare it to siblings like 'list-available-tools' for broader listings. Usage is implied by the purpose but not explicitly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list-available-toolsARead-onlyIdempotent
Discover all tools available from connected MCP servers. Returns structured data showing tools grouped by server for toolset creation. Tools can be referenced by 'namespacedName' (e.g., 'git.status') or 'refId' (unique hash). Example: Call with no parameters to see all tools organized by server with detailed metadata for each tool.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| summary | Yes | High-level statistics about available tools |
| toolsByServer | Yes | Tools organized by their source server |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover key behavioral traits (read-only, non-destructive, idempotent, closed-world), so the description adds value by explaining the return structure ('structured data showing tools grouped by server') and referencing methods ('namespacedName' or 'refId'). It does not disclose additional aspects like rate limits or auth needs, but does not contradict 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 appropriately sized and front-loaded, starting with the core purpose. Each sentence adds value: the first defines the action, the second explains the return data and referencing methods, and the third provides a usage example, 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?
Given the tool's low complexity (0 parameters), rich annotations, and presence of an output schema, the description is complete. It covers purpose, return structure, and usage example, leaving output details to the schema, making it fully adequate for the agent's needs.
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?
With 0 parameters and 100% schema description coverage, the baseline is high. The description compensates by explaining that no parameters are needed ('Call with no parameters'), which clarifies usage beyond the empty schema, though it does not add semantic details about non-existent parameters.
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 specific action ('Discover all tools available from connected MCP servers') and resource ('tools'), distinguishing it from sibling tools like 'list-saved-toolsets' which deals with saved toolsets rather than available tools. It provides concrete examples of how tools can be referenced, making the purpose unambiguous.
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 clear context on when to use this tool ('to see all tools organized by server with detailed metadata'), including an example call with no parameters. However, it does not explicitly state when not to use it or name alternatives among siblings, such as 'get-active-toolset' for currently equipped tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list-saved-toolsetsA
List all saved toolset configurations with detailed information including server configurations and tool counts
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| error | No | Error message if the operation failed |
| success | Yes | Whether the operation was successful |
| toolsets | Yes | Array of toolset information |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses that the tool lists configurations with 'detailed information including server configurations and tool counts', which adds useful context about return content. However, it doesn't mention behavioral traits like pagination, rate limits, or authentication needs, leaving gaps for a read operation.
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 a single, efficient sentence that front-loads the core action ('List all saved toolset configurations') and adds specific details ('with detailed information including server configurations and tool counts'). Every word earns its place with no waste.
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 the tool's complexity (simple read operation with no parameters) and the presence of an output schema (which handles return values), the description is reasonably complete. It specifies the resource and details included in the output, though it could benefit from more behavioral context like usage scenarios or limitations.
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 0 parameters with 100% schema description coverage, so the schema fully documents the lack of inputs. The description doesn't need to add parameter semantics, and it appropriately doesn't mention any. Baseline is 4 for zero parameters, as it avoids unnecessary details.
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 verb 'List' and resource 'all saved toolset configurations', specifying the scope. It distinguishes from siblings like 'get-active-toolset' by listing all saved ones, but doesn't explicitly differentiate from 'list-available-tools' which might list different resources.
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?
No guidance is provided on when to use this tool versus alternatives like 'get-active-toolset' for the currently active toolset or 'list-available-tools' for available tools. The description implies usage for retrieving saved configurations but lacks explicit context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
unequip-toolsetB
Unequip the currently equipped toolset and show all available tools
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It states the tool unequips and shows available tools, but doesn't clarify if this is a read-only operation, if it requires specific permissions, what happens to the unequipped toolset (e.g., saved or lost), or any rate limits. This is inadequate for a mutation-like tool with zero annotation coverage.
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 a single, efficient sentence that front-loads the primary action ('unequip') and includes the secondary effect. There is no wasted verbiage, and it directly communicates the tool's function without 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?
Given no annotations, no output schema, and the tool's complexity (involving state change and listing), the description is incomplete. It lacks details on behavioral traits (e.g., permissions, side effects), return values, or error conditions. This leaves significant gaps for an agent to use the tool effectively.
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 0 parameters with 100% schema description coverage, so the schema fully documents the absence of inputs. The description adds no parameter-specific information, which is appropriate here. Baseline is 4 for zero parameters, as no compensation is needed.
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 action ('unequip') and resource ('currently equipped toolset'), and mentions the secondary effect ('show all available tools'). It distinguishes from siblings like 'equip-toolset' and 'get-active-toolset' by focusing on removal rather than addition or retrieval. However, it doesn't explicitly contrast with all siblings (e.g., 'delete-toolset' also removes but permanently).
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?
No explicit guidance on when to use this tool versus alternatives is provided. The description implies usage when switching from an equipped toolset to viewing available tools, but doesn't specify prerequisites (e.g., must have an active toolset) or compare to siblings like 'delete-toolset' for permanent removal. This leaves gaps in agent decision-making.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool has a clearly distinct purpose with no overlap: add-tool-annotation modifies tool metadata, build-toolset creates custom sets, delete-toolset removes saved sets, equip-toolset activates a set, get-active-toolset retrieves current set info, list-available-tools discovers all tools, list-saved-toolsets shows saved configurations, and unequip-toolset deactivates the current set. The descriptions clearly differentiate between creation, management, activation, and discovery operations.
All tools follow a consistent verb-noun pattern with hyphen separation: add-tool-annotation, build-toolset, delete-toolset, equip-toolset, get-active-toolset, list-available-tools, list-saved-toolsets, unequip-toolset. The naming convention is perfectly uniform throughout the set, making it easy to understand each tool's function from its name alone.
With 8 tools, this is well-scoped for a toolset management server. Each tool earns its place by covering distinct aspects of the domain: tool annotation, toolset creation, deletion, activation, status checking, tool discovery, saved toolset listing, and deactivation. The count is neither too sparse nor bloated for managing custom tool configurations.
The tool surface provides complete CRUD/lifecycle coverage for toolset management: create (build-toolset), read (get-active-toolset, list-available-tools, list-saved-toolsets), update (add-tool-annotation modifies tool behavior), and delete (delete-toolset). It also covers activation/deactivation (equip-toolset, unequip-toolset) and discovery operations, leaving no obvious gaps for managing custom toolsets.
Maintenance
Related MCP Connectors
Search, inspect and invoke every public tool on Invokera through one MCP connection.
Search, vet & assemble MCP servers from your agent: verified tools, risk labels, and trust scores.
Toolbox dynamically routes to all MCPs in the Smithery registry based on your agent's need. When aโฆ
Unified gateway exposing 150+ tools across all NexGenData MCP servers via one endpoint.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceMCP that can proxy any GraphQL API and expose graphql operations as mcp tools.4518Apache 2.0
- AlicenseNot gradedqualityDmaintenanceAggregates multiple MCP services into a single unified interface with self-configuration capabilities, enabling dynamic addition and removal of tools via conversation.2670MIT

mcp-server-metatoolofficial
AlicenseNot gradedqualityCmaintenanceA proxy MCP server that aggregates tools from multiple MCP servers and forwards calls to the appropriate server, used with the Metatool App for GUI tool management.5Apache 2.0- AlicenseAqualityDmaintenanceAggregates tools from multiple MCP servers, acting as a proxy to provide unified access to various AI agents and tools.10153MIT
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/toolprint/hypertool-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server