Wodan Posture

Access-posture reports for agent data sourcing: robots, bot wall, licensing. Paid per call via x402.

我该使用它吗

质量与安全性

A
描述质量
100%
模式完整度
100%
命名质量
80%
投毒风险
100%
权限匹配度
100%
协议合规性
100%

基于对工具定义和协议合规性的自动分析。

上下文开销

~1,496token 数(工具定义)
~1.1 KB典型响应大小
对注意力有中等影响(占 128k 上下文窗口的 1.17%)

这是每次将服务器的工具加载到模型上下文窗口时所消耗的大致 token 数。数值越高,可用于其他任务的注意力就越少。

安装

一键安装

将以下内容添加到你的 `claude_desktop_config.json` 文件中:

{
  "mcpServers": {
    "wodan-posture": {
      "url": "https://wodan-posture.app.goedvps.com/mcp"
    }
  }
}

远程端点

https://wodan-posture.app.goedvps.com/mcpstreamable-http

它能做什么

工具清单

工具(6)

🟢 只读🟡 写入🔴 删除⚪ 未知
⚪page_posture(url)

Paid: $0.01 USDC on Base per call, paid automatically by an x402-capable MCP client. No signup, no API key. Analyses one public http(s) URL and reports whether an agent may treat it as a machine-readable data source: exact-path robots.txt verdict, bot-wall vendor, JavaScript requirement, extractable content, JSON-LD types, licence hint, evidence lines. Verdicts: open, machine_readable, robots_disallowed, bot_walled, auth_required, js_rendered, thin_content, unreachable. An unanalysable URL is never charged for (error target_not_analysable). Argument: url. Free alternative for the verdict alone: posture_preview.

输入模式

{
  "type": "object",
  "properties": {
    "url": {
      "description": "Public http(s) URL to analyse. Must be reachable from the internet; private, loopback and link-local addresses are refused (target_not_analysable) and are never charged for.",
      "title": "Url",
      "type": "string"
    }
  },
  "required": [
    "url"
  ],
  "title": "page_postureArguments"
}
⚪page_sources(url)

Paid: $0.02 USDC on Base per call, paid automatically by an x402-capable MCP client. No signup, no API key. For one public http(s) URL returns the posture verdict plus where the data is: sitemaps (robots.txt Sitemap lines and /sitemap.xml, with the status observed), RSS/Atom feeds, whether /llms.txt answers 200, the status of /.well-known/x402, ai-plugin.json and mcp.json, JSON/CSV/XML endpoints, JSON-LD types, licence hint. Every field is observed or explicitly empty with a reason. An unanalysable URL (target_not_analysable) or a site that advertises nothing (nothing_to_report) is never charged for. Argument: url.

输入模式

{
  "type": "object",
  "properties": {
    "url": {
      "description": "Public http(s) URL to analyse. Must be reachable from the internet; private, loopback and link-local addresses are refused (target_not_analysable) and are never charged for.",
      "title": "Url",
      "type": "string"
    }
  },
  "required": [
    "url"
  ],
  "title": "page_sourcesArguments"
}
⚪page_data(url)

Paid: $0.03 USDC on Base per call. No signup, no API key. Returns the machine-readable data one public http(s) URL already publishes: every JSON-LD block, OpenGraph/Twitter-card/standard meta, embedded JSON state blobs (e.g. __NEXT_DATA__), parsed entries if the document is RSS/Atom/JSON Feed, HTML tables, and alternate/canonical links - each capped and returned exactly as observed, nothing invented or inferred by a model. Does not render JavaScript, does not follow links off the page, does not summarize. An unanalysable URL is never charged for (error target_not_analysable); a page with nothing extractable answers nothing_to_report, also uncharged.

输入模式

{
  "type": "object",
  "properties": {
    "url": {
      "description": "Public http(s) URL to analyse. Must be reachable from the internet; private, loopback and link-local addresses are refused (target_not_analysable) and are never charged for.",
      "title": "Url",
      "type": "string"
    }
  },
  "required": [
    "url"
  ],
  "title": "page_dataArguments"
}
🟡pages_posture(urls)

Paid: $0.05 USDC on Base per call, as GET /v1/pages/posture?url=...&url=... (repeat url up to ten times) or POST /v1/pages/posture with a JSON body. No signup, no API key. Analyses up to 10 public http(s) URLs in ONE payment and ONE settlement, instead of paying page_posture ten times: the same access-posture report as page_posture, per URL, as a verdict array. An individual unanalysable or empty URL is never a batch failure - it is reported as its own error entry in results, target_not_analysable or nothing_to_report - and the batch is only charged (settles) when at least one URL could be analysed; if every URL fails the whole call answers 404 and nothing settles. Free companions cover a single URL: posture_preview and robots_check.

输入模式

{
  "type": "object",
  "properties": {
    "urls": {
      "description": "1 to 10 public http(s) URLs to analyse in one payment. Each is analysed independently: an unreachable or private URL never fails the batch, it is reported as its own error entry in results. Private, loopback and link-local addresses are refused per URL.",
      "items": {
        "type": "string"
      },
      "title": "Urls",
      "type": "array"
    }
  },
  "required": [
    "urls"
  ],
  "title": "pages_posture_toolArguments"
}
⚪posture_preview(url)

Free, no payment and no signup: 60 calls per hour, shared across all callers. Returns the headline of the same analysis - verdict, confidence, the full report's field schema, one evidence line and the price - so a caller can decide before paying. Use it when you only need the verdict; call page_posture ($0.01) for the complete report with evidence and provenance.

输入模式

{
  "type": "object",
  "properties": {
    "url": {
      "description": "Public http(s) URL to analyse. Must be reachable from the internet; private, loopback and link-local addresses are refused (target_not_analysable) and are never charged for.",
      "title": "Url",
      "type": "string"
    }
  },
  "required": [
    "url"
  ],
  "title": "posture_previewArguments"
}
🟢robots_check(url, agent)

Free, no signup: shares posture_preview's 60-calls-per-hour budget across all callers. Answers the RFC 9309 question for one public http(s) URL and one crawler token (argument agent, e.g. 'GPTBot'; optional, defaults to the wildcard '*' group): may this agent fetch this URL? Also reports the same decision for '*', gptbot, claudebot, googlebot, perplexitybot and ccbot in one call. An unreachable or unparsable robots.txt is reported as status unknown with allowed null - never guessed as allowed. The HTTP equivalent is GET /v1/robots/check. For the wider questions this tool does not answer: page_posture ($0.01) is the full access-posture report, page_sources ($0.02) is where the data is, page_data ($0.03) is the data itself.

输入模式

{
  "type": "object",
  "properties": {
    "url": {
      "description": "Public http(s) URL to analyse. Must be reachable from the internet; private, loopback and link-local addresses are refused (target_not_analysable) and are never charged for.",
      "title": "Url",
      "type": "string"
    },
    "agent": {
      "default": "*",
      "description": "Crawler user-agent token to evaluate against robots.txt, e.g. 'GPTBot'. Case-insensitive, stripped and truncated to 64 characters. Optional: omit it, or pass an empty string, to evaluate the wildcard ('*') group.",
      "title": "Agent",
      "type": "string"
    }
  },
  "required": [
    "url"
  ],
  "title": "robots_check_toolArguments"
}

社区

评价此服务器

证据

最近观测

已验证未记录版本6 个工具
已验证未记录版本2 个工具