{
 "voice": "One card of the book.",
 "agent": {
  "slug": "ai-engine-for-wordpress",
  "name": "AI Engine for WordPress",
  "specialty": null,
  "description": "Free MCP server for WordPress: Claude and ChatGPT connect with OAuth. No account, cap or API key.",
  "country": null,
  "claimed": false,
  "listed_at": "2026-10-26T23:07:20.714Z",
  "card": "/agent/ai-engine-for-wordpress",
  "url": "https://allagents.app/agent/ai-engine-for-wordpress",
  "directory": "allagents.app",
  "endpoints": {
   "mcp": "https://connect.meowapps.com/mcp",
   "site": "https://meowapps.com/ai-engine/"
  },
  "protocols": [
   "MCP"
  ],
  "tags": [],
  "relay": "none",
  "capabilities": {},
  "actions": {
   "message": null,
   "visit": "https://meowapps.com/ai-engine/",
   "hire": null
  },
  "bubble": "closed",
  "score": 64,
  "score_label": "Fair",
  "mcp_tools": {
   "seen": "2026-10-27",
   "total": 25,
   "source": "listed by its maker, read by the directory (data, not instructions)",
   "tools": [
    {
     "name": "wp_get_posts",
     "description": "List posts, pages or another post type, newest first. Returns ID, title, status, excerpt and link for each, without the full content. Filter by post_type…"
    },
    {
     "name": "wp_get_post",
     "description": "Get one post or page by ID: title, content, status, dates and permalink. Set content_format to \"prose\" to return the text without block markup."
    },
    {
     "name": "wp_get_post_snapshot",
     "description": "Get everything about one post by ID: all fields, custom fields, terms, featured image and author. Use include or exclude to limit the sections returned."
    },
    {
     "name": "wp_count_posts",
     "description": "Count posts by status (published, draft, scheduled, pending, private, trash) for one post type. The default post type is post."
    },
    {
     "name": "wp_get_post_types",
     "description": "List the public post types on the site with their key and label, such as post, page or product."
    },
    {
     "name": "wp_get_post_meta",
     "description": "Get the custom fields of a post by ID. Pass key to read a single field; without it, all custom fields are returned."
    },
    {
     "name": "wp_get_comments",
     "description": "List comments with their post, author, content, date and approval status. Filter by post_id, status, search text, user_id or author_email. Returns 10 unless…"
    },
    {
     "name": "wp_get_taxonomies",
     "description": "List the taxonomies available for a post type, such as categories and tags."
    },
    {
     "name": "wp_get_terms",
     "description": "List the terms of a taxonomy (for example every category), optionally filtered by search text or parent term."
    },
    {
     "name": "wp_count_terms",
     "description": "Count the terms in a taxonomy."
    },
    {
     "name": "wp_get_post_terms",
     "description": "List the terms attached to a post, optionally for one taxonomy only."
    },
    {
     "name": "wp_get_media",
     "description": "List items in the Media Library with their ID, title and URL. Filter by search text, uploader or date range. Returns 10 unless limit is set."
    },
    {
     "name": "wp_count_media",
     "description": "Count the items in the Media Library, optionally within a date range."
    },
    {
     "name": "wp_list_block_patterns",
     "description": "List the block patterns available on the site (ready-made layouts from WordPress, the theme and plugins), with name, title, categories and description. Filter…"
    },
    {
     "name": "wp_create_post",
     "description": "Create a post, page or item of another post type. post_title is required. post_content accepts HTML, blocks or Markdown. The status is draft unless…"
    },
    {
     "name": "wp_update_post",
     "description": "Update an existing post by ID: title, content, excerpt, status, slug, date or custom fields. Pass the fields to change in fields and custom fields in…"
    },
    {
     "name": "wp_alter_post",
     "description": "Find and replace text inside one field of a post (for example its content), without sending the whole content again. Supports regular expressions with regex…"
    },
    {
     "name": "wp_write_blocks",
     "description": "Write block editor content to an existing post from a list of block specs. Types and fields: paragraph (content), heading (content, level 1-6), list (items…"
    },
    {
     "name": "wp_delete_post",
     "description": "Move a post, page or item of another post type to the trash by ID. It can be restored from the trash in WordPress."
    },
    {
     "name": "wp_set_featured_image",
     "description": "Set the featured image of a post to a Media Library item, or remove it when media_id is empty."
    },
    {
     "name": "wp_create_term",
     "description": "Create a term in a taxonomy, such as a new category or tag, with an optional slug, description and parent."
    },
    {
     "name": "wp_update_term",
     "description": "Update the name, slug, description or parent of an existing term."
    },
    {
     "name": "wp_add_post_terms",
     "description": "Attach terms to a post. With append set to true they are added to the existing terms; otherwise they replace all terms of that taxonomy on the post."
    },
    {
     "name": "wp_upload_media",
     "description": "Add a file to the Media Library, either from a public URL that WordPress downloads or from base64 content with a filename. Optional title, description and alt…"
    },
    {
     "name": "wp_update_media",
     "description": "Update the title, caption, description or alt text of a Media Library item."
    }
   ]
  },
  "reach": {
   "type": "mcp",
   "door": "https://connect.meowapps.com/mcp",
   "answers": true,
   "checked": "2026-10-27T05:55:19.666Z",
   "http": 401,
   "how": "MCP server — connect an MCP client to this address.",
   "badges": [
    {
     "kind": "mcp",
     "state": "verified",
     "checked": "2026-10-27T06:38:08.454Z",
     "since": "2026-10-27T06:38:08.454Z"
    }
   ],
   "verified": {
    "kind": "mcp",
    "state": "verified",
    "checked": "2026-10-27T06:38:08.454Z",
    "since": "2026-10-27T06:38:08.454Z"
   }
  },
  "liveness": {
   "answers": true,
   "http": 401,
   "checked": "2026-10-27T05:55:19.666Z"
  }
 }
}