{
  "name": "Ben Milne MCP",
  "version": "1.0.0",
  "serverUrl": "https://preview.benmilne.com/mcp",
  "tools": [
    {
      "name": "list_posts",
      "description": "List published posts with pagination metadata.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "page": {
            "type": "integer",
            "minimum": 1,
            "default": 1
          },
          "per_page": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "default": 10
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false
      },
      "_meta": {
        "ui": {
          "resourceUri": "https://preview.benmilne.com/developers"
        }
      }
    },
    {
      "name": "get_post",
      "description": "Retrieve a single post by internal numeric ID.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer"
          }
        },
        "required": [
          "id"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false
      },
      "_meta": {
        "ui": {
          "resourceUri": "https://preview.benmilne.com/developers"
        }
      }
    },
    {
      "name": "search_posts",
      "description": "Search post content by free-text query.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string"
          }
        },
        "required": [
          "query"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false
      },
      "_meta": {
        "ui": {
          "resourceUri": "https://preview.benmilne.com/developers"
        }
      }
    },
    {
      "name": "list_posts_by_category",
      "description": "List posts by category slug with pagination.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "slug": {
            "type": "string"
          },
          "page": {
            "type": "integer",
            "minimum": 1,
            "default": 1
          },
          "per_page": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "default": 10
          }
        },
        "required": [
          "slug"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false
      },
      "_meta": {
        "ui": {
          "resourceUri": "https://preview.benmilne.com/developers"
        }
      }
    },
    {
      "name": "list_posts_by_tag",
      "description": "List posts by tag slug with pagination.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "slug": {
            "type": "string"
          },
          "page": {
            "type": "integer",
            "minimum": 1,
            "default": 1
          },
          "per_page": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "default": 10
          }
        },
        "required": [
          "slug"
        ]
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false
      },
      "_meta": {
        "ui": {
          "resourceUri": "https://preview.benmilne.com/developers"
        }
      }
    },
    {
      "name": "get_value_layer_product",
      "description": "Retrieve pricing and purchase metadata for The Value Layer PDF.",
      "inputSchema": {
        "type": "object",
        "properties": {}
      },
      "annotations": {
        "readOnlyHint": true,
        "destructiveHint": false
      },
      "_meta": {
        "ui": {
          "resourceUri": "https://preview.benmilne.com/developers"
        }
      }
    }
  ],
  "icon": "https://preview.benmilne.com/assets/media/book/the-value-layer-cover.png",
  "serverInfo": {
    "name": "Ben Milne",
    "title": "Ben Milne — MCP",
    "version": "1.0.0"
  },
  "description": "Read-only MCP-compatible HTTP surface — search posts, retrieve content, taxonomy filters.",
  "url": "https://preview.benmilne.com/mcp",
  "transport": {
    "type": "streamable-http"
  },
  "authentication": {
    "required": false
  },
  "capabilities": {
    "tools": true,
    "search": true,
    "read": true,
    "write": false
  },
  "endpoints": {
    "posts": "https://preview.benmilne.com/mcp/v1/posts",
    "search": "https://preview.benmilne.com/mcp/v1/search",
    "post": "https://preview.benmilne.com/mcp/v1/post/{id}"
  }
}