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

145 lines (144 loc) 3.39 kB
/** * Types for Atlassian Confluence Spaces API */ import { ContentProperty, ContentRepresentation, DescriptionFormat, Label, Operation, OptionalFieldMeta, OptionalFieldLinks, PaginatedResponse } from './vendor.atlassian.types.js'; /** * Space type enum */ export type SpaceType = 'global' | 'personal' | 'collaboration' | 'knowledge_base'; /** * Space status enum */ export type SpaceStatus = 'current' | 'archived'; /** * Space sort order enum */ export type SpaceSortOrder = 'id' | '-id' | 'key' | '-key' | 'name' | '-name'; /** * Space description object */ export interface SpaceDescription { plain?: ContentRepresentation; view?: ContentRepresentation; } /** * Space icon object */ export interface SpaceIcon { path?: string; apiDownloadLink?: string; } /** * Space links object */ export interface SpaceLinks { webui: string; base?: string; } /** * Space property object - alias for ContentProperty with no additional fields */ export type SpaceProperty = ContentProperty; /** * Permission subject object */ export interface PermissionSubject { type: 'user' | 'group'; identifier: string; } /** * Space permission assignment object */ export interface SpacePermissionAssignment { id: string; subject: PermissionSubject; operation: Operation; } /** * Space role assignment object */ export interface SpaceRoleAssignment { id: string; role: string; subject: PermissionSubject; } /** * Space object returned from the API (basic fields) */ export interface Space { id: string; key: string; name: string; type: SpaceType; status: SpaceStatus; authorId: string; createdAt: string; homepageId: string; description?: SpaceDescription; icon?: SpaceIcon; _links: SpaceLinks; currentActiveAlias?: string; } /** * Extended space object with optional fields */ export interface SpaceDetailed extends Space { labels?: { results: Label[]; meta: OptionalFieldMeta; _links: OptionalFieldLinks; }; properties?: { results: SpaceProperty[]; meta: OptionalFieldMeta; _links: OptionalFieldLinks; }; operations?: { results: Operation[]; meta: OptionalFieldMeta; _links: OptionalFieldLinks; }; permissions?: { results: SpacePermissionAssignment[]; meta: OptionalFieldMeta; _links: OptionalFieldLinks; }; roleAssignments?: { results: SpaceRoleAssignment[]; meta: OptionalFieldMeta; _links: OptionalFieldLinks; }; } /** * Parameters for listing spaces */ export interface ListSpacesParams { ids?: string[]; keys?: string[]; type?: SpaceType; status?: SpaceStatus; labels?: string[]; favoritedBy?: string; notFavoritedBy?: string; sort?: SpaceSortOrder; descriptionFormat?: DescriptionFormat; includeIcon?: boolean; cursor?: string; limit?: number; } /** * Parameters for getting a space by ID */ export interface GetSpaceByIdParams { descriptionFormat?: DescriptionFormat; includeIcon?: boolean; includeOperations?: boolean; includeProperties?: boolean; includePermissions?: boolean; includeRoleAssignments?: boolean; includeLabels?: boolean; } /** * API response for listing spaces */ export type SpacesResponse = PaginatedResponse<Space>;