Skip to main content
Glama

Claudeus WordPress MCP

by deus-h
taxonomies.ts4.51 kB
/** * WordPress Taxonomies API Client * Handles categories, tags, and custom taxonomies */ import { BaseApiClient } from './base-client.js'; import { PaginatedResponse } from '../types/pagination.js'; import { Category, Tag, Term, Taxonomy, CategoryFilters, TagFilters, TermFilters, CategoryData, TagData, TermData } from '../types/taxonomy.js'; export class TaxonomiesApiClient extends BaseApiClient { // ========================================== // CATEGORIES // ========================================== /** * Get a list of categories with pagination metadata */ async getCategories(filters?: CategoryFilters): Promise<PaginatedResponse<Category[]>> { return this.getPaginated<Category[]>('/categories', filters); } /** * Get a single category by ID */ async getCategory(id: number): Promise<Category> { return this.get<Category>(`/categories/${id}`); } /** * Create a new category */ async createCategory(data: CategoryData): Promise<Category> { return this.post<Category>('/categories', data); } /** * Update an existing category */ async updateCategory(id: number, data: Partial<CategoryData>): Promise<Category> { return this.put<Category>(`/categories/${id}`, data); } /** * Delete a category */ async deleteCategory(id: number, force: boolean = false): Promise<{ deleted: boolean; previous: Category }> { return this.delete<{ deleted: boolean; previous: Category }>(`/categories/${id}?force=${force}`); } // ========================================== // TAGS // ========================================== /** * Get a list of tags with pagination metadata */ async getTags(filters?: TagFilters): Promise<PaginatedResponse<Tag[]>> { return this.getPaginated<Tag[]>('/tags', filters); } /** * Get a single tag by ID */ async getTag(id: number): Promise<Tag> { return this.get<Tag>(`/tags/${id}`); } /** * Create a new tag */ async createTag(data: TagData): Promise<Tag> { return this.post<Tag>('/tags', data); } /** * Update an existing tag */ async updateTag(id: number, data: Partial<TagData>): Promise<Tag> { return this.put<Tag>(`/tags/${id}`, data); } /** * Delete a tag */ async deleteTag(id: number, force: boolean = false): Promise<{ deleted: boolean; previous: Tag }> { return this.delete<{ deleted: boolean; previous: Tag }>(`/tags/${id}?force=${force}`); } // ========================================== // TAXONOMIES // ========================================== /** * Get all registered taxonomies */ async getTaxonomies(): Promise<Record<string, Taxonomy>> { return this.get<Record<string, Taxonomy>>('/taxonomies'); } /** * Get a specific taxonomy by slug */ async getTaxonomy(slug: string): Promise<Taxonomy> { return this.get<Taxonomy>(`/taxonomies/${slug}`); } // ========================================== // CUSTOM TAXONOMY TERMS // ========================================== /** * Get terms from a custom taxonomy with pagination metadata * @param taxonomy The taxonomy slug (e.g., 'category', 'post_tag', 'custom_taxonomy') */ async getTerms(taxonomy: string, filters?: TermFilters): Promise<PaginatedResponse<Term[]>> { return this.getPaginated<Term[]>(`/${taxonomy}`, filters); } /** * Get a single term from a custom taxonomy */ async getTerm(taxonomy: string, id: number): Promise<Term> { return this.get<Term>(`/${taxonomy}/${id}`); } /** * Create a term in a custom taxonomy */ async createTerm(taxonomy: string, data: TermData): Promise<Term> { return this.post<Term>(`/${taxonomy}`, data); } /** * Update a term in a custom taxonomy */ async updateTerm(taxonomy: string, id: number, data: Partial<TermData>): Promise<Term> { return this.put<Term>(`/${taxonomy}/${id}`, data); } /** * Delete a term from a custom taxonomy */ async deleteTerm(taxonomy: string, id: number, force: boolean = false): Promise<{ deleted: boolean; previous: Term }> { return this.delete<{ deleted: boolean; previous: Term }>(`/${taxonomy}/${id}?force=${force}`); } }

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/deus-h/claudeus-wp-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server