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
| Name | Required | Description | Default |
|---|---|---|---|
| docId | Yes | ||
| mode | No | ||
| workspaceId | No |
Implementation Reference
- src/tools/docs.ts:179-187 (handler)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); };
- src/tools/docs.ts:193-197 (schema)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() }
- src/tools/docs.ts:188-200 (registration)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 );
- src/tools/docs.ts:201-213 (registration)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 );