MCP Help System Standard v1.0
Universal Help System for Model Context Protocol Serversโ
This document defines a standardized help system that can be implemented across any MCP server to provide users with interactive discovery, search, and guidance capabilities.
Overviewโ
Large MCP servers with many tools need a systematic way for users to discover functionality. This standard provides a consistent 3-tool pattern that makes any server self-documenting and user-friendly.
Standard Componentsโ
Required Tools (3 tools minimum)โ
\{prefix\}_help- Interactive help system with contextual guidance\{prefix\}_search_tools- Search tools by keyword, category, or description\{prefix\}_list_tools_by_category- Browse tools organized by functional categories
Where \{prefix\} is the server's standard tool prefix (e.g., osmo_, eth_, btc_, db_, api_, etc.).
Implementation Structureโ
File Organizationโ
src/tools/help/
โโโ tool-registry.ts # Central metadata registry for all tools
โโโ help.ts # Main interactive help system
โโโ search-tools.ts # Search functionality across tools
โโโ list-by-category.ts # Category-based tool browser
Tool Registry Schemaโ
interface ToolMetadata \{
name: string; // Tool name including prefix
category: string; // Functional category (e.g., "blockchain", "staking")
description: string; // Brief description of functionality
parameters?: string[]; // Key parameter names
examples?: string[]; // Usage examples
tags?: string[]; // Additional searchable keywords
\}
Category Standardsโ
For Blockchain Serversโ
blockchain- Core blockchain operations (blocks, transactions, chain info)account- Account and balance operationsstaking- Validator staking and delegationgovernance- Proposals and votingdefi- DeFi operations (pools, swaps, liquidity)transaction- Transaction preparation and simulationwallet- Wallet management and generation
For General Serversโ
core- Essential server functionalitydata- Data retrieval and queryingadmin- Administrative operationssearch- Search and discovery toolsutility- Helper and utility functions
Tool Implementation Templatesโ
1. Help Tool Templateโ
export async function handleHelp(args: \{ topic?: string \}) \{
const topics = \{
overview: "Server overview and capabilities",
categories: "Available tool categories",
getting_started: "Basic usage examples",
// Add server-specific topics
\};
if (!args.topic) \{
return \{
available_topics: Object.keys(topics),
usage: "Use \{prefix\}_help with a topic for detailed guidance"
\};
\}
// Return topic-specific help content
\}
2. Search Tool Templateโ
export async function handleSearchTools(args: \{ query: string; category?: string \}) \{
const allTools = getToolRegistry();
const results = allTools.filter(tool => \{
const matchesQuery = tool.name.includes(args.query) ||
tool.description.toLowerCase().includes(args.query.toLowerCase());
const matchesCategory = !args.category || tool.category === args.category;
return matchesQuery && matchesCategory;
\});
return \{
query: args.query,
results_count: results.length,
tools: results
\};
\}
3. List by Category Templateโ
export async function handleListByCategory(args: \{ category?: string \}) \{
const allTools = getToolRegistry();
if (!args.category) \{
const categories = [...new Set(allTools.map(t => t.category))];
return \{
available_categories: categories,
usage: "Specify a category to see tools in that group"
\};
\}
const toolsInCategory = allTools.filter(t => t.category === args.category);
return \{
category: args.category,
tool_count: toolsInCategory.length,
tools: toolsInCategory
\};
\}
Integration Guidelinesโ
1. Tool Registrationโ
Each server should maintain a central registry of all tools with metadata:
// src/tools/help/tool-registry.ts
export const TOOL_REGISTRY: ToolMetadata[] = [
\{
name: "prefix_get_info",
category: "core",
description: "Get basic server information",
parameters: ["format"],
examples: ["prefix_get_info", "prefix_get_info format=json"]
\},
// ... all other tools
];
2. Main Server Integrationโ
// In main index.ts
import \{ handleHelp, handleSearchTools, handleListByCategory \} from './tools/help';
// Register help tools
server.setRequestHandler(ListToolsRequestSchema, async () => (\{
tools: [
// ... other tools
\{
name: "prefix_help",
description: "Get interactive help and guidance",
inputSchema: \{
type: "object",
properties: \{
topic: \{ type: "string", description: "Help topic" \}
\}
\}
\},
\{
name: "prefix_search_tools",
description: "Search tools by keyword or category",
inputSchema: \{
type: "object",
properties: \{
query: \{ type: "string", description: "Search query" \},
category: \{ type: "string", description: "Filter by category" \}
\},
required: ["query"]
\}
\},
\{
name: "prefix_list_tools_by_category",
description: "Browse tools organized by category",
inputSchema: \{
type: "object",
properties: \{
category: \{ type: "string", description: "Category name" \}
\}
\}
\}
]
\}));
Benefitsโ
For Usersโ
- Discoverability - Find relevant tools quickly in large servers
- Learning - Understand server capabilities through structured exploration
- Consistency - Same help pattern across all MCP servers
- Self-service - Reduce need for external documentation
For Developersโ
- Documentation - Self-documenting tool registries
- Maintenance - Centralized metadata management
- Testing - Registry enables comprehensive tool validation
- Standards - Consistent implementation patterns
Examples by Server Typeโ
Blockchain Server (Osmosis Example)โ
osmo_helpwith topics: overview, staking, pools, governance, defi, transactions- 119 tools organized across 20+ categories
- Search across DeFi, staking, governance functionality
Database Server (Example)โ
db_helpwith topics: overview, queries, admin, backup, performance- Categories: core, query, admin, backup, monitoring, utility
API Server (Example)โ
api_helpwith topics: overview, auth, endpoints, rate_limits- Categories: auth, data, monitoring, admin, utility
Implementation Checklistโ
- Create
src/tools/help/directory structure - Implement tool registry with all server tools
- Create the 3 required help tools
- Integrate help tools into main server
- Test help system functionality
- Update server README with help system documentation
Versioningโ
- v1.0 - Initial standard with 3-tool pattern
- Future versions may add optional tools like
prefix_get_examples,prefix_validate_usage
Contributingโ
This standard is designed to evolve. Improvements and extensions welcome through:
- Implementation feedback from various server types
- Additional tool patterns that prove universally useful
- Enhanced metadata schemas for specialized server types
Licenseโ
This standard is provided under MIT license for universal adoption across the MCP ecosystem.
This standard was developed from the successful implementation in the Osmosis MCP server, which demonstrated the value of structured help systems for servers with 119+ tools.