Agent Data Tools: Web, documents and search

11 tools: web pages, JS apps and PDFs as text, feeds, sitemaps, search. 25 free calls.

사용해야 할까요

품질 및 안전성

B
설명 품질
100%
스키마 완전성
100%
이름 품질
82%
오염 위험
0%
권한 일치
100%
프로토콜 준수
100%

발견 사항 (7)

  • HIGHTool poisoning patterns detected
  • MEDIUMTool description contains URL to non-standard domainextract에서
  • MEDIUMTool description contains URL to non-standard domainsummarize에서
  • MEDIUMTool description contains URL to non-standard domainscreenshot에서
  • MEDIUMTool description contains URL to non-standard domainpdf_text에서
  • MEDIUMTool description contains URL to non-standard domainextract_rendered에서
  • MEDIUMTool description contains URL to non-standard domainfeed에서

도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.

컨텍스트 비용

~4,816토큰 (도구 정의)
~3.2 KB일반적인 응답 크기
상당한 주의 영향 (128k 컨텍스트의 3.76%)

이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.

설치

원클릭 설치

`claude_desktop_config.json` 파일에 다음을 추가하세요:

{
  "mcpServers": {
    "agent-data-tools-web": {
      "url": "https://agent-data-tools.revmesh2074.workers.dev/mcp/web"
    }
  }
}

원격 엔드포인트

https://agent-data-tools.revmesh2074.workers.dev/mcp/webstreamable-http

할 수 있는 일

도구 목록

도구 (11)

🟢 읽기 전용🟡 쓰기🔴 삭제⚪ 알 수 없음
🟢extract(url, maxChars, format, section)

Fetch any public web page URL and get clean, LLM-ready text or Markdown: main content, code blocks, tables, links and headings, for RAG and agent context. Static HTML, Markdown or text; optional section ID. Default 20,000 output characters, max 100,000; input 2 MiB. No JavaScript rendering (see /extract/rendered), logins or paywalls. Empty pages, bad sections, browser challenges and errors are not charged. Use to read docs or articles. Example: url=https://example.com. Price $0.002/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

입력 스키마

{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "description": "Absolute http(s) URL of the page to fetch"
    },
    "maxChars": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991,
      "description": "Maximum characters of body text to return (500-100000, default 20000)"
    },
    "format": {
      "type": "string",
      "enum": [
        "text",
        "markdown",
        "both"
      ],
      "description": "Returned representation: text (default), markdown, or both. HTML structured details are included in every format; Markdown/plain sources have empty details."
    },
    "section": {
      "type": "string",
      "description": "Optional exact visible HTML ID within primary content, 1-500 characters. Heading scope includes subsections until next same/higher-level heading; section/article/main/div scope is its subtree. Missing/ambiguous/unsupported targets fail uncharged. URL fragments alone do not select a section."
    }
  },
  "required": [
    "url"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

출력 스키마

{
  "type": "object",
  "properties": {
    "url": {
      "type": "string"
    },
    "finalUrl": {
      "type": "string"
    },
    "status": {
      "type": "integer"
    },
    "contentType": {
      "type": "string"
    },
    "sourceMetadata": {
      "type": "object",
      "required": [
        "verification",
        "authors",
        "dates",
        "truncated"
      ],
      "description": "Page-level source declarations, not verified authorship or freshness. Head author/Open Graph date tags and bounded direct Schema.org JSON-LD Article/WebPage-like nodes only; exact-URL matches preferred, otherwise only one identity-free candidate. Author @id references resolve only to unambiguous local Person/Organization names, with both paths recorded. No external context/reference fetching or general JSON-LD expansion. Separate 2000-character value+provenance budget; 5 authors/10 dates. Original date strings are not normalized. Empty for Markdown/plain sources; unrelated entities and ambiguous nodes are omitted with warnings.",
      "properties": {
        "verification": {
          "const": "not_verified"
        },
        "truncated": {
          "type": "boolean"
        },
        "authors": {
          "type": "array",
          "maxItems": 5,
          "items": {
            "type": "object",
            "required": [
              "value",
              "source"
            ],
            "properties": {
              "value": {
                "type": "string",
                "maxLength": 256
              },
              "source": {
                "type": "string",
                "maxLength": 256
              }
            }
          }
        },
        "dates": {
          "type": "array",
          "maxItems": 10,
          "items": {
            "type": "object",
            "required": [
              "value",
              "source",
              "kind"
            ],
            "properties": {
              "value": {
                "type": "string",
                "maxLength": 128
              },
              "source": {
                "type": "string",
                "maxLength": 256
              },
              "kind": {
                "enum": [
                  "published",
                  "modified"
                ]
              }
            }
          }
        }
      }
    },
    "linkBaseUrl": {
      "type": "string",
      "description": "Effective source-derived HTTP(S) base for links: the first supported HTML base href outside inert/foreign subtrees, otherwise finalUrl. Credentials and non-HTTP(S) base values are ignored with a warning. HTML links/canonical use this base; raw Markdown keeps relative syntax and can be resolved using this field. No linked resource is fetched. This static interpretation does not evaluate scripts or Content Security Policy."
    },
    "sourceFormat": {
      "enum": [
        "html",
        "markdown",
        "plain"
      ],
      "description": "Source interpretation. Markdown is identified by text/markdown, or a .md/.markdown final path served as text/plain (warned). Markdown syntax is retained verbatim within the cap, not converted to HTML or parsed for structured details; text also retains that syntax. HTML section IDs are unsupported for Markdown/plain text."
    },
    "title": {
      "type": [
        "string",
        "null"
      ]
    },
    "description": {
      "type": [
        "string",
        "null"
      ]
    },
    "lang": {
      "type": [
        "string",
        "null"
      ]
    },
    "canonical": {
      "type": [
        "string",
        "null"
      ]
    },
    "format": {
      "enum": [
        "text",
        "markdown",
        "both"
      ]
    },
    "text": {
      "type": "string",
      "maxLength": 100000
    },
    "markdown": {
      "type": "string",
      "maxLength": 100000
    },
    "textLength": {
      "type": "integer",
      "minimum": 0,
      "description": "Full extracted text length before the character cap, within the input limit."
    },
    "truncated": {
      "type": "boolean",
      "description": "Input or requested primary representation is incomplete. Structured detail limits are reported separately in warnings."
    },
    "contentSelection": {
      "enum": [
        "main",
        "article",
        "body",
        "plain"
      ]
    },
    "contentHash": {
      "type": "string",
      "pattern": "^sha256:[a-f0-9]{64}$"
    },
    "hashFormat": {
      "enum": [
        "text",
        "markdown"
      ]
    },
    "fetchedAt": {
      "type": "string"
    },
    "warnings": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "headings": {
      "type": "array",
      "maxItems": 100,
      "items": {
        "type": "object",
        "required": [
          "level",
          "text",
          "id"
        ],
        "properties": {
          "level": {
            "type": "integer",
            "minimum": 1,
            "maximum": 6
          },
          "text": {
            "type": "string"
          },
          "id": {
            "type": [
              "string",
              "null"
            ],
            "maxLength": 500,
            "description": "Source HTML heading ID or direct child anchor ID, when present and supported; not a generated slug."
          }
        }
      }
    },
    "section": {
      "description": "Null for full primary-content reading. Otherwise the explicitly requested scope; title/description/canonical remain page-level metadata. Heading scope ends before the next same/higher-level heading, including nested subsections; container scope is its subtree.",
      "anyOf": [
        {
          "type": "null"
        },
        {
          "type": "object",
          "required": [
            "id",
            "title",
            "kind",
            "headingLevel"
          ],
          "properties": {
            "id": {
              "type": "string",
              "maxLength": 500
            },
            "title": {
              "type": [
                "string",
                "null"
              ]
            },
            "kind": {
              "enum": [
                "heading",
                "container"
              ]
            },
            "headingLevel": {
              "type": [
                "integer",
                "null"
              ],
              "minimum": 1,
              "maximum": 6
            }
          }
        }
      ]
    },
    "links": {
      "type": "array",
      "maxItems": 200,
      "items": {
        "type": "object",
        "required": [
          "href",
          "text"
        ],
        "properties": {
          "href": {
            "type": "string"
          },
          "text": {
            "type": "string"
          }
        }
      }
    },
    "codeBlocks": {
      "type": "array",
      "maxItems": 20,
      "items": {
        "type": "object",
        "required": [
          "language",
          "text",
          "truncated"
        ],
        "properties": {
          "language": {
            "type": [
              "string",
              "null"
            ]
          },
          "text": {
            "type": "string",
            "maxLength": 20000
          },
          "truncated": {
            "type": "boolean"
          }
        }
      }
    },
    "tables": {
      "type": "array",
      "maxItems": 20,
      "items": {
        "type": "object",
        "required": [
          "caption",
          "rows",
          "headerRows",
          "hasSpans",
          "truncated"
        ],
        "properties": {
          "caption": {
            "type": [
              "string",
              "null"
            ]
          },
          "rows": {
            "type": "array",
            "maxItems": 100,
            "items": {
              "type": "array",
              "maxItems": 20,
              "items": {
                "type": "string"
              }
            }
          },
          "headerRows": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 0,
              "maximum": 99
            }
          },
          "hasSpans": {
            "type": "boolean"
          },
          "truncated": {
            "type": "boolean"
          }
        }
      }
    }
  },
  "required": [
    "url",
    "finalUrl",
    "status",
    "contentType",
    "sourceFormat",
    "linkBaseUrl",
    "sourceMetadata",
    "title",
    "description",
    "lang",
    "canonical",
    "headings",
    "section",
    "links",
    "codeBlocks",
    "tables",
    "contentSelection",
    "warnings",
    "format",
    "textLength",
    "truncated",
    "contentHash",
    "hashFormat",
    "fetchedAt"
  ],
  "oneOf": [
    {
      "properties": {
        "format": {
          "const": "text"
        },
        "hashFormat": {
          "const": "text"
        }
      },
      "required": [
        "text"
      ],
      "not": {
        "required": [
          "markdown"
        ]
      }
    },
    {
      "properties": {
        "format": {
          "const": "markdown"
        },
        "hashFormat": {
          "const": "markdown"
        }
      },
      "required": [
        "markdown"
      ],
      "not": {
        "required": [
          "text"
        ]
      }
    },
    {
      "properties": {
        "format": {
          "const": "both"
        },
        "hashFormat": {
          "const": "text"
        }
      },
      "required": [
        "text",
        "markdown"
      ]
    }
  ]
}
🟢sitemap(url, contains, maxUrls, offset)

Read one public XML sitemap or sitemap index as structured URLs and source-reported dates. Supports gzip, substring filtering and pagination. Maximum 512 KiB expanded input and 1000 entries. Does not crawl pages or follow child sitemaps. Invalid XML and execution errors are not charged; a valid empty match is charged. Use to find which pages of a docs site to read before calling /extract. Example: url=https://www.sitemaps.org/sitemap.xml. Price $0.002/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

입력 스키마

{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "description": "Absolute public HTTP(S) XML sitemap URL; child sitemaps are not fetched automatically"
    },
    "contains": {
      "type": "string",
      "description": "Optional case-insensitive URL substring, at most 200 characters"
    },
    "maxUrls": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991,
      "description": "Reported matching locations examined in one page (1-100, default 25); invalid/nonpublic locations may reduce returned entries"
    },
    "offset": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991,
      "description": "Offset into distinct reported matching locations (0-1000, default 0); use nextOffset to continue"
    }
  },
  "required": [
    "url"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

출력 스키마

{
  "type": "object",
  "properties": {
    "url": {
      "type": "string"
    },
    "finalUrl": {
      "type": "string"
    },
    "kind": {
      "enum": [
        "urlset",
        "sitemapindex"
      ]
    },
    "entries": {
      "type": "array",
      "maxItems": 100,
      "items": {
        "type": "object",
        "required": [
          "url",
          "lastModified"
        ],
        "properties": {
          "url": {
            "type": "string",
            "maxLength": 2048
          },
          "lastModified": {
            "type": [
              "string",
              "null"
            ],
            "maxLength": 80,
            "description": "Source-reported value; not a verified modification time."
          }
        }
      }
    },
    "reportedEntries": {
      "type": "integer",
      "minimum": 0,
      "maximum": 1000
    },
    "uniqueReportedLocations": {
      "type": "integer",
      "minimum": 0,
      "maximum": 1000
    },
    "missingOrInvalidLocations": {
      "type": "integer",
      "minimum": 0
    },
    "duplicateReportedLocations": {
      "type": "integer",
      "minimum": 0
    },
    "rejectedLocationsInPage": {
      "type": "integer",
      "minimum": 0
    },
    "matchingReportedLocations": {
      "type": "integer",
      "minimum": 0,
      "description": "Distinct reported locations matching contains, before public-URL validation of the selected page."
    },
    "contains": {
      "type": "string",
      "maxLength": 200
    },
    "offset": {
      "type": "integer",
      "minimum": 0
    },
    "nextOffset": {
      "type": [
        "integer",
        "null"
      ],
      "minimum": 0
    },
    "hasMore": {
      "type": "boolean"
    },
    "warnings": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "text": {
      "type": "string"
    },
    "format": {
      "const": "text"
    },
    "hashFormat": {
      "const": "text"
    },
    "contentHash": {
      "type": "string",
      "pattern": "^sha256:[a-f0-9]{64}$"
    },
    "sourceHash": {
      "type": "string",
      "pattern": "^sha256:[a-f0-9]{64}$"
    },
    "fetchedAt": {
      "type": "string"
    }
  },
  "required": [
    "url",
    "finalUrl",
    "kind",
    "entries",
    "reportedEntries",
    "uniqueReportedLocations",
    "missingOrInvalidLocations",
    "duplicateReportedLocations",
    "rejectedLocationsInPage",
    "matchingReportedLocations",
    "contains",
    "offset",
    "nextOffset",
    "hasMore",
    "warnings",
    "text",
    "format",
    "hashFormat",
    "contentHash",
    "sourceHash",
    "fetchedAt"
  ]
}
🟢summarize(url)

Give a URL, get a short summary of the page plus three to six key points, ready to drop into an agent's context. Fetches the page, strips navigation and boilerplate, and summarizes the main text with an LLM. HTML pages only; for a PDF use pdf_text, then ai_summarize_text. Use for research, news triage, link previews and deciding whether a page is worth reading in full. For the full text use extract. Example: url=https://en.wikipedia.org/wiki/HTTP_402. Price $0.01/call via x402 USDC or a card key (/credits); failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

입력 스키마

{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "description": "Absolute http(s) URL of the page to summarize"
    }
  },
  "required": [
    "url"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢screenshot(url, fullPage)

Render any public web page in a real headless Chrome browser, with JavaScript executed, and get a JPEG screenshot (1280 px wide, base64) plus the final URL, HTTP status and page title. Set fullPage=true to capture up to 4000 px of page height. Use for visual checks, page previews, monitoring and feeding pages to vision models. Example: url=https://example.com. Price $0.02/call via x402 USDC or a card key (/credits); failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

입력 스키마

{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "description": "Absolute http(s) URL of the page to capture"
    },
    "fullPage": {
      "description": "Set to true to capture the full page height (max 4000 px) instead of the 1280x800 viewport",
      "type": [
        "string",
        "number",
        "boolean"
      ]
    }
  },
  "required": [
    "url"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢papers(query, limit, fromYear)

Search scholarly literature across journals, conferences, preprints and books: title, authors, year, venue, citation count, DOI link and abstract where available. Optional fromYear filter and up to 20 results per call. Use for research agents, literature reviews, fact-checking a claim against published work, and finding the DOI for a citation. Example: query=CRISPR off-target effects. Price $0.003/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

입력 스키마

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "Search terms, a title or a research question (3-300 characters)"
    },
    "limit": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991,
      "description": "Number of results, 1-20 (default 5)"
    },
    "fromYear": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991,
      "description": "Only works published in or after this year"
    }
  },
  "required": [
    "query"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢pdf_text(url, firstPage, pages, maxChars)

Download a public PDF (up to 10 MB) and return its text page by page, with title, author, page count and character counts. Choose a first page and how many pages to read (up to 200) and cap the output with maxChars. Scanned PDFs without a text layer, encrypted files and non-PDF URLs fail uncharged. Use to read papers, invoices, reports and manuals into an agent's context. Example: url=https://bitcoin.org/bitcoin.pdf. Price $0.005/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

입력 스키마

{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "description": "Absolute public http(s) URL of the PDF"
    },
    "firstPage": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991,
      "description": "First page to read (default 1)"
    },
    "pages": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991,
      "description": "How many pages to read (1-200, default 50)"
    },
    "maxChars": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991,
      "description": "Maximum characters of text returned across all pages (1000-200000, default 50000)"
    }
  },
  "required": [
    "url"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢extract_rendered(url, format, maxChars, section)

Same output as /extract, but the page is first rendered in a real browser, so single-page apps and pages that build their content with JavaScript come back with their text instead of an empty shell. Waits for the network to settle (up to 15 seconds). Public pages only; no login. Use when /extract returns EXTRACTION_EMPTY or too little text for a page you can read in a browser. Example: url=https://example.com/. Price $0.01/call via x402 USDC or a card key (/credits); failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

입력 스키마

{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "description": "Absolute public http(s) URL of the page"
    },
    "format": {
      "type": "string",
      "enum": [
        "text",
        "markdown",
        "both"
      ],
      "description": "text (default), markdown or both"
    },
    "maxChars": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991,
      "description": "Output limit, 500-100000 characters (default 20000)"
    },
    "section": {
      "type": "string",
      "description": "Optional exact HTML id to read only that element"
    }
  },
  "required": [
    "url"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢feed(url, limit)

Read a public RSS 2.0, RSS 1.0 or Atom feed and get the feed title, link and description plus its newest items: title, link, date (ISO 8601), short plain-text summary, author and id. Up to 50 items, feeds up to 2 MB. Lenient with real-world feeds; a page that is not a feed returns 422, uncharged. Use to follow news, blogs, release notes or podcasts without scraping pages. Example: url=https://github.blog/feed/. Price $0.003/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

입력 스키마

{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "description": "Absolute public http(s) URL of the feed"
    },
    "limit": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991,
      "description": "Items to return (1-50, default 20)"
    }
  },
  "required": [
    "url"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢url_meta(url)

Fetch a public web page's head and return link-preview metadata: title, description, site name, type, preview image, canonical URL, language, author, published time, favicon, theme colour, and every OpenGraph and Twitter-card field. Reads at most 512 KB and never runs JavaScript. Use to build link previews, label citations or check how a URL will unfurl before sharing it. Example: url=https://github.com/. Price $0.003/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

입력 스키마

{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "description": "Absolute public http(s) URL of the page"
    }
  },
  "required": [
    "url"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢wikipedia(title, lang)

Short summary of a Wikipedia article in any language edition: title, one-paragraph extract, description, thumbnail and page URL. Use to ground an agent's answer in a quick, citable fact sheet. Example: title=Stockholm. Price $0.003/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

입력 스키마

{
  "type": "object",
  "properties": {
    "title": {
      "type": "string",
      "description": "Article title"
    },
    "lang": {
      "type": "string",
      "description": "Language code (default en)"
    }
  },
  "required": [
    "title"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢dictionary(word)

Definitions of an English word from Wiktionary, grouped by part of speech, with example sentences where Wiktionary gives them, plus the page link and the CC BY-SA attribution to show. Use for writing help, vocabulary, translation checks and word games. Example: word=serendipity. Price $0.003/call via x402 USDC or a card key (/credits), first 25 free; failed calls free. Reads or computes only and changes nothing; each call is charged, so repeats are not free.

입력 스키마

{
  "type": "object",
  "properties": {
    "word": {
      "type": "string",
      "description": "An English word"
    }
  },
  "required": [
    "word"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

커뮤니티

이 서버 평가하기

증거

최근 관측

검증됨버전이 기록되지 않음도구 11개