UNPKG

@aashari/mcp-server-atlassian-confluence

Version:

Node.js/TypeScript MCP server for Atlassian Confluence. Provides tools enabling AI systems (LLMs) to list/get spaces & pages (content formatted as Markdown) and search via CQL. Connects AI seamlessly to Confluence knowledge bases using the standard MCP in

181 lines (180 loc) 5.84 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.PagesResponseSchema = exports.PageDetailedSchema = exports.PageSchema = exports.OptionalCollectionSchema = exports.OptionalFieldLinksSchema = exports.OptionalFieldMetaSchema = exports.OperationSchema = exports.LabelSchema = exports.ChildTypesSchema = exports.PageParentSchema = exports.PageCollaboratorSchema = exports.WebResourceSchema = exports.PageLinksSchema = exports.BodySchema = exports.VersionSchema = exports.ContentRepresentationSchema = exports.ContentStatusSchema = void 0; /** * Types for Atlassian Confluence Pages API */ const zod_1 = require("zod"); /** * Zod schemas for Confluence API response types */ /** * Content status enum schema */ exports.ContentStatusSchema = zod_1.z.enum([ 'current', 'deleted', 'historical', 'trashed', 'archived', 'draft', ]); /** * Content representation schema */ exports.ContentRepresentationSchema = zod_1.z.object({ representation: zod_1.z.string(), value: zod_1.z.string(), }); /** * Version schema */ exports.VersionSchema = zod_1.z.object({ number: zod_1.z.number(), message: zod_1.z.string().optional(), minorEdit: zod_1.z.boolean().optional(), authorId: zod_1.z.string().optional(), createdAt: zod_1.z.string().optional(), contentTypeModifiedAt: zod_1.z.string().optional(), }); /** * Body schema */ exports.BodySchema = zod_1.z.object({ storage: exports.ContentRepresentationSchema.optional(), view: exports.ContentRepresentationSchema.optional(), export_view: exports.ContentRepresentationSchema.optional(), styled_view: exports.ContentRepresentationSchema.optional(), atlas_doc_format: exports.ContentRepresentationSchema.optional(), wiki: exports.ContentRepresentationSchema.optional(), anonymous_export_view: exports.ContentRepresentationSchema.optional(), }); /** * Page links schema */ exports.PageLinksSchema = zod_1.z.object({ webui: zod_1.z.string().optional(), editui: zod_1.z.string().optional(), tinyui: zod_1.z.string().optional(), base: zod_1.z.string().optional(), next: zod_1.z.string().optional(), }); /** * Web resource schema */ exports.WebResourceSchema = zod_1.z.object({ key: zod_1.z.string(), contexts: zod_1.z.array(zod_1.z.string()), superbatch: zod_1.z.string(), uris: zod_1.z.record(zod_1.z.string()), tags: zod_1.z.array(zod_1.z.string()), }); /** * Page collaborator schema */ exports.PageCollaboratorSchema = zod_1.z.object({ collaboratorId: zod_1.z.string(), businessObjectId: zod_1.z.string(), appearanceId: zod_1.z.string(), }); /** * Page parent schema */ exports.PageParentSchema = zod_1.z.object({ id: zod_1.z.string(), type: zod_1.z.string(), status: zod_1.z.string(), title: zod_1.z.string(), }); /** * Child types schema */ exports.ChildTypesSchema = zod_1.z.object({ attachment: zod_1.z.boolean().optional(), comment: zod_1.z.boolean().optional(), page: zod_1.z.boolean().optional(), }); /** * Label schema (moved from deleted vendor.atlassian.spaces.types.js) */ exports.LabelSchema = zod_1.z.object({ id: zod_1.z.string(), name: zod_1.z.string(), prefix: zod_1.z.string().optional(), }); /** * Operation schema (moved from deleted vendor.atlassian.spaces.types.js) */ exports.OperationSchema = zod_1.z.object({ key: zod_1.z.string().optional(), target: zod_1.z.string().optional(), targetType: zod_1.z.string(), }); /** * Optional field metadata schema (moved from deleted vendor.atlassian.spaces.types.js) */ exports.OptionalFieldMetaSchema = zod_1.z.object({ count: zod_1.z.number().optional(), }); /** * Optional field links schema (moved from deleted vendor.atlassian.spaces.types.js) */ exports.OptionalFieldLinksSchema = zod_1.z.object({ self: zod_1.z.string().optional(), next: zod_1.z.string().optional(), }); /** * Optional collection schema - used for labels, properties, operations, etc. * (moved from deleted vendor.atlassian.spaces.types.js) */ const OptionalCollectionSchema = (itemSchema) => zod_1.z.object({ results: zod_1.z.array(itemSchema), meta: exports.OptionalFieldMetaSchema, _links: exports.OptionalFieldLinksSchema, }); exports.OptionalCollectionSchema = OptionalCollectionSchema; /** * Base page schema (common fields) */ exports.PageSchema = zod_1.z.object({ id: zod_1.z.string(), status: exports.ContentStatusSchema, title: zod_1.z.string(), spaceId: zod_1.z.string(), parentId: zod_1.z.string().nullable().optional(), parentType: zod_1.z.string().nullable().optional(), authorId: zod_1.z.string().optional(), createdAt: zod_1.z.string(), position: zod_1.z.number().nullable().optional(), version: exports.VersionSchema.optional(), _links: exports.PageLinksSchema, body: exports.BodySchema.optional(), }); /** * Detailed page schema */ exports.PageDetailedSchema = exports.PageSchema.extend({ parent: exports.PageParentSchema.optional(), childTypes: exports.ChildTypesSchema.optional(), labels: (0, exports.OptionalCollectionSchema)(exports.LabelSchema).optional(), operations: (0, exports.OptionalCollectionSchema)(exports.OperationSchema).optional(), collaborators: zod_1.z .union([ (0, exports.OptionalCollectionSchema)(exports.PageCollaboratorSchema), zod_1.z.array(zod_1.z.any()), ]) .optional(), webResources: zod_1.z .union([ (0, exports.OptionalCollectionSchema)(exports.WebResourceSchema), zod_1.z.object({}).passthrough(), ]) .optional(), }); /** * Pages response schema */ exports.PagesResponseSchema = zod_1.z.object({ results: zod_1.z.array(exports.PageSchema), _links: exports.PageLinksSchema.optional(), });