@myea/wordpress-mcp-handler
Version:
Advanced WordPress MCP request handler with intelligent search, multi-locale support, and comprehensive content management capabilities
317 lines • 9.25 kB
TypeScript
export interface WordPressPost {
id?: number;
date?: string;
date_gmt?: string;
guid?: {
rendered: string;
};
modified?: string;
modified_gmt?: string;
slug?: string;
status?: 'publish' | 'draft' | 'private' | 'pending' | 'future';
type?: string;
link?: string;
title?: {
rendered: string;
};
content?: {
rendered: string;
protected: boolean;
};
excerpt?: {
rendered: string;
protected: boolean;
};
author?: number;
featured_media?: number;
comment_status?: 'open' | 'closed';
ping_status?: 'open' | 'closed';
sticky?: boolean;
template?: string;
format?: string;
meta?: Record<string, any>;
categories?: number[];
tags?: number[];
acf?: Record<string, any>;
}
export interface CreatePostRequest {
title: string;
content: string;
status?: 'publish' | 'draft' | 'private' | 'pending';
excerpt?: string;
author?: number;
categories?: number[];
tags?: number[];
meta?: Record<string, any>;
featured_media?: number;
comment_status?: 'open' | 'closed';
ping_status?: 'open' | 'closed';
sticky?: boolean;
template?: string;
format?: string;
}
export interface UpdatePostRequest {
id: number;
title?: string;
content?: string;
status?: 'publish' | 'draft' | 'private' | 'pending';
excerpt?: string;
categories?: number[];
tags?: number[];
meta?: Record<string, any>;
}
export interface WordPressPage {
id?: number;
date?: string;
date_gmt?: string;
guid?: {
rendered: string;
};
modified?: string;
modified_gmt?: string;
slug?: string;
status?: 'publish' | 'draft' | 'private' | 'pending';
type?: string;
link?: string;
title?: {
rendered: string;
};
content?: {
rendered: string;
protected: boolean;
};
excerpt?: {
rendered: string;
protected: boolean;
};
author?: number;
featured_media?: number;
comment_status?: 'open' | 'closed';
ping_status?: 'open' | 'closed';
menu_order?: number;
parent?: number;
template?: string;
meta?: Record<string, any>;
}
export interface CreatePageRequest {
title: string;
content: string;
status?: 'publish' | 'draft' | 'private' | 'pending';
parent?: number;
menu_order?: number;
template?: string;
meta?: Record<string, any>;
}
export interface WordPressMedia {
id?: number;
date?: string;
date_gmt?: string;
guid?: {
rendered: string;
};
modified?: string;
modified_gmt?: string;
slug?: string;
status?: 'inherit' | 'private';
type?: string;
link?: string;
title?: {
rendered: string;
};
author?: number;
comment_status?: 'open' | 'closed';
ping_status?: 'open' | 'closed';
template?: string;
meta?: Record<string, any>;
description?: {
rendered: string;
};
caption?: {
rendered: string;
};
alt_text?: string;
media_type?: 'image' | 'file' | 'video' | 'audio';
mime_type?: string;
media_details?: {
width?: number;
height?: number;
file?: string;
sizes?: Record<string, any>;
};
post?: number;
source_url?: string;
}
export interface UploadMediaRequest {
file: Buffer | string;
filename: string;
mimeType: string;
title?: string;
alt_text?: string;
caption?: string;
description?: string;
post?: number;
}
export interface WordPressCategory {
id?: number;
count?: number;
description?: string;
link?: string;
name?: string;
slug?: string;
taxonomy?: string;
parent?: number;
meta?: Record<string, any>;
}
export interface WordPressTag {
id?: number;
count?: number;
description?: string;
link?: string;
name?: string;
slug?: string;
taxonomy?: string;
meta?: Record<string, any>;
}
export interface WordPressUser {
id?: number;
username?: string;
name?: string;
first_name?: string;
last_name?: string;
email?: string;
url?: string;
description?: string;
link?: string;
locale?: string;
nickname?: string;
slug?: string;
roles?: string[];
capabilities?: Record<string, boolean>;
extra_capabilities?: Record<string, boolean>;
avatar_urls?: Record<string, string>;
meta?: Record<string, any>;
}
export interface WordPressComment {
id?: number;
post?: number;
parent?: number;
author?: number;
author_name?: string;
author_email?: string;
author_url?: string;
author_ip?: string;
author_user_agent?: string;
date?: string;
date_gmt?: string;
content?: {
rendered: string;
};
link?: string;
status?: 'hold' | 'approve' | 'spam' | 'trash';
type?: string;
author_avatar_urls?: Record<string, string>;
meta?: Record<string, any>;
}
export interface SearchParams {
search?: string;
author?: number;
author_exclude?: number[];
before?: string;
after?: string;
exclude?: number[];
include?: number[];
offset?: number;
order?: 'asc' | 'desc';
orderby?: 'author' | 'date' | 'id' | 'include' | 'modified' | 'parent' | 'relevance' | 'slug' | 'title';
per_page?: number;
page?: number;
status?: string[];
categories?: number[];
categories_exclude?: number[];
tags?: number[];
tags_exclude?: number[];
sticky?: boolean;
meta_key?: string;
meta_value?: string;
meta_compare?: '=' | '!=' | '>' | '>=' | '<' | '<=' | 'LIKE' | 'NOT LIKE' | 'IN' | 'NOT IN' | 'BETWEEN' | 'NOT BETWEEN' | 'EXISTS' | 'NOT EXISTS';
meta_query?: Array<{
key: string;
value?: any;
compare?: string;
type?: 'NUMERIC' | 'BINARY' | 'CHAR' | 'DATE' | 'DATETIME' | 'DECIMAL' | 'SIGNED' | 'TIME' | 'UNSIGNED';
}>;
}
export interface SiteInfo {
name?: string;
description?: string;
url?: string;
admin_email?: string;
timezone?: string;
date_format?: string;
time_format?: string;
start_of_week?: number;
language?: string;
use_smilies?: boolean;
default_category?: number;
default_post_format?: string;
posts_per_page?: number;
default_ping_status?: 'open' | 'closed';
default_comment_status?: 'open' | 'closed';
}
export declare class WordPressConnector {
private client;
private config;
private auth;
private wpConfig;
constructor();
private loadConfig;
private extractAuthConfig;
private createAxiosInstance;
testConnection(): Promise<any>;
getPosts(params?: SearchParams): Promise<any>;
getPost(id: number): Promise<any>;
createPost(request: CreatePostRequest): Promise<any>;
updatePost(request: UpdatePostRequest): Promise<any>;
deletePost(id: number, force?: boolean): Promise<any>;
getPages(params?: SearchParams): Promise<any>;
getPage(id: number): Promise<any>;
createPage(request: CreatePageRequest): Promise<any>;
updatePage(id: number, updateData: Partial<CreatePageRequest>): Promise<any>;
deletePage(id: number, force?: boolean): Promise<any>;
getMedia(params?: SearchParams): Promise<any>;
getMediaItem(id: number): Promise<any>;
uploadMedia(request: UploadMediaRequest): Promise<any>;
updateMedia(id: number, updateData: Partial<UploadMediaRequest>): Promise<any>;
deleteMedia(id: number, force?: boolean): Promise<any>;
getCategories(params?: SearchParams): Promise<any>;
getCategory(id: number): Promise<any>;
createCategory(name: string, description?: string, parent?: number): Promise<any>;
updateCategory(id: number, name?: string, description?: string, parent?: number): Promise<any>;
deleteCategory(id: number, force?: boolean): Promise<any>;
getTags(params?: SearchParams): Promise<any>;
getTag(id: number): Promise<any>;
createTag(name: string, description?: string): Promise<any>;
updateTag(id: number, name?: string, description?: string): Promise<any>;
deleteTag(id: number, force?: boolean): Promise<any>;
getUsers(params?: SearchParams): Promise<any>;
getUser(id: number): Promise<any>;
getCurrentUser(): Promise<any>;
getComments(params?: SearchParams): Promise<any>;
getComment(id: number): Promise<any>;
createComment(post: number, content: string, author_name?: string, author_email?: string): Promise<any>;
updateComment(id: number, content?: string, status?: 'hold' | 'approve' | 'spam' | 'trash'): Promise<any>;
deleteComment(id: number, force?: boolean): Promise<any>;
searchContent(query: string, postType?: string, params?: SearchParams): Promise<any>;
enhancedSearch(query: string, options?: {
includePosts?: boolean;
includePages?: boolean;
includeMedia?: boolean;
fuzzyMatching?: boolean;
includeMeta?: boolean;
}): Promise<any>;
getSiteInfo(): Promise<any>;
getContentBySlug(slug: string, postType?: string): Promise<any>;
getPostRevisions(postId: number): Promise<any>;
getContentStats(): Promise<any>;
}
//# sourceMappingURL=wordpress-connector.d.ts.map