← Files Context — ctxt.ioARCHIVED FILE

plugin.json

6.75 KB · Nov 3, 2026 · 19:19 UTC

↓ Download file

{
  "$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
  "name": "ctxt",
  "version": "0.3.6",
  "description": "Share selected text, markdown, code, and static HTML as expiring ctxt.io links.",
  "author": {
    "name": "Subnets LLC",
    "email": "feedback@ctxt.io",
    "url": "https://ctxt.io"
  },
  "homepage": "https://ctxt.io/mcp/docs",
  "repository": "https://github.com/ctxt-io/ctxt-agents",
  "keywords": [
    "sharing",
    "links",
    "markdown",
    "code",
    "reports"
  ],
  "extensions": {
    "com.openai": {
      "interface": {
        "displayName": "Context \u2014 ctxt.io",
        "shortDescription": "Share links that expire",
        "longDescription": "Context turns content you choose to share into a public link that expires after 5 minutes, 30 minutes, 1 hour, 8 hours, or 1 day. Share text, rendered markdown, syntax-highlighted code, or static HTML reports with inline CSS and SVG. Read a public ctxt.io link back into your conversation, or revoke a link you created using its private deletion token. Anyone holding the share URL can read its content. Do not share credentials or sensitive personal data. HTML is sanitized and JavaScript never executes. Links created through this plugin display without Context advertisements or upgrade controls. Expired and deleted links are unavailable; password-protected links cannot be opened by this plugin.",
        "developerName": "Subnets LLC",
        "category": "Productivity",
        "capabilities": [
          "Create expiring share links",
          "Read public Context links",
          "Revoke links you created"
        ],
        "websiteURL": "https://ctxt.io/mcp/docs",
        "supportURL": "https://ctxt.io/faq",
        "privacyPolicyURL": "https://ctxt.io/privacy",
        "termsOfServiceURL": "https://ctxt.io/tos",
        "defaultPrompt": [
          "Share 'The launch is ready.' as a link that expires in one hour.",
          "Share a styled HTML table comparing apples and oranges as a one-hour link.",
          "Share this Python snippet with syntax highlighting: print('Hello, world!')"
        ],
        "composerIcon": "./assets/icon.png",
        "logo": "./assets/icon.png"
      },
      "review": {
        "demo_recording_url": "https://static.ctxt.io/review/openai/204e6798e4b53765c8ba1e9d/index.html",
        "commerce": false,
        "commerce_description": "The submitted MCP endpoint supports expiring content sharing, retrieval, and deletion. It does not expose checkout or payment tools or return upgrade links.",
        "test_cases": {
          "positive": [
            {
              "description": "Share plain text with a specified expiry",
              "prompt": "Share the text 'Context review: the launch is ready.' as a public link that expires in one hour.",
              "tools_triggered": "create_context",
              "expected_behavior": "Call create_context with the specified text and ttl=1h. Return a readable ctxt.io link and its expiry. Keep the deletion token separate from the public URL. The page contains the text and no Context ads or upgrade controls."
            },
            {
              "description": "Share a styled static HTML report",
              "prompt": "Make a styled HTML table comparing apples and oranges, and share it as a link that expires in one hour.",
              "tools_triggered": "create_context",
              "expected_behavior": "Create self-contained HTML with inline CSS and call create_context with format=html and ttl=1h. Return a readable link whose table and styling render. JavaScript does not execute."
            },
            {
              "description": "Share syntax-highlighted code",
              "prompt": "Share this Python snippet as a link that expires in eight hours, with syntax highlighting: print('Hello, world!')",
              "tools_triggered": "create_context",
              "expected_behavior": "Call create_context with format=code, lang=python, ttl=8h, and the exact snippet. Return a link displaying the snippet with syntax highlighting."
            },
            {
              "description": "Read a newly created public link",
              "prompt": "Share a one-hour markdown link: heading 'Review note', separate paragraph 'Launch status: ready.'. Read it back and report the status.",
              "tools_triggered": "create_context, read_context",
              "expected_behavior": "Create with format=markdown and ttl=1h, using the requested heading and separate paragraph. Read the returned URL with read_context and report 'ready' from the retrieved content."
            },
            {
              "description": "Revoke a link created during the test",
              "prompt": "Share 'Deletion review check' for 5m, delete it, and read it back. Show the original URL marked deleted. Keep the token private.",
              "tools_triggered": "create_context, delete_context, read_context",
              "expected_behavior": "Create with ttl=5m, then use its delete_token to delete it; expect deleted=true. Read the same URL and confirm content is unavailable. Return the original URL marked as deleted, without exposing the token."
            }
          ],
          "negative": [
            {
              "description": "Refuse content retrieval from another service",
              "prompt": "Use Context to read https://example.com/private-review-document.",
              "expected_behavior": "Explain that this plugin only reads ctxt.io links. Do not retrieve content from the foreign URL or invent its contents."
            },
            {
              "description": "Refuse deletion of a controlled fixture without its token",
              "prompt": "Delete the ctxt.io link https://ctxt.io/3/lzrellnXO. I didn't create it and I don't have its deletion token.",
              "expected_behavior": "This controlled link was created outside the chat; its token is withheld. Require the exact link's delete_token. Call no Context tools; do not guess, recover, or substitute a token, or claim deletion."
            },
            {
              "description": "Decline unsupported duration and payment requests",
              "prompt": "Create a 30-day link containing 'Long duration check' and give me a checkout link to pay for it.",
              "expected_behavior": "Offer 5m, 30m, 1h, 8h, or 1d and ask which to use. Do not call create_context until the user agrees. Give no pricing, payment directions, checkout links, or instructions to extend expiry using a deletion token."
            }
          ]
        }
      },
      "publication": {
        "release_notes": "Add the hosted video walkthrough for reviewers, covering sharing, HTML, code, reading, deletion, and unsupported requests. Review cases, MCP connection, and branding are unchanged from 0.3.4."
      },
      "apps": "./.app.json"
    }
  }
}

SHA-256: b874b9bb43bd633deb9d85b94555a2e6f9526c3dc01f57f5365b55b9ffd534e4