@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
160 lines (159 loc) • 2.95 kB
TypeScript
/**
* Common types for Atlassian Confluence API
*/
/**
* Label object
*/
export interface Label {
id: string;
name: string;
prefix?: string;
}
/**
* Operation object
*/
export interface Operation {
operation: string;
targetType: string;
}
/**
* Optional field metadata
*/
export interface OptionalFieldMeta {
hasMore: boolean;
}
/**
* Optional field links
*/
export interface OptionalFieldLinks {
next?: string;
}
/**
* Common response links
*/
export interface ResponseLinks {
next?: string;
base?: string;
self?: string;
context?: string;
}
/**
* Generic paginated response structure
*/
export interface PaginatedResponse<T> {
results: T[];
_links: ResponseLinks;
}
/**
* Version object
*/
export interface Version {
createdAt: string;
message?: string;
number: number;
minorEdit?: boolean;
authorId: string;
}
/**
* Content property object
*/
export interface ContentProperty {
id: string;
key: string;
value: string;
}
/**
* Common description format types
*/
export type DescriptionFormat = 'plain' | 'view';
/**
* Generic content representation
*/
export interface ContentRepresentation {
value: string;
representation: string;
}
/**
* Common search excerpt strategy
*/
export type ExcerptStrategy = 'highlight' | 'indexed' | 'none' | 'highlight_unescaped' | 'indexed_unescaped';
export interface ApiErrorDetail {
/**
* The error message
*/
message: string;
}
export interface ApiError {
/**
* Array of error details
*/
errorMessages: string[];
/**
* Object with error details as key-value pairs
*/
errors: Record<string, string>;
/**
* HTTP status code
*/
status?: number;
/**
* Original error object (for debugging)
*/
originalError?: unknown;
}
export interface ApiPagination {
/**
* Maximum number of items to return per page
*/
maxResults?: number;
/**
* Index of the first item to return (0-based)
*/
startAt?: number;
}
export interface ApiResponse<T> {
/**
* The response data
*/
data: T;
/**
* The HTTP status code
*/
status: number;
/**
* The HTTP status text
*/
statusText: string;
/**
* The response headers
*/
headers: Record<string, string>;
}
export interface PaginatedResult<T> {
/**
* The array of results
*/
values: T[];
/**
* The index of the first item returned (0-based)
*/
startAt: number;
/**
* The maximum number of items that could be returned
*/
maxResults: number;
/**
* The total number of items
*/
total: number;
/**
* Whether the maximum number of items has been reached
*/
isLast: boolean;
}
export interface FormattedResult {
/**
* The formatted content as Markdown
*/
content: string;
}