# Smithery.ai configuration for Claudeus WordPress MCP
name: "Claudeus WordPress MCP"
description: "The most comprehensive WordPress MCP server - 145 production-ready tools for complete WordPress management with AI"
version: "3.0.0"
author:
  name: "Amadeus Samiel H."
  email: "deus.h@outlook.com"
organization:
  name: "Deusware"
  website: "https://deusware.se"
homepage: "https://deusware.se"
repository: "https://github.com/deus-h/claudeus-wp-mcp"

startCommand:
  type: stdio
  configSchema:
    type: object
    properties:
      WP_SITES_PATH:
        type: string
        description: "Path to WordPress sites configuration JSON file"
        default: "./wp-sites.json"
        examples: ["./wp-sites.json", "/app/config/wp-sites.json"]
      PORT:
        type: number
        description: "Port number for the MCP server (for health checks)"
        default: 3000
        minimum: 1024
        maximum: 65535
      NODE_ENV:
        type: string
        description: "Node environment (development/production)"
        enum: ["development", "production"]
        default: "production"
      DEBUG:
        type: string
        description: "Debug configuration pattern"
        default: "claudeus:*"
        examples: ["claudeus:*", "claudeus:wp,claudeus:mcp"]
      AUTH_TYPE:
        type: string
        description: "Default WordPress authentication type"
        enum: ["basic", "jwt"]
        default: "basic"
      SSL_VERIFY:
        type: boolean
        description: "Verify SSL certificates for WordPress connections"
        default: true
      LOG_LEVEL:
        type: string
        description: "Logging level"
        enum: ["error", "warn", "info", "debug"]
        default: "info"
      BATCH_SIZE:
        type: number
        description: "Maximum number of items to process in a batch"
        default: 100
        minimum: 1
        maximum: 1000
    additionalProperties: false

  commandFunction: |-
    (config) => {
      // Ensure configuration files exist
      const fs = require('fs');
      const path = require('path');
      
      // Helper function to copy example if target doesn't exist
      const copyExampleIfNeeded = (examplePath, targetPath) => {
        if (!fs.existsSync(targetPath) && fs.existsSync(examplePath)) {
          fs.copyFileSync(examplePath, targetPath);
        }
      };

      // Copy example files if needed
      copyExampleIfNeeded('wp-sites.json.example', 'wp-sites.json');
      copyExampleIfNeeded('.env.example', '.env');

      const env = {
        WP_SITES_PATH: config.WP_SITES_PATH || "./wp-sites.json",
        PORT: config.PORT?.toString() || "3000",
        NODE_ENV: config.NODE_ENV || "production",
        DEBUG: config.DEBUG || "claudeus:*",
        AUTH_TYPE: config.AUTH_TYPE || "basic",
        SSL_VERIFY: (config.SSL_VERIFY ?? true).toString(),
        LOG_LEVEL: config.LOG_LEVEL || "info",
        BATCH_SIZE: config.BATCH_SIZE?.toString() || "100",
        MCP_STDIO: "true"
      };

      return {
        command: "node",
        args: ["dist/index.js"],
        env,
        cwd: process.cwd()
      };
    }

capabilities:
  prompts:
    listChanged: true
  tools:
    listChanged: true
  resources:
    listChanged: true

security:
  userConsent:
    required: true
    description: "This MCP server requires access to your WordPress sites and will perform content management operations including content editing, user management, plugin activation, and site configuration."
  dataAccess:
    - type: "wordpress"
      description: "Full access to WordPress sites via REST API - reads and modifies content, users, settings, plugins, themes"
    - type: "filesystem"
      description: "Access to wp-sites.json configuration file for multi-site management"
  toolSafety:
    confirmationRequired: true
    description: "Tools can create, modify, and delete WordPress content, users, and settings. Use with caution."
    dangerousOperations:
      # Content Deletion (High Risk)
      - "delete_post"
      - "delete_page"
      - "delete_block"
      - "delete_media"
      - "delete_comment"
      - "delete_user"
      # System Changes (Critical Risk)
      - "activate_theme"
      - "activate_plugin"
      - "deactivate_plugin"
      - "delete_plugin"
      - "update_settings"
      # Astra Pro (Medium Risk)
      - "delete_custom_layout"
      - "update_theme_settings"
      # Menu Management (Medium Risk)
      - "delete_menu"
      - "delete_menu_item"
      # FSE (High Risk)
      - "delete_template"
      - "delete_template_part"
      - "update_global_styles"
      # Widget Management (Medium Risk)
      - "delete_widget"

tags:
  - wordpress
  - cms
  - content-management
  - full-site-editing
  - astra
  - woocommerce
  - site-health
  - user-management
  - taxonomy
  - menus

features:
  - "145 production-ready tools"
  - "Content Management (Posts, Pages, Blocks, Media)"
  - "User Management & Application Passwords"
  - "Taxonomies (Categories, Tags, Custom Taxonomies)"
  - "Comments & Moderation"
  - "Menus & Navigation (Classic + FSE)"
  - "Full Site Editing (Templates, Global Styles, Patterns)"
  - "Astra Pro Integration (Mega Menus, Custom Layouts)"
  - "Site Configuration (Settings, Plugins, Widgets)"
  - "Site Health & Diagnostics"
  - "Universal Search & Discovery"
  - "WooCommerce Support"
  - "Multi-site Management"
  - "Pagination Support"
  - "Enhanced Security"
