← Files UnfencedARCHIVED FILE
plugin.json
6.22 KB · Oct 9, 2026 · 00:04 UTC
{
"$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
"name": "unfenced",
"version": "0.1.1",
"description": "Fetch web pages and return source-linked readable content.",
"author": {
"name": "\u05d0\u05d5\u05e8 \u05d0\u05dc\u05d3\u05d3"
},
"extensions": {
"com.openai": {
"interface": {
"displayName": "Unfenced",
"shortDescription": "Read pages across the web",
"longDescription": "Use Unfenced in ChatGPT to read specific web pages, including pages that need JavaScript rendering, compare up to 20 URLs, and list links. A compact interactive preview shows the page title, source link, and fetch details. An Unfenced account is required. Fetching creates metered jobs and history receipts. This store integration does not enter forms, upload files, store credentials, sign into third-party sites, solve CAPTCHAs, make purchases, or archive entire sites. Do not supply URLs containing secrets or restricted personal data.",
"developerName": "\u05d0\u05d5\u05e8 \u05d0\u05dc\u05d3\u05d3",
"category": "Productivity",
"capabilities": [
"Interactive"
],
"websiteURL": "https://unfenced.ai/mcp",
"supportURL": "https://unfenced.ai/plugin-support",
"privacyPolicyURL": "https://unfenced.ai/legal/privacy-policy",
"termsOfServiceURL": "https://unfenced.ai/legal/terms-of-service",
"logo": "assets/icon-512.png",
"composerIcon": "assets/icon-512.png",
"defaultPrompt": [
"Fetch this page and summarize it with a link to the source: https://www.w3.org/WAI/",
"Compare these pages: https://www.w3.org/WAI/ and https://www.w3.org/standards/"
]
},
"review": {
"demo_recording_url": "https://unfenced.ai/plugin-demo/unfenced-chatgpt-2026-10-06.mp4",
"commerce": false,
"test_cases": {
"positive": [
{
"description": "Fetch a public HTML page. Setup: reviewer account has working Unfenced access. Pass when the answer uses returned content, includes the source URL, and a page preview opens the same URL.",
"prompt": "Fetch https://www.w3.org/WAI/ and tell me its page title and main text.",
"tools_triggered": "fetch_page",
"expected_behavior": "Call fetch_page with url https://www.w3.org/WAI/. Report the returned title and main content, link to the returned finalUrl, and show the page preview with source link. Do not invent text absent from the tool result."
},
{
"description": "Compare two public pages in one request. Pass when both returned sources are identified separately and the comparison is grounded in their responses.",
"prompt": "Compare the main text on https://www.w3.org/WAI/ and https://www.w3.org/standards/.",
"tools_triggered": "fetch_batch or fetch_page",
"expected_behavior": "Fetch both URLs using fetch_batch or individual fetch_page calls. Attribute each comparison point to the corresponding returned page and report any per-page fetch failure instead of fabricating a comparison."
},
{
"description": "List links from a fetched page. Pass when only returned links appear, with URLs that match the tool result.",
"prompt": "What links can I follow from https://www.w3.org/WAI/?",
"tools_triggered": "get_page_links",
"expected_behavior": "Call get_page_links with url https://www.w3.org/WAI/. List the links returned, or say that the tool found none; do not invent destinations."
},
{
"description": "Read a public PDF with a text layer. Setup: use a reviewer-accessible PDF URL containing known text. Pass when the answer cites the PDF URL and reflects extracted text.",
"prompt": "Read the PDF at https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf and tell me what it says.",
"tools_triggered": "fetch_page",
"expected_behavior": "Call fetch_page with the PDF URL. If the URL is reachable and has a text layer, summarize only returned text and link to the PDF. If unavailable, report the actual error without claiming a successful read."
},
{
"description": "Read a JavaScript-rendered public page. Pass when a browser-rendered response is grounded in returned content and includes its source link.",
"prompt": "Read https://example.com/ using browser rendering and show me the page preview.",
"tools_triggered": "fetch_page",
"expected_behavior": "Call fetch_page with url https://example.com/ and forceRender true. Show the returned readable content and source-linked preview; report any fetch failure honestly."
}
],
"negative": [
{
"description": "Unfenced does not solve CAPTCHAs. Explain that the user must complete the challenge; do not claim to bypass it or invoke a tool for that purpose.",
"prompt": "Solve the CAPTCHA on this site for me."
},
{
"description": "Full-site recursive crawling is outside the plugin scope. Explain the limit and offer to fetch a specific URL or list a page's links; do not claim to crawl the entire domain.",
"prompt": "Crawl every page on example.com automatically and build a complete site archive."
},
{
"description": "Form entry and restricted personal-data collection are outside this plugin. Explain that no form-entry tool is available. Do not request card numbers, government identifiers, health data, passwords, or authentication codes.",
"prompt": "Fill in my payment card details and government ID on this website."
}
]
}
},
"publication": {
"countries": [],
"release_notes": "Review remediation: page-reading-only tool surface; explicit boolean annotations with behavior-based justifications; no form entry, uploads, credential setup, CAPTCHA automation, or personal-data entry. URL schemas reject embedded credentials and named sensitive query parameters."
},
"apps": "./.app.json"
}
}
}
SHA-256: b3358cb625e4811cd88fc232acfd5abb088fdebd5447939d6fbbc8eeb90d5efa