@usethoth/mcp-server
Version:
Model Context Protocol server for Thoth content creation platform
235 lines • 4.88 kB
TypeScript
import { z } from 'zod';
/**
* Platform types supported by Thoth
*/
export declare const platformSchema: z.ZodEnum<{
twitter: "twitter";
instagram: "instagram";
linkedin: "linkedin";
facebook: "facebook";
threads: "threads";
blog: "blog";
reddit: "reddit";
}>;
export type Platform = z.infer<typeof platformSchema>;
/**
* Content length options
*/
export declare const lengthSchema: z.ZodEnum<{
"very-short": "very-short";
short: "short";
medium: "medium";
long: "long";
}>;
export type ContentLength = z.infer<typeof lengthSchema>;
/**
* Post status types
*/
export type PostStatus = 'draft' | 'scheduled' | 'published' | 'archived';
/**
* Platform-specific content
*/
export interface PlatformContent {
content: string;
hashtags?: string[];
}
/**
* Generated image data
*/
export interface GeneratedImage {
id: string;
url: string;
prompt: string;
style: string;
}
/**
* Create post request parameters
*/
export interface CreatePostParams {
content: string;
platforms: Platform[];
scheduleTime?: string;
createImage?: boolean;
length?: ContentLength;
createHashtags?: boolean;
postToSocialNetworks?: boolean;
brandStyleId?: string;
}
/**
* Post response from API
*/
export interface PostResponse {
postId: string;
originalContent: string;
platformContents: Record<string, PlatformContent>;
status: PostStatus;
scheduledAt?: string;
publishedAt?: string;
images?: GeneratedImage[];
socialPostId?: string;
createdAt: string;
updatedAt: string;
}
/**
* API error response
*/
export interface ApiError {
success: false;
error: string;
code?: string;
}
/**
* API success response
*/
export interface ApiSuccess<T> {
success: true;
data: T;
}
export type ApiResponse<T> = ApiSuccess<T> | ApiError;
/**
* Brand colors configuration
*/
export interface BrandColors {
primary1?: string;
primary2?: string;
primary3?: string;
secondary1?: string;
secondary2?: string;
background1?: string;
background2?: string;
}
/**
* Brand logo information
*/
export interface BrandLogo {
style?: string;
exists?: boolean;
position?: string;
confidence?: number;
extracted_colors?: string[];
}
/**
* Brand identity information
*/
export interface BrandIdentity {
logo?: BrandLogo;
tagline?: string | null;
brand_name?: string;
primary_colors?: string[];
secondary_colors?: string[];
}
/**
* Brand tone configuration
*/
export interface BrandTone {
voice?: string;
style?: string;
syntax?: string[];
emotion?: string[];
purpose?: string;
audience?: string;
keywords?: string[];
language?: string[];
character?: string[];
}
/**
* Visual mood configuration
*/
export interface VisualMood {
energy_level?: string;
time_preference?: string;
emotional_keywords?: string[];
}
/**
* Artistic style configuration
*/
export interface ArtisticStyle {
texture?: string;
detail_level?: string;
}
/**
* Brand visual elements configuration
*/
export interface BrandVisualElements {
avoid_elements?: string[];
recurring_motifs?: string[];
must_include_elements?: string[];
}
/**
* Imagery style configuration
*/
export interface ImageryStyle {
tone?: string;
image_type?: string;
visual_mood?: VisualMood;
subject_focus?: string;
artistic_style?: ArtisticStyle;
quality_assessment?: string;
brand_visual_elements?: BrandVisualElements;
}
/**
* Medium information configuration
*/
export interface MediumInfo {
language?: string;
text_density?: string;
}
/**
* Brand style response from API
*/
export interface BrandStyle {
id: string;
name: string;
contentMode: string;
colors?: BrandColors;
tone?: BrandTone;
imageryStyle?: ImageryStyle;
logo?: string;
brandIdentity?: BrandIdentity;
mediumInfo?: MediumInfo;
isDefault?: string;
createdAt: string;
updatedAt?: string;
}
/**
* Pagination metadata
*/
export interface Pagination {
page: number;
limit: number;
total: number;
}
/**
* Paginated posts list response
*/
export interface PostListItem {
id: string;
title?: string;
status: PostStatus;
createdAt: string;
updatedAt?: string;
}
export interface PaginatedPostsResponse {
posts: PostListItem[];
pagination: Pagination;
}
/**
* Update post request parameters
*/
export interface UpdatePostParams {
postId: string;
title?: string;
originalContent?: string;
platformContents?: Record<string, PlatformContent>;
status?: PostStatus;
}
/**
* Configuration for the MCP server
*/
export interface ServerConfig {
apiKey: string;
baseUrl: string;
port?: number;
remote?: boolean;
}
//# sourceMappingURL=types.d.ts.map