Skip to main content
Glama

publish_doc

Make documents publicly accessible by specifying the workspace and document ID using the 'publish_doc' tool on AFFiNE MCP Server, supporting both Page and Edgeless modes.

Instructions

Publish a doc (make public).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
docIdYes
modeNo
workspaceIdNo

Implementation Reference

  • The handler function that performs the actual logic of publishing a document via GraphQL mutation.
    const publishDocHandler = async (parsed: { workspaceId?: string; docId: string; mode?: "Page" | "Edgeless" }) => {
        const workspaceId = parsed.workspaceId || defaults.workspaceId;
        if (!workspaceId) {
          throw new Error("workspaceId is required. Provide it as a parameter or set AFFINE_WORKSPACE_ID in environment.");
        }
        const mutation = `mutation PublishDoc($workspaceId:String!,$docId:String!,$mode:PublicDocMode){ publishDoc(workspaceId:$workspaceId, docId:$docId, mode:$mode){ id workspaceId public mode } }`;
        const data = await gql.request<{ publishDoc: any }>(mutation, { workspaceId, docId: parsed.docId, mode: parsed.mode });
        return text(data.publishDoc);
      };
  • Zod input schema defining parameters for the publish_doc tool: workspaceId (optional), docId (required), mode (optional: Page or Edgeless).
    inputSchema: {
      workspaceId: z.string().optional(),
      docId: z.string(),
      mode: z.enum(["Page","Edgeless"]).optional()
    }
  • Registration of the 'publish_doc' tool with the MCP server, including title, description, input schema, and handler reference.
    server.registerTool(
      "publish_doc",
      {
        title: "Publish Document",
        description: "Publish a doc (make public).",
        inputSchema: {
          workspaceId: z.string().optional(),
          docId: z.string(),
          mode: z.enum(["Page","Edgeless"]).optional()
        }
      },
      publishDocHandler as any
    );
  • Alias registration of the 'affine_publish_doc' tool using the same handler.
    server.registerTool(
      "affine_publish_doc",
      {
        title: "Publish Document",
        description: "Publish a doc (make public).",
        inputSchema: {
          workspaceId: z.string().optional(),
          docId: z.string(),
          mode: z.enum(["Page","Edgeless"]).optional()
        }
      },
      publishDocHandler as any
    );

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/DAWNCR0W/affine-mcp-server'

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