Skip to main content

WordPress

Read and write a WordPress site's posts, pages, categories, tags and comments; search the site and reference its media library.

Connect a self-hosted WordPress site (5.6+) with an Application Password to work it end to end: draft, publish, update and trash posts and pages, manage categories and tags, moderate and reply to comments, search across the site, and reference existing media - all as a WordPress user whose role sets the permission ceiling.

Connect

Credential fieldRequiredWhere it comes from
Username (USERNAME)YesWordPress login name of the user the tools act as - their role is the permission ceiling.
Application password (APPLICATION_PASSWORD)YesFrom wp-admin → Users → Profile → Application Passwords. WordPress shows it once; spaces are fine - they are stripped.
SettingRequiredWhat it is
Site URL (SITE_URL)YesThe site's base address including any subdirectory, e.g. https://example.com/blog - every request stays under it.

Tools

ToolAccessWhat it does
Who am I (yekar.wordpress.me)ReadThe WordPress user this connection acts as - id, display name, username, and roles. The roles are the permission ceiling for every other tool; call this to verify the connection works and see what it may do.
List posts (yekar.wordpress.list-posts)ReadThe site's posts - title, status, dates, excerpt, category/tag ids (no content; use Get post for that). Filter by search text, status, category, tag, author, or date range; paginate for more. total/totalPages come from the site's own count.
Get post (yekar.wordpress.get-post)ReadOne post with its full HTML content (capped at ~60k chars with a truncated flag), title, status, dates, excerpt, and category/tag ids. Pass raw: true to get the raw editor content for round-trip editing.
List pages (yekar.wordpress.list-pages)ReadThe site's pages - title, status, dates, excerpt, parent id for hierarchy (no content; use Get page for that). Filter by search text, status, or parent; paginate for more. total/totalPages come from the site's own count.
Get page (yekar.wordpress.get-page)ReadOne page with its full HTML content (capped at ~60k chars with a truncated flag), title, status, dates, and parent id. Pass raw: true to get the raw editor content for round-trip editing.
List categories (yekar.wordpress.list-categories)ReadThe site's categories - id, name, slug, post count, parent id. The ids are what List posts filters by and what create/update-post attach. Search by name; paginate for more.
List tags (yekar.wordpress.list-tags)ReadThe site's tags - id, name, slug, post count. The ids are what List posts filters by and what create/update-post attach. Search by name; paginate for more.
List comments (yekar.wordpress.list-comments)ReadComments, newest first - author, status, plain-text content, and the post they belong to. Filter by post, status (the moderation queue is status: hold), or search text; paginate for more.
List media (yekar.wordpress.list-media)ReadThe site's media library - id, title, type, MIME type, and source URL, for referencing existing media from post content (uploading new media is not supported yet). Search or filter by type; paginate for more.
Search site (yekar.wordpress.search)ReadSearch across the site's posts and pages at once - id, title, URL, and whether each hit is a post or a page. Use Get post / Get page with the returned id for the content.
Create post (yekar.wordpress.create-post)WriteCreate a post authored as the connected user. Defaults to a DRAFT - pass status: publish to go live, or a future date to schedule. Content is HTML; categories/tags attach by term id.
Update post (yekar.wordpress.update-post)WriteEdit a post's title, content, excerpt, slug, status (publish/unpublish), date, categories, or tags - omitted fields keep their value, but categories and tags REPLACE the whole set when passed.
Delete post (yekar.wordpress.delete-post)WriteMove a post to the trash (restorable from wp-admin). Pass force: true to delete it permanently instead - that is irreversible. Trashing an already-trashed post is a conflict.
Create page (yekar.wordpress.create-page)WriteCreate a page authored as the connected user. Defaults to a DRAFT - pass status: publish to go live. Content is HTML; parent places it in the page hierarchy.
Update page (yekar.wordpress.update-page)WriteEdit a page's title, content, slug, status (publish/unpublish), date, or parent - omitted fields keep their value.
Create category (yekar.wordpress.create-category)WriteCreate a category (requires the connected user's manage-terms capability, typically Administrator/Editor). If the name already exists, the conflict error carries the existing term's id - use that id instead of retrying.
Create tag (yekar.wordpress.create-tag)WriteCreate a tag (requires the connected user's manage-terms capability, typically Administrator/Editor). If the name already exists, the conflict error carries the existing term's id - use that id instead of retrying.
Create comment (yekar.wordpress.create-comment)WritePost a comment on a post as the connected user - top-level, or a threaded reply via parent. Re-running posts a second comment.
Moderate comment (yekar.wordpress.moderate-comment)WriteSet a comment's moderation status to an absolute value: approve, hold, spam, or trash. Requires the connected user's moderation capability (typically Editor+).

Notes

  • Create (or pick) a WordPress user with exactly the role Yekar.AI should hold - Author can publish their own posts, Editor can edit everything, Administrator can also manage categories and tags.
  • In wp-admin go to Users → Profile → Application Passwords, name a new password (e.g. "Yekar.AI") and paste the user's login name and the generated password here - spaces in the password are fine.
  • Set the Site URL to the site's base address including any subdirectory WordPress lives under, e.g. https://example.com or https://example.com/blog.
  • The site must be served over HTTPS (WordPress disables Application Passwords on plain HTTP) with pretty permalinks enabled (Settings → Permalinks) - intranet/localhost sites are not reachable.
  • Tools act as the connected user: posts and comments are authored as them, and their role is the permission ceiling.