Skip to main content
Glama
index.ts2.23 kB
import type { FeiShuServices } from '@/services/index.js'; import type { Logger, ToolGroup, ToolsConfig } from '@/typings/index.js'; /** * MCP Tools Registry * * This module organizes and exports all available MCP tools. */ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js'; import { registerBotTools } from './bot-tools.js'; import { registerChatTools } from './chat-tools.js'; import { registerDocumentTools } from './document-tools.js'; import { registerSheetTools } from './sheet-tools.js'; /** * Tool registration parameters */ export interface ToolRegistryParams { server: McpServer; services: FeiShuServices; logger: Logger; toolsConfig?: ToolsConfig; } /** * Check if a tool group is enabled * @param group - Tool group to check * @param config - Tools configuration * @returns Whether the tool group is enabled */ function isToolGroupEnabled(group: ToolGroup, config?: ToolsConfig): boolean { if (!config) return true; // If enabled list is specified, only those groups are enabled if (config.enabled && config.enabled.length > 0) { return config.enabled.includes(group); } // If disabled list is specified, all except those are enabled if (config.disabled && config.disabled.length > 0) { return !config.disabled.includes(group); } // Default: all enabled return true; } /** * Register all tools with the MCP server * * @param params - Tool registration parameters */ export function registerAllTools(params: ToolRegistryParams): void { const { toolsConfig, logger } = params; // Register document-related tools if (isToolGroupEnabled('document', toolsConfig)) { registerDocumentTools(params); logger.info('Document tools registered'); } // Register bot-related tools if (isToolGroupEnabled('bot', toolsConfig)) { registerBotTools(params); logger.info('Bot tools registered'); } // Register chat-related tools if (isToolGroupEnabled('chat', toolsConfig)) { registerChatTools(params); logger.info('Chat tools registered'); } // Register sheet-related tools if (isToolGroupEnabled('sheet', toolsConfig)) { registerSheetTools(params); logger.info('Sheet tools registered'); } }

Latest Blog Posts

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/opsworld30/feishu-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server