{"id":6,"date":"2026-10-06T12:03:45","date_gmt":"2026-10-06T12:03:45","guid":{"rendered":"https:\/\/speakeasywp.com\/?page_id=6"},"modified":"2026-10-06T12:13:31","modified_gmt":"2026-10-06T12:13:31","slug":"home","status":"publish","type":"page","link":"https:\/\/speakeasywp.com\/","title":{"rendered":"Home"},"content":{"rendered":"\n<div class=\"wp-block-group alignfull is-layout-flow wp-block-group-is-layout-flow\" style=\"margin-top:0;margin-bottom:0;padding-top:0;padding-right:0;padding-bottom:0;padding-left:0\">\n\n<style>\n.se-page{--se-bg:#0c120f;--se-bg2:#121a16;--se-line:#2a3a31;--se-gold:#d4ae66;--se-cream:#f2e9d8;--se-muted:#c3b9a6;box-sizing:border-box;width:100%;max-width:none;margin:0;background:var(--se-bg);color:var(--se-cream);font-family:-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,\"Helvetica Neue\",Arial,sans-serif;font-size:18px;line-height:1.6;overflow:hidden;-webkit-font-smoothing:antialiased}\n.se-page *,.se-page *::before,.se-page *::after{box-sizing:border-box}\n.se-inner{max-width:1080px;margin:0 auto;padding:0 24px}\n.se-sec{padding:88px 0;border-top:1px solid var(--se-line)}\n.se-alt{background:var(--se-bg2)}\n.se-page h1,.se-page h2,.se-page h3{font-family:Georgia,\"Times New Roman\",Times,serif;color:var(--se-cream);font-weight:normal;letter-spacing:.01em;margin:0;line-height:1.2}\n.se-page p,.se-page ul{margin:0}\n.se-kicker{display:block;font-size:13px;letter-spacing:.22em;text-transform:uppercase;color:var(--se-gold);margin-bottom:14px}\n.se-h2{font-size:clamp(28px,4vw,40px);margin-bottom:20px!important}\n.se-lead{color:var(--se-muted);max-width:680px}\n.se-gold{color:var(--se-gold)}\n\/* hero *\/\n.se-hero{padding:96px 0 104px;background:radial-gradient(ellipse at 72% 40%,rgba(212,174,102,.13),transparent 55%),var(--se-bg)}\n.se-hero-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:56px;align-items:center}\n.se-badge{display:inline-block;border:1px solid var(--se-gold);color:var(--se-gold);border-radius:999px;padding:5px 14px;font-size:13px;letter-spacing:.12em;text-transform:uppercase;margin-bottom:28px}\n.se-brand{font-size:clamp(48px,8vw,84px);letter-spacing:.02em}\n.se-tag{font-family:Georgia,\"Times New Roman\",serif;font-style:italic;font-size:clamp(22px,3vw,30px);color:var(--se-gold);margin:12px 0 22px!important}\n.se-hero .se-lead{font-size:20px}\n.se-rule{width:72px;height:2px;background:var(--se-gold);margin:0 0 22px;border:0}\n\/* door *\/\n.se-door{position:relative;width:220px;height:340px;margin:0 auto;border-radius:110px 110px 6px 6px;background:linear-gradient(180deg,#1b2620,#111915);border:2px solid #3a4a3f;box-shadow:inset 0 0 0 10px #141d18,inset 0 0 0 11px #2c3a31,0 30px 60px rgba(0,0,0,.5)}\n.se-peep{position:absolute;top:96px;left:50%;width:46px;height:20px;margin-left:-23px;border-radius:10px;background:#f7d891;box-shadow:0 0 18px 4px rgba(247,216,145,.55),0 0 60px 16px rgba(212,174,102,.25);border:2px solid #8a6d36}\n.se-knob{position:absolute;top:190px;right:30px;width:14px;height:14px;border-radius:50%;background:var(--se-gold);box-shadow:0 0 6px rgba(212,174,102,.6)}\n.se-door::after{content:\"\";position:absolute;left:-40px;right:-40px;bottom:-14px;height:14px;border-radius:50%;background:radial-gradient(ellipse,rgba(247,216,145,.18),transparent 70%)}\n\/* problem *\/\n.se-two{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:start}\n.se-page .se-two p+p{margin-top:16px}\n.se-quote{border-left:2px solid var(--se-gold);padding:18px 22px;background:rgba(212,174,102,.06);border-radius:0 8px 8px 0}\n.se-quote p{font-family:Georgia,serif;font-size:20px}\n.se-quote small{display:block;color:var(--se-muted);font-size:15px;margin-top:8px}\n\/* steps & cards *\/\n.se-grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:40px}\n.se-card{background:var(--se-bg);border:1px solid var(--se-line);border-radius:12px;padding:28px}\n.se-alt .se-card{background:#0f1612}\n.se-num{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;border:1px solid var(--se-gold);color:var(--se-gold);font-family:Georgia,serif;font-size:18px;margin-bottom:16px}\n.se-card h3{font-size:22px;margin-bottom:10px}\n.se-card p{color:var(--se-muted);font-size:16.5px}\n.se-mode{border-top:3px solid var(--se-line)}\n.se-m1{border-top-color:#6f8a78}.se-m2{border-top-color:#a8915f}.se-m3{border-top-color:var(--se-gold)}\n.se-lamp{display:block;width:12px;height:12px;border-radius:50%;margin-bottom:16px}\n.se-m1 .se-lamp{background:#f7d891;box-shadow:0 0 12px 3px rgba(247,216,145,.6)}\n.se-m2 .se-lamp{background:#a8915f;box-shadow:0 0 6px 1px rgba(168,145,95,.4)}\n.se-m3 .se-lamp{background:transparent;border:1px solid #6b6252}\n.se-note{margin-top:28px!important;color:var(--se-muted);font-size:16.5px}\n\/* who *\/\n.se-list{list-style:none;padding:0!important;margin:0}\n.se-list li{position:relative;padding:0 0 18px 30px;color:var(--se-muted)}\n.se-list li strong{color:var(--se-cream);font-weight:600}\n.se-list li::before{content:\"\";position:absolute;left:4px;top:.62em;width:9px;height:9px;transform:rotate(45deg);border:1px solid var(--se-gold)}\n.se-lock{border:1px solid var(--se-line);border-radius:12px;padding:28px;background:var(--se-bg2)}\n.se-lock h3{font-size:22px;margin-bottom:10px}\n.se-lock p{color:var(--se-muted);font-size:16.5px}\n\/* light *\/\n.se-bul{display:grid;grid-template-columns:1fr 1fr;gap:4px 40px;margin-top:32px!important}\n\/* cta *\/\n.se-cta{text-align:center;padding:104px 0;background:radial-gradient(ellipse at 50% 30%,rgba(212,174,102,.12),transparent 60%),var(--se-bg)}\n.se-cta .se-lead{margin:0 auto}\n.se-foot{border-top:1px solid var(--se-line);padding:28px 0;font-size:14px;color:var(--se-muted);text-align:center}\n.se-foot a{color:var(--se-gold);text-decoration:underline;text-underline-offset:3px}\n.se-foot a:focus-visible{outline:2px solid var(--se-gold);outline-offset:3px}\n@media (max-width:860px){\n.se-hero-grid,.se-two{grid-template-columns:1fr;gap:40px}\n.se-grid3{grid-template-columns:1fr}\n.se-door{width:170px;height:260px;border-radius:85px 85px 6px 6px}\n.se-peep{top:72px}.se-knob{top:146px;right:22px}\n.se-hero-art{order:-1}\n}\n@media (max-width:600px){\n.se-page{font-size:17px}\n.se-sec{padding:64px 0}\n.se-hero{padding:56px 0 72px}\n.se-cta{padding:72px 0}\n.se-inner{padding:0 20px}\n.se-bul{grid-template-columns:1fr}\n.se-hero .se-lead{font-size:18px}\n.se-card{padding:22px}\n.se-door{width:140px;height:214px;border-radius:70px 70px 6px 6px}\n.se-peep{top:58px;width:38px;height:16px;margin-left:-19px}.se-knob{top:118px;right:18px;width:12px;height:12px}\n}\n<\/style>\n<div class=\"se-page\">\n<header class=\"se-hero\">\n<div class=\"se-inner se-hero-grid\">\n<div>\n<span class=\"se-badge\">Early access \u00b7 In testing now<\/span>\n<h1 class=\"se-brand\">SpeakEasy MCP<\/h1>\n<p class=\"se-tag\">Your MCP doors, unlisted.<\/p>\n<hr class=\"se-rule\">\n<p class=\"se-lead\">A small WordPress plugin that hides your site\u2019s AI doors from strangers, so only the guests you invite even know they\u2019re there.<\/p>\n<\/div>\n<div class=\"se-hero-art\" aria-hidden=\"true\"><div class=\"se-door\"><span class=\"se-peep\"><\/span><span class=\"se-knob\"><\/span><\/div><\/div>\n<\/div>\n<\/header>\n\n<section class=\"se-sec se-alt\" aria-labelledby=\"se-problem\">\n<div class=\"se-inner se-two\">\n<div>\n<span class=\"se-kicker\">The problem<\/span>\n<h2 class=\"se-h2\" id=\"se-problem\">Your site has new doors. Everyone can see them.<\/h2>\n<\/div>\n<div>\n<p>WordPress sites now open <strong>MCP<\/strong> endpoints (Model Context Protocol), doors that let AI assistants like Claude work with your site, for example through the WordPress MCP Adapter and the Abilities API.<\/p>\n<p>Those doors are publicly listed and easy to find, so bots and scanners come sniffing. Even with a login in place, a door that answers \u201clogin required\u201d has just told them it exists.<\/p>\n<div class=\"se-quote\" style=\"margin-top:24px\"><p>\u201cLogin required.\u201d<\/p><small>Polite, and exactly what a scanner was hoping to hear.<\/small><\/div>\n<\/div>\n<\/div>\n<\/section>\n\n<section class=\"se-sec\" aria-labelledby=\"se-how\">\n<div class=\"se-inner\">\n<span class=\"se-kicker\">How it works<\/span>\n<h2 class=\"se-h2\" id=\"se-how\">No sign on the door. Just a knock.<\/h2>\n<div class=\"se-grid3\">\n<div class=\"se-card\"><span class=\"se-num\">1<\/span><h3>A stranger knocks<\/h3><p>A bot or scanner tries one of your site\u2019s MCP doors.<\/p><\/div>\n<div class=\"se-card\"><span class=\"se-num\">2<\/span><h3>Nobody\u2019s home<\/h3><p>SpeakEasy answers with a standard \u201cnot found\u201d, exactly like a page that doesn\u2019t exist. The door is also gone from your site\u2019s public list of API routes.<\/p><\/div>\n<div class=\"se-card\"><span class=\"se-num\">3<\/span><h3>Guests walk right in<\/h3><p>Addresses on your guest list, or clients that send your secret knock, get through as normal.<\/p><\/div>\n<\/div>\n<\/div>\n<\/section>\n\n<section class=\"se-sec se-alt\" aria-labelledby=\"se-modes\">\n<div class=\"se-inner\">\n<span class=\"se-kicker\">Three modes<\/span>\n<h2 class=\"se-h2\" id=\"se-modes\">Choose how each door behaves.<\/h2>\n<div class=\"se-grid3\">\n<div class=\"se-card se-mode se-m1\"><span class=\"se-lamp\"><\/span><h3>Open<\/h3><p>Just like today. The door is listed and works as usual.<\/p><\/div>\n<div class=\"se-card se-mode se-m2\"><span class=\"se-lamp\"><\/span><h3>Unlisted<\/h3><p>Hidden from the public list. It still works if you know the address and have a login.<\/p><\/div>\n<div class=\"se-card se-mode se-m3\"><span class=\"se-lamp\"><\/span><h3>Lights out<\/h3><p>\u201cNot found\u201d for everyone, except your guest list and anyone with the secret knock.<\/p><\/div>\n<\/div>\n<p class=\"se-note\">Covers the WordPress MCP Adapter, the Abilities API, and the Astra theme\u2019s MCP door.<\/p>\n<\/div>\n<\/section>\n\n<section class=\"se-sec\" aria-labelledby=\"se-who\">\n<div class=\"se-inner se-two\">\n<div>\n<span class=\"se-kicker\">Who gets in<\/span>\n<h2 class=\"se-h2\" id=\"se-who\">Only the people you invite.<\/h2>\n<ul class=\"se-list\">\n<li><strong>The guest list.<\/strong> Trusted internet addresses, such as the published range Claude.ai connects from, or your own automation server.<\/li>\n<li><strong>The secret knock.<\/strong> A private key your own connectors send with each request. Anyone who sends it gets in.<\/li>\n<li><strong>You, in wp-admin.<\/strong> Logged-in admins work exactly as before.<\/li>\n<\/ul>\n<\/div>\n<div class=\"se-lock\">\n<h3>A second lock, not a replacement<\/h3>\n<p>SpeakEasy doesn\u2019t replace your logins. Once a guest is through the door, app passwords still apply. It simply keeps strangers from finding the door in the first place.<\/p>\n<\/div>\n<\/div>\n<\/section>\n\n<section class=\"se-sec se-alt\" aria-labelledby=\"se-light\">\n<div class=\"se-inner\">\n<span class=\"se-kicker\">Light by design<\/span>\n<h2 class=\"se-h2\" id=\"se-light\">Small, quiet, easy to leave.<\/h2>\n<ul class=\"se-list se-bul\">\n<li><strong>One small plugin.<\/strong> No extra server to run.<\/li>\n<li><strong>No external calls.<\/strong> Nothing phones home.<\/li>\n<li><strong>Nothing stored in your database.<\/strong><\/li>\n<li><strong>Works behind Cloudflare.<\/strong><\/li>\n<li><strong>Easy to turn off.<\/strong> Just click Deactivate on the Plugins screen.<\/li>\n<\/ul>\n<\/div>\n<\/section>\n\n<section class=\"se-cta\" aria-labelledby=\"se-soon\">\n<div class=\"se-inner\">\n<span class=\"se-kicker\">Early access<\/span>\n<h2 class=\"se-h2\" id=\"se-soon\">Coming soon to the WordPress plugin directory.<\/h2>\n<p class=\"se-lead\">SpeakEasy MCP is in testing now on its author\u2019s own sites. Check back here for the release.<\/p>\n<p class=\"se-tag\" style=\"margin:26px 0 0!important;font-size:22px\">Until then, the door stays unmarked.<\/p>\n<\/div>\n<\/section>\n\n<footer class=\"se-foot\">\n<div class=\"se-inner\">\n<p>\u00a9 2026 SpeakEasy MCP \u00b7 speakeasywp.com \u00b7 Also at <a href=\"https:\/\/speakeasymcp.com\">speakeasymcp.com<\/a><\/p>\n<p style=\"margin-top:6px\">A WordPress plugin by Graham Ahern.<\/p>\n<\/div>\n<\/footer>\n<\/div>\n\n\n<\/div>\n\n","protected":false},"excerpt":{"rendered":"<p>Early access \u00b7 In testing now SpeakEasy MCP Your MCP doors, unlisted. A small WordPress plugin that hides your site\u2019s AI doors from strangers, so only the guests you invite even know they\u2019re there. The problem Your site has new doors. Everyone can see them. WordPress sites now open MCP endpoints (Model Context Protocol), doors [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"page-no-title","meta":{"footnotes":""},"class_list":["post-6","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/speakeasywp.com\/index.php?rest_route=\/wp\/v2\/pages\/6","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/speakeasywp.com\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/speakeasywp.com\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/speakeasywp.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/speakeasywp.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=6"}],"version-history":[{"count":4,"href":"https:\/\/speakeasywp.com\/index.php?rest_route=\/wp\/v2\/pages\/6\/revisions"}],"predecessor-version":[{"id":12,"href":"https:\/\/speakeasywp.com\/index.php?rest_route=\/wp\/v2\/pages\/6\/revisions\/12"}],"wp:attachment":[{"href":"https:\/\/speakeasywp.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=6"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}