aipozi

Daily AI visibility: who ChatGPT, Claude, Gemini and Perplexity name instead of you. Domain tools.

Sollte ich dies verwenden

Qualität und Sicherheit

A
Qualität der Beschreibung
96%
Vollständigkeit des Schemas
90%
Qualität der Benennung
84%
Risiko der Vergiftung
80%
Übereinstimmung der Berechtigungen
100%
Einhaltung des Protokolls
100%

Befunde (2)

  • HIGHTool poisoning patterns detected
  • LOWTool description contains role marker that could confuse chat modelsin ai_answer

Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.

Kontextkosten

~6,237Tokens (Tool-Definitionen)
~3.6 KBTypische Antwortgröße
Erhebliche Auswirkung auf die Aufmerksamkeit (4.87% von 128k Kontext)

Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.

Installieren

Installation mit einem Klick

Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:

{
  "mcpServers": {
    "aipozi": {
      "url": "https://aipozi.com/mcp"
    }
  }
}

Remote-Endpunkte

https://aipozi.com/mcpstreamable-http

Was es kann

Tool-Inventar

Tools (14)

🟢 Nur lesen🟡 Schreiben🔴 Löschen⚪ Unbekannt
🟢briefing(site)

The daily aipozi read for all of the person's sites, or one: for each site, how many of today's answers from ChatGPT, Claude, Gemini and Perplexity named it (and gave its address) and the change since yesterday, per AI; the questions it was named for today and by which AI; the questions lost since yesterday; new rivals (name, age, DR, what they do, which questions they took); the site's DR; what changed since a move was shipped; and today's best move. Stamped with the check time. Use it first for "how am I doing", "read me my aipozi briefing", or a scheduled morning briefing (for example a task every weekday at 07:00: "run daily_briefing from aipozi"). Checks run every morning at 05:00 GMT; this tool never runs one.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "site": {
      "type": "string",
      "description": "Which of your sites: its domain (\"biotree.bio\"), its id from list_my_sites (\"biotree-bio\") or its name. Leave it out when the person has one site."
    }
  },
  "additionalProperties": false
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "view": {
      "type": "string",
      "enum": [
        "briefing",
        "none"
      ],
      "description": "What this answer is; \"none\" for a question back, a plain no, or nothing there yet (see message)."
    },
    "message": {
      "type": "string",
      "description": "When view is \"none\": what to tell the person."
    },
    "date": {
      "type": "string",
      "description": "Today (YYYY-MM-DD)."
    },
    "totals": {
      "type": "object",
      "description": "All sites: { named, answers, delta }.",
      "properties": {},
      "additionalProperties": true
    },
    "sites": {
      "type": "array",
      "description": "One per site.",
      "items": {
        "type": "object",
        "description": "One site's day.",
        "properties": {
          "siteId": {
            "type": "string",
            "description": "The site id."
          },
          "domain": {
            "type": "string",
            "description": "The site."
          },
          "plan": {
            "type": "string",
            "description": "owner, pro (paid, $29 a month) or free."
          },
          "market": {
            "type": [
              "string",
              "null"
            ],
            "description": "Where its questions are asked from, or null for worldwide."
          },
          "date": {
            "type": [
              "string",
              "null"
            ],
            "description": "The check's day, YYYY-MM-DD ."
          },
          "checkedAt": {
            "type": [
              "string",
              "null"
            ],
            "description": "When the check finished (ISO)."
          },
          "named": {
            "type": [
              "number",
              "null"
            ],
            "description": "Answers that named the site."
          },
          "linked": {
            "type": [
              "number",
              "null"
            ],
            "description": "Answers that gave its address."
          },
          "answers": {
            "type": [
              "number",
              "null"
            ],
            "description": "Answers in the check (questions x 4 AIs)."
          },
          "delta": {
            "type": [
              "number",
              "null"
            ],
            "description": "Named, change since the day before; null without a day before."
          },
          "engines": {
            "type": "object",
            "description": "Per AI, one tick per question: 2 named with address, 1 named, 0 not named.",
            "properties": {},
            "additionalProperties": true
          },
          "perEngine": {
            "type": "array",
            "description": "Per AI: { ai, label, named, linked, answers }.",
            "items": {
              "type": "object",
              "additionalProperties": true
            }
          },
          "namedFor": {
            "type": "array",
            "description": "Questions named for today: { promptId, question, ais }.",
            "items": {
              "type": "object",
              "additionalProperties": true
            }
          },
          "lost": {
            "type": "array",
            "description": "Questions named yesterday and not today: { promptId, question, ais }.",
            "items": {
              "type": "object",
              "additionalProperties": true
            }
          },
          "newRivals": {
            "type": "array",
            "description": "Young rivals: { domain, name, ageDays, dr, whatTheyDo, engines, questions, locked }.",
            "items": {
              "type": "object",
              "additionalProperties": true
            }
          },
          "dr": {
            "type": [
              "number",
              "null"
            ],
            "description": "The site's Ahrefs Domain Rating."
          },
          "bestMove": {
            "type": "object",
            "description": "Today's best move: { id, rank, title, kind }, or null.",
            "properties": {},
            "additionalProperties": true
          },
          "sinceShipped": {
            "type": "array",
            "description": "Moves marked done and what changed since: { moveId, title, day, url, delta, line }.",
            "items": {
              "type": "object",
              "additionalProperties": true
            }
          },
          "freshness": {
            "type": "object",
            "description": "{ state, stamp, line }: when the data is from and when the next check runs.",
            "properties": {},
            "additionalProperties": true
          }
        },
        "additionalProperties": true
      }
    },
    "drCredit": {
      "type": "string",
      "description": "Domain Rating by Ahrefs (ahrefs.com)."
    }
  },
  "required": [
    "view"
  ],
  "description": "The briefing.",
  "additionalProperties": true
}
🟢list_my_sites

Every site the person watches in aipozi: its id, plan (paid or free), market, last check time, how many answers named it and gave its address, per AI, its DR and the last 7 days. Use it to see which sites exist, or to get a site id for another tool.

Eingabe-Schema

{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "view": {
      "type": "string",
      "enum": [
        "sites",
        "none"
      ],
      "description": "What this answer is; \"none\" for a question back, a plain no, or nothing there yet (see message)."
    },
    "message": {
      "type": "string",
      "description": "When view is \"none\": what to tell the person."
    },
    "sites": {
      "type": "array",
      "description": "{ siteId, domain, brand, plan, market, lastCheck, named, linked, answers, perEngine, dr, trend7, freshness }.",
      "items": {
        "type": "object",
        "additionalProperties": true
      }
    }
  },
  "required": [
    "view"
  ],
  "description": "The sites.",
  "additionalProperties": true
}
🟢questions(site)

One site's questions (up to 10) and, for each, the result from each AI in the latest check (named with the address, named, address given but not named, not named), how many AIs named the site on each of the last 7 checks, and who was named instead. Use it for "which of my questions did ChatGPT name me for?" or "which questions is Linktree winning?". For an AI's exact words on one question, use ai_answer.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "site": {
      "type": "string",
      "description": "Which of your sites: its domain (\"biotree.bio\"), its id from list_my_sites (\"biotree-bio\") or its name. Leave it out when the person has one site."
    }
  },
  "additionalProperties": false
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "view": {
      "type": "string",
      "enum": [
        "questions",
        "none"
      ],
      "description": "What this answer is; \"none\" for a question back, a plain no, or nothing there yet (see message)."
    },
    "message": {
      "type": "string",
      "description": "When view is \"none\": what to tell the person."
    },
    "siteId": {
      "type": "string",
      "description": "The site id."
    },
    "domain": {
      "type": "string",
      "description": "The site."
    },
    "date": {
      "type": "string",
      "description": "The check day."
    },
    "stamp": {
      "type": "string",
      "description": "\"Checked 05:01 GMT\"."
    },
    "questions": {
      "type": "array",
      "description": "{ promptId, question, results: { chatgpt, claude, gemini, perplexity }, namedBy, last7, namedInstead }.",
      "items": {
        "type": "object",
        "additionalProperties": true
      }
    }
  },
  "required": [
    "view"
  ],
  "description": "Questions and results.",
  "additionalProperties": true
}
🟢ai_answer(site, question, ai, date)

One question and one AI: that AI's answer word for word, exactly as stored, with the pages it cited, from the latest check or a given date. Quote it as that AI's words. Use it for "show me exactly what ChatGPT said" or "who did Perplexity recommend for the Comrades question?".

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "site": {
      "type": "string",
      "description": "Which of your sites: its domain (\"biotree.bio\"), its id from list_my_sites (\"biotree-bio\") or its name. Leave it out when the person has one site."
    },
    "question": {
      "type": "string",
      "description": "The question: its id (\"p03\"), its number in the list (\"3\"), or words from it (\"Comrades\")."
    },
    "ai": {
      "type": "string",
      "enum": [
        "chatgpt",
        "claude",
        "gemini",
        "perplexity"
      ],
      "description": "The AI: chatgpt, claude, gemini or perplexity."
    },
    "date": {
      "type": "string",
      "description": "A check day, YYYY-MM-DD. Leave it out for the latest check."
    }
  },
  "required": [
    "question",
    "ai"
  ],
  "additionalProperties": false
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "view": {
      "type": "string",
      "enum": [
        "answer",
        "none"
      ],
      "description": "What this answer is; \"none\" for a question back, a plain no, or nothing there yet (see message)."
    },
    "message": {
      "type": "string",
      "description": "When view is \"none\": what to tell the person."
    },
    "domain": {
      "type": "string",
      "description": "The site."
    },
    "question": {
      "type": "string",
      "description": "The question as asked."
    },
    "aiLabel": {
      "type": "string",
      "description": "ChatGPT, Claude, Gemini or Perplexity."
    },
    "date": {
      "type": "string",
      "description": "The check day."
    },
    "result": {
      "type": "string",
      "description": "named, with your address | named | your address given, not named | not named."
    },
    "answerText": {
      "type": "string",
      "description": "The answer, word for word."
    },
    "citations": {
      "type": "array",
      "description": "{ url, title, domain }.",
      "items": {
        "type": "object",
        "additionalProperties": true
      }
    }
  },
  "required": [
    "view"
  ],
  "description": "One stored answer.",
  "additionalProperties": true
}
🟢rivals(site)

For one site, or all of them: who ChatGPT, Claude, Gemini and Perplexity recommend instead, from the latest check. Each rival's name and domain, what they do, domain age, DR, how often each AI named them, the questions they won, first seen, the trend and a New flag for young sites. The person's own DR heads the list. Use it for "who are my competitors?" or "which new sites are taking my questions?".

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "site": {
      "type": "string",
      "description": "One of your sites (domain, id or name). Leave it out for all of them."
    }
  },
  "additionalProperties": false
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "view": {
      "type": "string",
      "enum": [
        "rivals",
        "none"
      ],
      "description": "What this answer is; \"none\" for a question back, a plain no, or nothing there yet (see message)."
    },
    "message": {
      "type": "string",
      "description": "When view is \"none\": what to tell the person."
    },
    "sites": {
      "type": "array",
      "description": "{ siteId, domain, you: { domain, dr, named, answers }, date, rivals: [{ name, domain, whatTheyDo, ageDays, dr, isNew, namedCount, perEngine, questionsWon, firstSeen, trend }] }.",
      "items": {
        "type": "object",
        "additionalProperties": true
      }
    },
    "drCredit": {
      "type": "string",
      "description": "Domain Rating by Ahrefs (ahrefs.com)."
    }
  },
  "required": [
    "view"
  ],
  "description": "Rivals.",
  "additionalProperties": true
}
🟢rival_detail(rival, site)

One rival from the person's own checks: its age and registrar, DR, what it does, and every question and AI where it was named and the person's site was not, with that AI's words about it. Use it for "how old is that site and what's its DR?" about a rival, or "what did the AIs say about Linktree?". Rivals are seen only through the person's own questions; for any other site use domain_age and domain_rating.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "rival": {
      "type": "string",
      "description": "The rival's name or domain, e.g. \"Linktree\" or \"heya.page\"."
    },
    "site": {
      "type": "string",
      "description": "One of your sites, if the rival is in one site's list."
    }
  },
  "required": [
    "rival"
  ],
  "additionalProperties": false
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "view": {
      "type": "string",
      "enum": [
        "rival",
        "none"
      ],
      "description": "What this answer is; \"none\" for a question back, a plain no, or nothing there yet (see message)."
    },
    "message": {
      "type": "string",
      "description": "When view is \"none\": what to tell the person."
    },
    "rival": {
      "type": "object",
      "description": "{ name, domain, whatTheyDo, ageDays, registeredAt, registrar, dr, namedCount, perEngine, questionsWon, namedOverYou: [{ question, aiLabel, quotes }] }.",
      "properties": {},
      "additionalProperties": true
    },
    "drCredit": {
      "type": "string",
      "description": "Domain Rating by Ahrefs (ahrefs.com)."
    }
  },
  "required": [
    "view"
  ],
  "description": "One rival.",
  "additionalProperties": true
}
🟢trend(site, days)

Daily named and linked counts per site and per AI over 7, 30 or 90 days, with the moves marked done on the timeline and what changed since each. Use it for "how have I moved this month?" or "did the comparison page work?".

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "site": {
      "type": "string",
      "description": "One of your sites (domain, id or name). Leave it out for all of them."
    },
    "days": {
      "type": "integer",
      "enum": [
        7,
        30,
        90
      ],
      "description": "7, 30 or 90. Default 7."
    }
  },
  "additionalProperties": false
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "view": {
      "type": "string",
      "enum": [
        "trend",
        "none"
      ],
      "description": "What this answer is; \"none\" for a question back, a plain no, or nothing there yet (see message)."
    },
    "message": {
      "type": "string",
      "description": "When view is \"none\": what to tell the person."
    },
    "days": {
      "type": "number",
      "description": "The window."
    },
    "sites": {
      "type": "array",
      "description": "{ siteId, domain, series: [{ date, named, linked, answers, perEngine }], moves, sinceShipped }.",
      "items": {
        "type": "object",
        "additionalProperties": true
      }
    }
  },
  "required": [
    "view"
  ],
  "description": "The trend.",
  "additionalProperties": true
}
🟢domain_rating(domains)

Ahrefs Domain Rating (0 to 100) for up to 25 domains, anyone's. Free, no sign-in. Every answer carries "Domain Rating by Ahrefs (ahrefs.com)"; show it with the numbers.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "domains": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "minItems": 1,
      "maxItems": 25,
      "description": "Domains, e.g. [\"heya.page\", \"linktr.ee\"]."
    }
  },
  "required": [
    "domains"
  ],
  "additionalProperties": false
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "view": {
      "type": "string",
      "enum": [
        "dr",
        "none"
      ],
      "description": "What this answer is; \"none\" for a question back, a plain no, or nothing there yet (see message)."
    },
    "message": {
      "type": "string",
      "description": "When view is \"none\": what to tell the person."
    },
    "results": {
      "type": "array",
      "description": "{ domain, dr } (dr null when Ahrefs has no rating).",
      "items": {
        "type": "object",
        "additionalProperties": true
      }
    },
    "drCredit": {
      "type": "string",
      "description": "Domain Rating by Ahrefs (ahrefs.com)."
    }
  },
  "required": [
    "view"
  ],
  "description": "Domain Ratings.",
  "additionalProperties": true
}
🟢action_plan(site)

One site's plan from its latest check: why each AI does or doesn't name it (in plain words, from the real answers) and the moves, ranked by how many questions and AIs each can win, with the rivals each move beats and the pages the AIs read instead. Use it for "what should I improve first on biotree.bio?". To hand a move to a coding session, use build_prompt; when it has shipped, mark_move_done.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "site": {
      "type": "string",
      "description": "Which of your sites: its domain (\"biotree.bio\"), its id from list_my_sites (\"biotree-bio\") or its name. Leave it out when the person has one site."
    }
  },
  "additionalProperties": false
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "view": {
      "type": "string",
      "enum": [
        "plan",
        "none"
      ],
      "description": "What this answer is; \"none\" for a question back, a plain no, or nothing there yet (see message)."
    },
    "message": {
      "type": "string",
      "description": "When view is \"none\": what to tell the person."
    },
    "domain": {
      "type": "string",
      "description": "The site."
    },
    "date": {
      "type": "string",
      "description": "The check the plan comes from."
    },
    "locked": {
      "type": "boolean",
      "description": "True on a free site: move 1 in full, the rest locked."
    },
    "why": {
      "type": "array",
      "description": "{ ai, label, why }.",
      "items": {
        "type": "object",
        "additionalProperties": true
      }
    },
    "moves": {
      "type": "array",
      "description": "{ id, rank, kind, title, locked, detail, impact, targets, rival, evidence, hasBuildPrompt, done }.",
      "items": {
        "type": "object",
        "additionalProperties": true
      }
    }
  },
  "required": [
    "view"
  ],
  "description": "The plan.",
  "additionalProperties": true
}
🟢build_prompt(site, move)

One move of a site's plan as a complete, self-contained brief for a coding agent (Claude Code, Cursor): the goal, the page or change, the exact questions it targets and which AIs missed them, the rivals recommended, the pages the AIs read (to study, not copy), page anatomy and schema, what not to do (no invented facts, prices or reviews), and how aipozi will measure it. In a coding session opened on the site's repo, implement it, then call mark_move_done. Default: the top move. Paid sites only, as in the app.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "site": {
      "type": "string",
      "description": "Which of your sites: its domain (\"biotree.bio\"), its id from list_my_sites (\"biotree-bio\") or its name. Leave it out when the person has one site."
    },
    "move": {
      "type": "string",
      "description": "The move id from action_plan or briefing (\"comparison\", \"page-p03\"), or its rank (\"1\"). Leave it out for the top move."
    }
  },
  "additionalProperties": false
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "view": {
      "type": "string",
      "enum": [
        "move",
        "none"
      ],
      "description": "What this answer is; \"none\" for a question back, a plain no, or nothing there yet (see message)."
    },
    "message": {
      "type": "string",
      "description": "When view is \"none\": what to tell the person."
    },
    "domain": {
      "type": "string",
      "description": "The site."
    },
    "move": {
      "type": "object",
      "description": "{ id, rank, title, kind, targets }.",
      "properties": {},
      "additionalProperties": true
    },
    "prompt": {
      "type": "string",
      "description": "The brief, ready to paste or act on."
    },
    "measure": {
      "type": "string",
      "description": "How aipozi measures it and the mark_move_done call to make."
    }
  },
  "required": [
    "view"
  ],
  "description": "A build prompt.",
  "additionalProperties": true
}
🟢mark_move_done(site, move, url, undo)

Records that a move has shipped: today's date and, optionally, the URL of the new page. From the next morning's check, briefing and trend show what changed since. Not destructive; undo with undo: true. The only tool that writes. Use it after the person (or their coding session) has shipped the move.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "site": {
      "type": "string",
      "description": "Which of your sites: its domain (\"biotree.bio\"), its id from list_my_sites (\"biotree-bio\") or its name. Leave it out when the person has one site."
    },
    "move": {
      "type": "string",
      "description": "The move id (\"comparison\", \"page-p03\") or rank (\"1\")."
    },
    "url": {
      "type": "string",
      "description": "The shipped page's URL, if there is one."
    },
    "undo": {
      "type": "boolean",
      "description": "true to take back a mark made by mistake."
    }
  },
  "required": [
    "move"
  ],
  "additionalProperties": false
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "view": {
      "type": "string",
      "enum": [
        "done",
        "none"
      ],
      "description": "What this answer is; \"none\" for a question back, a plain no, or nothing there yet (see message)."
    },
    "message": {
      "type": "string",
      "description": "When view is \"none\": what to tell the person."
    },
    "domain": {
      "type": "string",
      "description": "The site."
    },
    "move": {
      "type": "object",
      "description": "{ id, title }.",
      "properties": {},
      "additionalProperties": true
    },
    "done": {
      "type": "boolean",
      "description": "Marked done (false after an undo)."
    },
    "day": {
      "type": "string",
      "description": "The day it was marked."
    },
    "url": {
      "type": [
        "string",
        "null"
      ],
      "description": "The page."
    }
  },
  "required": [
    "view"
  ],
  "description": "The record.",
  "additionalProperties": true
}
🟢check_domain(name, names, extensions)

Is a domain name free? Use it whenever someone names an app, product or company, asks "find me a name with a free domain", "is there a .com for…", or "is X taken". Asks each registry for its own record, live (RDAP, else the registry's WHOIS). One name: across .com, .ai, .io, .app, .dev and more, or the extensions given. Brainstorming: pass up to 10 candidates in names and get them on .com, .ai, .io, .app and .dev, free ones first. Each result: available or not registered (with a registrar link), taken (with its registration date and age), or couldn't check. Free, no sign-in. Always use this for availability; never guess from DNS or memory. aipozi doesn't register names.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "description": "One name (\"livedot\") or a domain (\"livedot.ai\"). With an extension, only that one is checked unless extensions are given."
    },
    "names": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "maxItems": 10,
      "description": "Up to 10 candidate names to compare when naming something, e.g. [\"livedot\", \"dotlive\", \"followdot\"]. Checked on .com, .ai, .io, .app and .dev unless extensions are given (up to 6)."
    },
    "extensions": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "maxItems": 20,
      "description": "Extensions to check, e.g. [\"ai\", \"io\", \"co.za\"]."
    }
  },
  "additionalProperties": false
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "view": {
      "type": "string",
      "enum": [
        "domains",
        "none"
      ],
      "description": "What this answer is; \"none\" for a question back, a plain no, or nothing there yet (see message)."
    },
    "message": {
      "type": "string",
      "description": "When view is \"none\": what to tell the person."
    },
    "label": {
      "type": "string",
      "description": "The name searched."
    },
    "results": {
      "type": "array",
      "description": "{ domain, tld, status: available|premium|unregistered|unavailable|taken|unknown, price, registeredAt, ageDays, registerUrl, checkedAt }.",
      "items": {
        "type": "object",
        "additionalProperties": true
      }
    }
  },
  "required": [
    "view"
  ],
  "description": "Availability per extension.",
  "additionalProperties": true
}
🟢domain_age(domain)

A WHOIS / RDAP lookup for any domain: registration date and age, registrar, expiry, status (including expired and being deleted, with an estimated drop date), name servers and who hosts it, read live from the registry's own record (RDAP, else WHOIS). Plus its Ahrefs Domain Rating. Never owner details. Free, no sign-in. Use it for "whois heya.page", "how old is this site", "who is it registered with", "when does it expire", "is this domain expiring", "who hosts it".

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "domain": {
      "type": "string",
      "description": "A domain or a link, e.g. \"heya.page\"."
    }
  },
  "required": [
    "domain"
  ],
  "additionalProperties": false
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "view": {
      "type": "string",
      "enum": [
        "age",
        "none"
      ],
      "description": "What this answer is; \"none\" for a question back, a plain no, or nothing there yet (see message)."
    },
    "message": {
      "type": "string",
      "description": "When view is \"none\": what to tell the person."
    },
    "domain": {
      "type": "string",
      "description": "The registrable domain."
    },
    "found": {
      "type": "boolean",
      "description": "The registry has a record."
    },
    "registeredAt": {
      "type": [
        "string",
        "null"
      ],
      "description": "YYYY-MM-DD."
    },
    "ageDays": {
      "type": [
        "number",
        "null"
      ],
      "description": "Days since registration."
    },
    "registrar": {
      "type": [
        "string",
        "null"
      ],
      "description": "The registrar."
    },
    "expiresAt": {
      "type": [
        "string",
        "null"
      ],
      "description": "YYYY-MM-DD."
    },
    "nameservers": {
      "type": "array",
      "description": "Name servers.",
      "items": {
        "type": "string"
      }
    },
    "dr": {
      "type": [
        "number",
        "null"
      ],
      "description": "Ahrefs Domain Rating."
    },
    "drCredit": {
      "type": "string",
      "description": "Domain Rating by Ahrefs (ahrefs.com)."
    }
  },
  "required": [
    "view"
  ],
  "description": "The registry record.",
  "additionalProperties": true
}
🟢ai_crawler_access(domain)

Whether each AI's crawlers (OpenAI, Anthropic, Perplexity, Google, Microsoft; search, user and training bots) are allowed by a site's robots.txt, read live, and the exact lines to add when a search crawler is blocked. Free, no sign-in.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "domain": {
      "type": "string",
      "description": "A domain or a link, e.g. \"biotree.bio\"."
    }
  },
  "required": [
    "domain"
  ],
  "additionalProperties": false
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "view": {
      "type": "string",
      "enum": [
        "crawlers",
        "none"
      ],
      "description": "What this answer is; \"none\" for a question back, a plain no, or nothing there yet (see message)."
    },
    "message": {
      "type": "string",
      "description": "When view is \"none\": what to tell the person."
    },
    "domain": {
      "type": "string",
      "description": "The site."
    },
    "robotsFound": {
      "type": "boolean",
      "description": "A robots.txt exists."
    },
    "bots": {
      "type": "array",
      "description": "{ bot, company, engine, purpose, status: allowed|blocked|partial|unknown, blockedPaths }.",
      "items": {
        "type": "object",
        "additionalProperties": true
      }
    },
    "blocksSearch": {
      "type": "boolean",
      "description": "A search or user bot is blocked."
    },
    "finding": {
      "type": [
        "string",
        "null"
      ],
      "description": "What is blocked, in plain words."
    },
    "fix": {
      "type": [
        "string",
        "null"
      ],
      "description": "The robots.txt lines to add."
    }
  },
  "required": [
    "view"
  ],
  "description": "The robots.txt audit.",
  "additionalProperties": true
}

Community

Diesen Server bewerten

Nachweis

Aktuelle Beobachtungen

verifiziertVersion nicht aufgezeichnet14 Tools