UNPKG

hackmd-mcp

Version:

This is a Model Context Protocol (MCP) server for interacting with the [HackMD API](https://hackmd.io/@hackmd-api/developer-portal). It allows AI assistants to perform operations such as:

68 lines (67 loc) 2.3 kB
import { z } from "zod"; // Local type definitions to match HackMD API types var NotePermissionRole; (function (NotePermissionRole) { NotePermissionRole["OWNER"] = "owner"; NotePermissionRole["SIGNED_IN"] = "signed_in"; NotePermissionRole["GUEST"] = "guest"; })(NotePermissionRole || (NotePermissionRole = {})); var CommentPermissionType; (function (CommentPermissionType) { CommentPermissionType["DISABLED"] = "disabled"; CommentPermissionType["FORBIDDEN"] = "forbidden"; CommentPermissionType["OWNERS"] = "owners"; CommentPermissionType["SIGNED_IN_USERS"] = "signed_in_users"; CommentPermissionType["EVERYONE"] = "everyone"; })(CommentPermissionType || (CommentPermissionType = {})); export const CreateNoteOptionsSchema = z.object({ title: z.string().optional().describe("Note title"), content: z.string().optional().describe("Note content"), readPermission: z .enum([ NotePermissionRole.OWNER, NotePermissionRole.SIGNED_IN, NotePermissionRole.GUEST, ]) .optional() .describe("Read permission"), writePermission: z .enum([ NotePermissionRole.OWNER, NotePermissionRole.SIGNED_IN, NotePermissionRole.GUEST, ]) .optional() .describe("Write permission"), commentPermission: z .enum([ CommentPermissionType.DISABLED, CommentPermissionType.FORBIDDEN, CommentPermissionType.OWNERS, CommentPermissionType.SIGNED_IN_USERS, CommentPermissionType.EVERYONE, ]) .optional() .describe("Comment permission"), permalink: z.string().optional().describe("Custom permalink"), }); export const UpdateNoteOptionsSchema = z.object({ content: z.string().optional().describe("New note content"), readPermission: z .enum([ NotePermissionRole.OWNER, NotePermissionRole.SIGNED_IN, NotePermissionRole.GUEST, ]) .optional() .describe("Read permission"), writePermission: z .enum([ NotePermissionRole.OWNER, NotePermissionRole.SIGNED_IN, NotePermissionRole.GUEST, ]) .optional() .describe("Write permission"), permalink: z.string().optional().describe("Custom permalink"), });