Skip to main content
Glama
evalstate

Hugging Face MCP Server

by evalstate
capability-utils.ts2.06 kB
import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js'; import type { ServerCapabilities } from '@modelcontextprotocol/sdk/types.js'; import type { McpApiClient } from './mcp-api-client.js'; import { logger } from './logger.js'; export interface RegisterCapabilitiesOptions { /** * Whether resources have been registered on the server * If true, the resources capability will be included */ hasResources?: boolean; } /** * Registers MCP capabilities on a server instance * * This utility function handles: * - Configuring tools, prompts, and resources capabilities * - Determining listChanged flags based on transport mode * - Removing auto-added completions capability * * @param server - The McpServer instance to register capabilities on * @param sharedApiClient - The shared API client for transport info * @param options - Configuration options for capabilities */ export function registerCapabilities( server: McpServer, sharedApiClient: McpApiClient, options: RegisterCapabilitiesOptions = {} ): void { const transportInfo = sharedApiClient.getTransportInfo(); const { hasResources = false } = options; const capabilities: ServerCapabilities = { tools: { listChanged: !transportInfo?.jsonResponseEnabled, }, prompts: { listChanged: false, }, ...(hasResources ? { resources: { listChanged: false, }, } : {}), }; server.server.registerCapabilities(capabilities); // Remove the completions capability that was auto-added by prompt registration // The MCP SDK automatically adds this when prompts are registered, but we don't want it // https://github.com/modelcontextprotocol/typescript-sdk/pull/1024 // @ts-expect-error quick workaround for an SDK issue (adding prompt/resource adds completions) if (server.server._capabilities?.completions) { // @ts-expect-error quick workaround for an SDK issue (adding prompt/resource adds completions) delete server.server._capabilities.completions; logger.debug('Removed auto-added completions capability'); } }

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/evalstate/hf-mcp-server'

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