clickd
Reads a site as search engines and AI assistants do, ranks its fixes, and checks them live.
使うべきか
品質と安全性
検出事項(9)
- HIGH
- MEDIUMclickd_brief 内
- MEDIUMclickd_proposals 内
- MEDIUMclickd_log_work 内
- MEDIUMclickd_todo 内
- INFOclickd_brief 内
- INFOclickd_proposals 内
- INFOclickd_log_work 内
- INFOclickd_todo 内
ツール定義とプロトコルへの準拠に関する自動分析に基づいています。
コンテキストコスト
これは、サーバーのツールがモデルのコンテキストに読み込まれるたびに消費されるおおよそのトークン数です。数が多いほど、ほかのタスクに使える注意が減ります。
インストール
ワンクリックインストール
これを `claude_desktop_config.json` ファイルに追加してください:
{
"mcpServers": {
"clickd": {
"url": "https://clickd.com/mcp"
}
}
}リモートエンドポイント
https://clickd.com/mcpstreamable-httpできること
ツール一覧
ツール(17)
🟢clickd_site(site, view)
Gets a site's report from its latest read: score, grades, place among ranked sites, towns served, and every fix with its failing pages. When: to tell a person how a site stands. Instead: clickd_brief for the fixes as a work order; clickd_rivals for its rivals; clickd_check for one live page. Inputs: `site` is a domain, like example.com. `view` is report (the default) or agent: the whole-site Agent View from the same read, with each AI crawler as robots.txt treats it. Returns: host, score, grade, stages, grades, rank, served, fixes and card, a picture to send the person; with agent, the Agent View's figures. Fails: a site never read, a draft or one kept unnamed answers not found. Works with no key.
入力スキーマ
{
"type": "object",
"properties": {
"site": {
"type": "string",
"description": "The site, as a domain such as example.com."
},
"view": {
"type": "string",
"enum": [
"report",
"agent"
],
"description": "report (the default) or agent."
}
},
"required": [
"site"
]
}🟢clickd_brief(site, format)
Gets a site's fixes as a work order: what to fix, in what order, how, why and on which pages. When: at the start of work on a site, and after clickd_changes says a read is done. Instead: clickd_site for the score to tell a person; clickd_todo for the next fix across all the person's sites. Inputs: `site` is a domain, like example.com. `format` is markdown (the default), the whole list, or steps: the four fixes worth the most as steps with pages and points, and words to hand another agent. Returns: with markdown, the Markdown text alone; with steps, JSON with steps, prompt, report and caveat. Fails: a site never read, or a draft, answers not found; clickd_rescan reads it. Works with no key.
入力スキーマ
{
"type": "object",
"properties": {
"site": {
"type": "string",
"description": "The site, as a domain such as example.com."
},
"format": {
"type": "string",
"enum": [
"markdown",
"steps"
],
"description": "markdown (the default) or steps."
}
},
"required": [
"site"
]
}🟢clickd_pages(site, path, failing, q, kind, ...)
Lists the pages of a site's latest read with status, depth, words and failing rules, or gives one page in full. When: to find the pages behind a fix, or everything wrong with one page. Instead: clickd_brief for the fixes in order; clickd_check for a page as it is live now. Inputs: `site` is a domain, like example.com. `path`, such as /pricing, gives that page in full, and the rest is then ignored. `failing` (a rule id), `q`, `kind` and `section` narrow the list, `sort` and `dir` order it, `limit` and `offset` page it. Returns: host, run, total and pages; one page as path, status, failing, needsAPerson, linkedFrom, linksTo and quoted. Fails: a site or page not read answers not found. Needs a key; any key reads a public site.
入力スキーマ
{
"type": "object",
"properties": {
"site": {
"type": "string",
"description": "The site, as a domain such as example.com."
},
"path": {
"type": "string",
"description": "One page, such as /pricing."
},
"failing": {
"type": "string",
"description": "A rule id."
},
"q": {
"type": "string",
"description": "Text in the path."
},
"kind": {
"type": "string",
"description": "A kind of page.",
"enum": [
"home",
"article",
"service",
"page"
]
},
"section": {
"type": "string",
"description": "A section, such as /guides."
},
"sort": {
"type": "string",
"description": "What to sort by.",
"enum": [
"path",
"kind",
"depth",
"words",
"ms",
"inlinks",
"failing"
]
},
"dir": {
"type": "string",
"description": "Which way.",
"enum": [
"asc",
"desc"
]
},
"limit": {
"type": "number",
"description": "How many to return."
},
"offset": {
"type": "number",
"description": "How many to skip, for the next part of a long list."
}
},
"required": [
"site"
]
}🟢clickd_rescan(site, reason)
Puts a fresh read of a site in line and returns a job to follow. When: once a fix is deployed, or for a site clickd has never read. Instead: clickd_changes with the job to see what the read changed; clickd_check for one live page with no read. Inputs: `site` is a domain, like example.com. `reason` says what was changed, in a few words. Returns: job, added (false when a read was already in line), allowedAt and ahead. Fails: a site read in the last ten minutes answers allowedAt, when to ask again; a private address is refused. Needs a key.
入力スキーマ
{
"type": "object",
"properties": {
"site": {
"type": "string",
"description": "The site, as a domain such as example.com."
},
"reason": {
"type": "string",
"description": "What was changed, in a few words."
}
},
"required": [
"site"
]
}🟢clickd_changes(site, job)
Says what a site's latest read changed against the one before: score, rules fixed and newly failing, pages added and removed. When: after clickd_rescan, every minute or two with its job until the read is done. Instead: clickd_rescan to ask for the read; clickd_site for the report as it now stands. Inputs: `site` is a domain, like example.com. `job` is the id clickd_rescan returned: the reply then says where that read stands, with changes only once it is done. Returns: host, run, changes (null for a first read) and visits; with job, job ({ id, state, ahead }), changes null until done. Fails: a site never read, or a job for another site, answers not found; a failed read says so in job. Needs a key.
入力スキーマ
{
"type": "object",
"properties": {
"site": {
"type": "string",
"description": "The site, as a domain such as example.com."
},
"job": {
"type": "number",
"description": "The job id that clickd_rescan returned."
}
},
"required": [
"site"
]
}🟢clickd_rivals(site, view, with, limit)
Sets a site against its rivals from kept reads: who they are, how close, and where it is behind. When: to pick the fixes that matter against the sites a buyer compares it with. Instead: clickd_leaderboard for places among every site; clickd_site for its own score. Inputs: `site` is a domain, like example.com. `view` is competitors (default: rivals doing similar work), near (closest in meaning), market (rule by rule), or rules or content (two sites side by side). `with` is the other site, for rules or content; alone, it means rules. `limit` is for near, 10 if left out. Returns: host, then by view: local, nearby and elsewhere; sites; rules; ahead and behind; or pages. Fails: a site with no meaning yet answers found or embedded false; rules or content with no with says to give it. Needs a key and a claim.
入力スキーマ
{
"type": "object",
"properties": {
"site": {
"type": "string",
"description": "The site, as a domain such as example.com."
},
"view": {
"type": "string",
"enum": [
"competitors",
"near",
"market",
"rules",
"content"
],
"description": "competitors (the default), near, market, rules or content."
},
"with": {
"type": "string",
"description": "The other site, already read."
},
"limit": {
"type": "number",
"description": "For near only: how many sites. 10 if left out."
}
},
"required": [
"site"
]
}🟢clickd_citations(site)
Lists what assistants were found to cite for a site, question by question, from lookups already made, and the credits left. When: to tell a person whether assistants cite their site, at no cost. Instead: clickd_site for how well formed the pages are, which is not whether they are cited. Inputs: `site` is a domain, like example.com. Returns: host, rows, credits, price, perDay and note. Fails: rows is empty until a lookup is made. Needs a key and a claim.
入力スキーマ
{
"type": "object",
"properties": {
"site": {
"type": "string",
"description": "The site, as a domain such as example.com."
}
},
"required": [
"site"
]
}🟡clickd_claim(site, step)
Claims a site for the person: the TXT record or file that proves it is theirs, then the check that finds it. When: to open a site's private parts, such as rivals, citations and proposals. Instead: clickd_signup first for a key; clickd_site for a public report, which needs no claim. Inputs: `site` is a domain, like example.com. `step` is start (the default), for the record and file, or check, to look for either and add the site. Returns: with start, site, record, dns, file and note; with check, site, claimed and how. Fails: check before the proof is up answers claimed false; a new DNS record can take minutes to be seen. Needs a person's key.
入力スキーマ
{
"type": "object",
"properties": {
"site": {
"type": "string",
"description": "The site, as a domain such as example.com."
},
"step": {
"type": "string",
"enum": [
"start",
"check"
],
"description": "start (the default) or check."
}
},
"required": [
"site"
]
}🟡clickd_propose(site, title, summary, rule, pages, ...)
Proposes a change before you deploy it, emailing the person what it is with Approve and Decline links that lapse in 72 hours. When: before each deploy to a site clickd_proposals says is set to approve. Instead: clickd_proposals with the id to wait for the answer; clickd_log_work, naming it, once carried out. Inputs: `site` is a domain, like example.com. `title` is the change in a few words; `summary` what it does and why; `rule` the rule id it answers; `pages` the paths it changes, separated by commas; `diff` a unified diff, shown and never applied. Returns: proposal ({ id, state, deploy, ... }), note and promise. Fails: a site not claimed with this key answers not found; 20 proposals a site an hour at most. Needs a person's key.
入力スキーマ
{
"type": "object",
"properties": {
"site": {
"type": "string",
"description": "The site, as a domain such as example.com."
},
"title": {
"type": "string",
"description": "The change in a few words, at most 120 characters."
},
"summary": {
"type": "string",
"description": "What it does and why, at most 2000 characters."
},
"rule": {
"type": "string",
"description": "The rule id it answers, such as answer-first."
},
"pages": {
"type": "string",
"description": "Paths separated by commas, at most 20; none for the whole site."
},
"diff": {
"type": "string",
"description": "A unified diff, at most 20,000 characters."
}
},
"required": [
"site",
"title",
"summary"
]
}🟢clickd_proposals(id, site)
Lists the person's proposals and where each stands, or one by id, and whether a site is set to approve or automatic. When: before work on a claimed site, and every few minutes after clickd_propose until it is answered. Instead: clickd_propose to make one; clickd_todo for the work itself. Inputs: `id` is one proposal from clickd_propose; deploy only once it says approved. `site` gives that site's proposals and its mode. Neither, every proposal; never both. Returns: with id, proposal and promise; otherwise proposals and promise, and with site, site and mode. Fails: id and site together are refused; one not the person's answers not found. Needs a person's key.
入力スキーマ
{
"type": "object",
"properties": {
"id": {
"type": "number",
"description": "One proposal, by the id clickd_propose returned."
},
"site": {
"type": "string",
"description": "Only proposals for this site, and its mode."
}
}
}🟡clickd_log_work(site, step, did, found, files, ...)
Records a step of work on a site for the person's progress page: what you planned, changed or checked, or where you got stuck. When: after each step, including one that carries out a proposal or finishes a queued task. Instead: clickd_propose before deploying to a site set to approve; clickd_todo for tasks waiting. Inputs: `site` is a domain, like example.com. `step` is planned, changed, checked or stuck; `did` says what. `found`, `files` and `rules` (comma separated) add detail. `proposal` names the proposal carried out, `task` the queued task finished. Never send private data. Returns: kept, site, step and note, with proposal or task and left when given. Fails: a proposal or task not the person's keeps nothing and says so. Needs a person's key.
入力スキーマ
{
"type": "object",
"properties": {
"site": {
"type": "string",
"description": "The site, as a domain such as example.com."
},
"step": {
"type": "string",
"enum": [
"planned",
"changed",
"checked",
"stuck"
],
"description": "Which step this was."
},
"did": {
"type": "string",
"description": "What was done, in a sentence or two."
},
"found": {
"type": "string",
"description": "What was true of the site, such as of its code."
},
"files": {
"type": "string",
"description": "The files touched, separated by commas."
},
"rules": {
"type": "string",
"description": "The clickd rules worked on, by id, separated by commas."
},
"proposal": {
"type": "number",
"description": "The proposal id, from clickd_propose, this step carried out."
},
"task": {
"type": "number",
"description": "The queued task id this step finished."
}
},
"required": [
"site",
"step",
"did"
]
}🟢clickd_todo(show)
Gets the person's work across all their sites: the next fix and every other by worth, or the tasks they queued for you. When: when you start work for the person, and when a reply says tasks are waiting. Instead: clickd_brief for every fix on one site; clickd_log_work with task to finish a queued task. Inputs: `show` is board (the default): next, every fix by worth, what slipped and what is fixed; or queue: the person's tasks for you, oldest first. Returns: with board, next, todo, slipped, fixed, waiting and note; with queue, tasks and note. Fails: an account with no claimed site has an empty board. Needs a person's key.
入力スキーマ
{
"type": "object",
"properties": {
"show": {
"type": "string",
"enum": [
"board",
"queue"
],
"description": "board (the default) or queue."
}
},
"required": []
}🟢clickd_rules
Lists the rulebook: every rule clickd checks, with its id, stage, weight and fix. When: to explain a fix to a person, or to find a rule's id. Instead: clickd_brief for the rules one site fails; clickd_pages with failing for the pages failing one. Inputs: none. Returns: rules, each with id, title, stage, weight and fix. Fails: nothing to refuse. Works with no key.
入力スキーマ
{
"type": "object",
"properties": {}
}🟢clickd_leaderboard(in, state, city, size, record, ...)
Lists the public leaderboard: every ranked site by its latest score, the board of one crowd, or a record. When: to show a person where a site places among every site, or sites like it. Instead: clickd_site for one site's own place; clickd_rivals for the sites closest to one site. Inputs: `in` (a line of work such as trades), `state` (two letters), `city` (needs state) and `size` narrow the board, together or alone. `record` gives one record in place of the places. `limit` and `offset` page it. Returns: total, offset, limit, sites, tiers and note; with record, its sites and what it counted. Fails: a crowd too small answers an empty board; drafts and closed sites are not ranked. Works with no key.
入力スキーマ
{
"type": "object",
"properties": {
"in": {
"type": "string",
"description": "A line of work, such as trades."
},
"state": {
"type": "string",
"description": "A US state by two letters, such as MO."
},
"city": {
"type": "string",
"description": "A city in that state, such as Dallas."
},
"size": {
"type": "string",
"enum": [
"1-10",
"11-50",
"51-99",
"100-plus"
],
"description": "By the pages a read took."
},
"record": {
"type": "string",
"enum": [
"fastest",
"improved",
"stages",
"answer-first",
"biggest"
],
"description": "One record in place of the places."
},
"limit": {
"type": "number",
"description": "How many to return."
},
"offset": {
"type": "number",
"description": "How many to skip, for the next part of a long list."
}
},
"required": []
}⚪clickd_signup(email)
Signs the person up with their email and returns their free key, shown once, with the command to connect with it. When: before any call that needs a key, when the person has none. Instead: clickd_claim, once connected with the key, to make a site theirs. Inputs: `email` is the person's own address. Returns: email, key, connect and next. Fails: an email already signed up, or not an email, says so; three an hour from one address. Needs no key.
入力スキーマ
{
"type": "object",
"properties": {
"email": {
"type": "string",
"description": "The person's email address."
}
},
"required": [
"email"
]
}🟢clickd_check(kind, url)
Checks one live address now, as the free tools do: product data, a page as an agent reads it, an X card, a certificate, or location pages. When: before and after a fix to one page, link or host. Instead: clickd_rescan and clickd_changes for every page of a site; clickd_pages for a page as last read. Inputs: `kind` is product, agent, x_card, ssl or locations. `url` is the page's full address; for ssl, only its host is used; for locations, the brand's site. Returns: the findings, each with its state in a word and what to do when it is wrong. Fails: a private address is refused, and robots.txt is obeyed; the free tools' hourly allowance applies. Works with no key.
入力スキーマ
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": [
"product",
"agent",
"x_card",
"ssl",
"locations"
],
"description": "Which check."
},
"url": {
"type": "string",
"description": "The address to check, such as https://example.com/products/linen-shirt."
}
},
"required": [
"kind",
"url"
]
}🟢clickd_schema_create(type, as, fields)
Makes JSON-LD for one page from the fields given, ready to paste, and fetches nothing. When: to write the structured data a fix asks for; call it with only type to see the fields. Instead: clickd_check with kind product to check a live product page. Inputs: `type` is one of the types offered; `as` a more exact one, such as Plumber; `fields` the values by field key, as text. Give only what the page shows. Returns: jsonld, script (ready to paste), missing, problems, recommended and fields. Fails: a type not offered says which are. Works with no key.
入力スキーマ
{
"type": "object",
"properties": {
"type": {
"type": "string",
"description": "The schema type to make.",
"enum": [
"LocalBusiness",
"Organization",
"Product",
"Article",
"BreadcrumbList",
"Service",
"Event",
"WebSite"
]
},
"as": {
"type": "string",
"description": "A more exact type, for LocalBusiness (such as Plumber, RoofingContractor, Restaurant) or Article (BlogPosting, NewsArticle)."
},
"fields": {
"type": "object",
"description": "Values by field key, as text, such as { \"name\": \"Acme Plumbing\" }. A list is one value a line."
}
},
"required": [
"type"
]
}コミュニティ
エビデンス