Skip to main content
Glama
ttommyth

Interactive MCP

message_complete_notification

Signal completion of tasks or responses by sending cross-platform notifications to users. Use this tool once per message to indicate when work is finished.

Instructions

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
projectNameYesNotification title
messageYesNotification body

Implementation Reference

  • The handler function for the 'message_complete_notification' tool. It extracts projectName and message from input args, sends a desktop notification using node-notifier, and returns a confirmation message.
    (args) => {
      // Use inferred args type
      const { projectName, message } = args;
      notifier.notify({ title: projectName, message });
      return {
        content: [
          {
            type: 'text',
            text: 'Notification sent. You can now wait for user input.',
          },
        ],
      };
    },
  • src/index.ts:153-176 (registration)
    The registration of the tool handler using server.tool(), conditionally based on tool enablement. Includes dynamic description resolution and schema from the tool definition.
    if (isToolEnabled('message_complete_notification')) {
      // Use properties from the imported tool object
      server.tool(
        'message_complete_notification',
        // Description is a string here, but handle consistently
        typeof messageCompleteNotificationTool.description === 'function'
          ? messageCompleteNotificationTool.description(globalTimeoutSeconds) // Should not happen based on definition, but safe
          : messageCompleteNotificationTool.description,
        messageCompleteNotificationTool.schema, // Use schema property
        (args) => {
          // Use inferred args type
          const { projectName, message } = args;
          notifier.notify({ title: projectName, message });
          return {
            content: [
              {
                type: 'text',
                text: 'Notification sent. You can now wait for user input.',
              },
            ],
          };
        },
      );
    }
  • Zod schema (raw shape) defining the input parameters: projectName and message, used for validation in the tool registration.
    const rawSchema: ZodRawShape = {
      projectName: z.string().describe('Notification title'),
      message: z.string().describe('Notification body'),
    };
  • JSON Schema in ToolCapabilityInfo defining the tool's parameters and description for MCP protocol capability declaration.
    const capabilityInfo: ToolCapabilityInfo = {
      description: 'Notify when a response has completed via OS notification.',
      parameters: {
        type: 'object',
        properties: {
          projectName: {
            type: 'string',
            description:
              'Identifies the context/project making the notification (appears in notification title)',
          },
          message: {
            type: 'string',
            description: 'The specific notification text (appears in the body)',
          },
        },
        required: ['projectName', 'message'],
      },
    };
  • Export of the ToolDefinition object combining capability, description, and schema, imported and used in index.ts for registration.
    export const messageCompleteNotificationTool: ToolDefinition = {
      capability: capabilityInfo,
      description: registrationDescription,
      schema: rawSchema, // Use the raw shape here
    };

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/ttommyth/interactive-mcp'

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