protogrid

Search / com.goedvps.app.wodan-posture/wodan-posture

Wodan Posture

not classified

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

v1.7.0 · active · website · descriptor JSON · versions

Not classified yet.The remote endpoints have not been probed successfully, or the listing has nothing to connect to.
Quality67needs work
Trust53of 100
Uptime, 30 days84%
Latency p50403 ms

Connect

8 clients · secrets stay placeholders
{
  "mcpServers": {
    "wodan-posture": {
      "type": "http",
      "url": "https://wodan-posture.app.goedvps.com/mcp"
    }
  }
}
claude mcp add --transport http wodan-posture https://wodan-posture.app.goedvps.com/mcp
[mcp_servers.wodan-posture]
url = "https://wodan-posture.app.goedvps.com/mcp"
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "wodan-posture": {
      "type": "remote",
      "url": "https://wodan-posture.app.goedvps.com/mcp",
      "enabled": true
    }
  }
}
{
  "mcpServers": {
    "wodan-posture": {
      "type": "http",
      "url": "https://wodan-posture.app.goedvps.com/mcp"
    }
  },
  "deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=wodan-posture&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vd29kYW4tcG9zdHVyZS5hcHAuZ29lZHZwcy5jb20vbWNwIn0%3D"
}
{
  "servers": {
    "wodan-posture": {
      "type": "http",
      "url": "https://wodan-posture.app.goedvps.com/mcp"
    }
  }
}
{
  "mcpServers": {
    "wodan-posture": {
      "httpUrl": "https://wodan-posture.app.goedvps.com/mcp"
    }
  }
}
extensions:
  "wodan-posture":
    enabled: true
    name: "wodan-posture"
    type: streamable_http
    uri: "https://wodan-posture.app.goedvps.com/mcp"
    timeout: 300

Quality 67 / 100needs work

protocol88 · weight 25
  • pass
    protocol.modernsupports 2026-07-28 (server/discover)
  • pass
    protocol.statelessanswers without a session
  • pass
    protocol.transportstreamable HTTP
  • warn
    protocol.list_ttltools/list declares ttlMs 0, so clients re-fetch it on every use
authorizationn/a · weight 15
  • n/a
    auth.prm, auth.as_metadata, auth.cimdno remote uses OAuth
  • n/a
    auth.secret_in_urlno templated URL
tool hygiene71 · weight 30
  • pass
    tools.descriptionsevery tool has a description
  • pass
    tools.description_lengthdescriptions are concise
  • pass
    tools.schemasevery tool has an object input schema
  • fail
    tools.annotationsno tool declares readOnlyHint or destructiveHint, so clients cannot tell safe calls from risky ones
  • fail
    tools.directory_hintsno tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: page_report (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); posture_preview (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); robots_check (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); …
  • pass
    tools.token_costabout 2,935 tokens to load every tool
  • pass
    tools.api_dumptools are not a one-to-one API dump
stability25 · weight 15
  • warn
    stability.changes14 tool changes in 30 days
  • fail
    stability.rug_pull1 tools kept their name but changed most of their description in 30 days; review before trusting them
dependenciesn/a · weight 15
  • n/a
    deps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI package

11 tools, about 2,935 tokens to load them all · tool set d0cdc1772c59 · tools last changed 2026-10-01 · checked 2026-10-20 22:23 UTC

Tool changes

  • origin_policyadded

    Paid: $0.03 USDC on Base per call, paid automatically by an x402-capable MCP client. No signup, no API key. Returns the whole crawl policy of one public http(s) URL's origin, from ONE robots.txt fetch: every group, every rule with its line number in the file, which group governs each well-known agent and why, sitemaps resolved to absolute URLs, and two digests (robots_txt_sha256, policy_hash) to watch a policy for changes with one cheap call. An unanalysable URL is never charged for (error target_not_analysable). The free tool robots_check answers one agent's allow/disallow decision for one URL, for nothing. Argument: url.

  • robots_checkchangeddescription
    before

    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.

    after · 90% of words in common

    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. For many URLs at once, can_fetch ($0.02) answers the same question for up to 100 URLs in one payment, one robots.txt fetch per distinct origin.

  • can_fetchadded

    Paid: $0.02 USDC on Base per call, paid automatically by an x402-capable MCP client. No signup, no API key. Answers the RFC 9309 crawl-permission question for up to 100 public http(s) URLs in one payment: may the given crawler agent fetch each URL? One robots.txt fetch per distinct origin (at most 25 origins), not one per URL. Argument agent is the crawler token (e.g. 'GPTBot'); optional, defaults to the wildcard '*' group. An unreadable or unparsable robots.txt is reported as status unknown, allowed null - never guessed as allowed. Errors are never charged for. The free tool robots_check answers the same question for one URL at a time, for nothing. Arguments: urls (1 to 100 strings), agent (optional).

  • crawl_policyadded

    Free, no signup: shares posture_preview's 60-calls-per-hour budget across all callers. Returns live RFC 9309 allow/disallow decisions for a fixed, versioned sample of up to 24 public origins, computed from each origin's own robots.txt. A robots.txt that cannot be read is reported as unknown, never as allowed. Argument: limit (optional, 1-24, default all origins in the seed). The HTTP equivalent is GET /v1/agents/policy (add ?format=csv for CSV). For a single page's full access-posture report, use the paid tool page_posture ($0.01).

  • domain_reportadded

    Paid: $0.06 USDC on Base per call. No signup, no API key. The domain-level agent-access report for the ORIGIN of one public http(s) URL: robots.txt decisions for every well-known agent token at the given path, which agent-facing documents the origin publishes (llms.txt, /.well-known/x402, /.well-known/mcp.json, security.txt), whether its declared sitemap actually contains pages the origin allows an agent to fetch, and a sample of those pages analysed for agreement with the robots policy. Verdicts: open, restricted, blocked, mixed, unreachable. Answers a different question than page_posture: not 'can I fetch this one page' but 'what is this whole site's policy toward agents'. Free companion for a single agent at a single path: robots_check. An unanalysable target is never charged for (target_not_analysable); an origin that publishes nothing at all (no robots.txt, no discovery document, no sitemap, unreachable root page) answers nothing_to_report, also uncharged.

  • page_reportadded

    Paid: $0.04 USDC on Base per call. No signup, no API key. The whole-page report for one public http(s) URL in ONE payment: the access-posture report (page_posture), where the data is (page_sources) and the data itself (page_data), composed from the same builders as the three single routes, so $0.04 instead of $0.06 for three separate calls. If the posture component cannot be produced the whole call fails closed (target_not_analysable) and nothing settles; if sources or data fails or times out the answer is still 200 with that component absent from `products` and named in `partial`.

  • pages_postureadded

    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.

  • robots_checkadded

    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.

  • page_dataadded

    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.

  • posture_previewchangedinput schema

Showing the latest 10. Full history: list_changes · trend: quality JSON.

Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.

Trust 53 / 100

no-repositoryunreachable
provenance55
liveness0
freshness100
hygiene80

+dns-namespace +website -unreachable(8 failures) +updated-19d-ago -no-repository

Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.

Endpoints

remoteauthreachableuptime 30dp50protocollast ok
https://wodan-posture.app.goedvps.com/mcp streamable-httpnoneno (8 failures)84%403 ms2026-07-282026-10-02

Tools (11)

can_fetchPaid: $0.02 USDC on Base per call, paid automatically by an x402-capable MCP client. No signup, no API key. Answers the RFC 9309 crawl-permission question for up to 100 public http(s) URLs in one payment: may the given crawler agent fetch each URL? One robots.txt fetch per distinct origin (at most 25 origins), not one per URL. Argument agent is the crawler token (e.g. 'GPTBot'); optional, defaults to the wildcard '*' group. An unreadable or unparsable robots.txt is reported as status unknown, allowed null - never guessed as allowed. Errors are never charged for. The free tool robots_check answers the same question for one URL at a time, for nothing. Arguments: urls (1 to 100 strings), agent (optional).
crawl_policyFree, no signup: shares posture_preview's 60-calls-per-hour budget across all callers. Returns live RFC 9309 allow/disallow decisions for a fixed, versioned sample of up to 24 public origins, computed from each origin's own robots.txt. A robots.txt that cannot be read is reported as unknown, never as allowed. Argument: limit (optional, 1-24, default all origins in the seed). The HTTP equivalent is GET /v1/agents/policy (add ?format=csv for CSV). For a single page's full access-posture report, use the paid tool page_posture ($0.01).
domain_reportPaid: $0.06 USDC on Base per call. No signup, no API key. The domain-level agent-access report for the ORIGIN of one public http(s) URL: robots.txt decisions for every well-known agent token at the given path, which agent-facing documents the origin publishes (llms.txt, /.well-known/x402, /.well-known/mcp.json, security.txt), whether its declared sitemap actually contains pages the origin allows an agent to fetch, and a sample of those pages analysed for agreement with the robots policy. Verdicts: open, restricted, blocked, mixed, unreachable. Answers a different question than page_posture: not 'can I fetch this one page' but 'what is this whole site's policy toward agents'. Free companion for a single agent at a single path: robots_check. An unanalysable target is never charged for (target_not_analysable); an origin that publishes nothing at all (no robots.txt, no discovery document, no sitemap, unreachable root page) answers nothing_to_report, also uncharged.
origin_policyPaid: $0.03 USDC on Base per call, paid automatically by an x402-capable MCP client. No signup, no API key. Returns the whole crawl policy of one public http(s) URL's origin, from ONE robots.txt fetch: every group, every rule with its line number in the file, which group governs each well-known agent and why, sitemaps resolved to absolute URLs, and two digests (robots_txt_sha256, policy_hash) to watch a policy for changes with one cheap call. An unanalysable URL is never charged for (error target_not_analysable). The free tool robots_check answers one agent's allow/disallow decision for one URL, for nothing. Argument: url.
page_dataPaid: $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.
page_posturePaid: $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.
page_reportPaid: $0.04 USDC on Base per call. No signup, no API key. The whole-page report for one public http(s) URL in ONE payment: the access-posture report (page_posture), where the data is (page_sources) and the data itself (page_data), composed from the same builders as the three single routes, so $0.04 instead of $0.06 for three separate calls. If the posture component cannot be produced the whole call fails closed (target_not_analysable) and nothing settles; if sources or data fails or times out the answer is still 200 with that component absent from `products` and named in `partial`.
page_sourcesPaid: $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.
pages_posturePaid: $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.
posture_previewFree, 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.
robots_checkFree, 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. For many URLs at once, can_fetch ($0.02) answers the same question for up to 100 URLs in one payment, one robots.txt fetch per distinct origin.

Schemas: list_tools.

Similar MCP servers

Official server.json
{
  "name": "com.goedvps.app.wodan-posture/wodan-posture",
  "_meta": {
    "io.modelcontextprotocol.registry/publisher-provided": {
      "note": "No signup and no API key: the payment is a per-request x402 signature.",
      "tool": "wodan-posture",
      "price": "0.01-0.06 USDC per call depending on tool (eip155:8453)",
      "tools": [
        "page_posture (paid, $0.01)",
        "page_sources (paid, $0.02)",
        "page_data (paid, $0.03)",
        "page_report (paid, $0.04, posture + sources + data for one URL in one call)",
        "pages_posture (paid, $0.05, up to 10 URLs in one call)",
        "domain_report (paid, $0.06, domain-level agent-access report: robots decisions for every well-known agent, discovery documents, sitemap sampling, conflicts)",
        "can_fetch (paid, $0.02, batch crawl-permission check: RFC 9309 decision for up to 100 URLs in one call, one robots.txt fetch per distinct origin)",
        "origin_policy (paid, $0.03, the whole crawl policy of one origin: every group, every rule with its line number, which group governs each well-known agent and why, sitemaps and two digests)",
        "posture_preview (free, rate-limited)",
        "robots_check (free, rate-limited)",
        "crawl_policy (free, the public crawl-policy dataset: live RFC 9309 decisions for a fixed 24-origin sample)"
      ],
      "discovery": "https://wodan-posture.app.goedvps.com/.well-known/mcp.json"
    }
  },
  "title": "Wodan Posture",
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
  "remotes": [
    {
      "url": "https://wodan-posture.app.goedvps.com/mcp",
      "type": "streamable-http"
    }
  ],
  "version": "1.7.0",
  "websiteUrl": "https://wodan-posture.app.goedvps.com/",
  "description": "Access-posture reports for agent data sourcing: robots, bot wall, licensing. Paid per call via x402."
}