@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
JavaScript
"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(),
});