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

135 lines (134 loc) 3.34 kB
/** * Types for Atlassian Confluence Pages API */ import { ContentProperty, ContentRepresentation, Label, Operation, OptionalFieldMeta, OptionalFieldLinks, PaginatedResponse, Version } from './vendor.atlassian.types.js'; /** * Page status enum */ export type ContentStatus = 'current' | 'trashed' | 'deleted' | 'draft' | 'archived' | 'historical'; /** * Parent content type enum */ export type ParentContentType = 'page' | 'blogpost'; /** * Page sort order enum */ export type PageSortOrder = 'id' | '-id' | 'created-date' | '-created-date' | 'modified-date' | '-modified-date' | 'title' | '-title'; /** * Body format enum */ export type BodyFormat = 'storage' | 'atlas_doc_format' | 'view' | 'export_view' | 'anonymous_export_view' | 'styled_view' | 'editor'; /** * Body type object - extends ContentRepresentation with no additional fields */ export type BodyType = ContentRepresentation; /** * Body bulk object */ export interface BodySingle { storage?: BodyType; atlas_doc_format?: BodyType; view?: BodyType; } /** * Page links object */ export interface PageLinks { webui: string; editui?: string; tinyui?: string; base?: string; } /** * Like object */ export interface Like { userId: string; createdAt: string; } /** * Page object returned from the API (basic fields) */ export interface Page { id: string; status: ContentStatus; title: string; spaceId: string; parentId: string | null; parentType?: ParentContentType; position?: number | null; authorId: string; ownerId?: string | null; lastOwnerId?: string | null; createdAt: string; version?: Version; body?: BodySingle; _links: PageLinks; } /** * Extended page object with optional fields */ export interface PageDetailed extends Page { labels?: { results: Label[]; meta: OptionalFieldMeta; _links: OptionalFieldLinks; }; properties?: { results: ContentProperty[]; meta: OptionalFieldMeta; _links: OptionalFieldLinks; }; operations?: { results: Operation[]; meta: OptionalFieldMeta; _links: OptionalFieldLinks; }; likes?: { results: Like[]; meta: OptionalFieldMeta; _links: OptionalFieldLinks; }; versions?: { results: Version[]; meta: OptionalFieldMeta; _links: OptionalFieldLinks; }; isFavoritedByCurrentUser?: boolean; } /** * Parameters for listing pages */ export interface ListPagesParams { id?: string[]; spaceId?: string[]; parentId?: string; sort?: PageSortOrder; status?: ContentStatus[]; title?: string; bodyFormat?: BodyFormat; cursor?: string; limit?: number; } /** * Parameters for getting a page by ID */ export interface GetPageByIdParams { bodyFormat?: BodyFormat; getDraft?: boolean; status?: ContentStatus[]; version?: number; includeLabels?: boolean; includeProperties?: boolean; includeOperations?: boolean; includeLikes?: boolean; includeVersions?: boolean; includeVersion?: boolean; includeFavoritedByCurrentUserStatus?: boolean; includeWebresources?: boolean; includeCollaborators?: boolean; } /** * API response for listing pages */ export type PagesResponse = PaginatedResponse<Page>;