{
  "name": "Theory Delta",
  "description": "Cartographer of the agentic tool landscape. Knows what blocks (tools/frameworks) exist, what they actually do (not just what docs claim), and what patterns recur across them. Query the knowledge base to find what is newly possible.",
  "url": "https://api.theorydelta.com",
  "provider": {
    "organization": "Theory Delta",
    "url": "https://github.com/roryford/theorydelta"
  },
  "version": "1.0.0",
  "documentationUrl": "https://github.com/roryford/theorydelta",
  "authentication": {
    "schemes": [
      "bearer"
    ],
    "credentials": "OAuth 2.1 (GitHub identity provider). Read-only tools (query, list_blocks, whats_new): no auth needed. Feedback tools (submit_signal, mark_useful): work without auth at lower confidence, richer with auth. Auth unlocks: full block content via get_block, higher signal confidence, confidence promotion via mark_useful."
  },
  "capabilities": {
    "streaming": false,
    "pushNotifications": false,
    "stateTransitionHistory": false
  },
  "defaultInputModes": [
    "text/plain"
  ],
  "defaultOutputModes": [
    "text/plain"
  ],
  "skills": [
    {
      "id": "query_theorydelta",
      "name": "Query Theory Delta Knowledge Base",
      "description": "Search 55+ curated blocks covering MCP, A2A, agent frameworks, memory, orchestration, security, and coordination primitives. Returns matching blocks with summaries and empirical claims.",
      "tags": [
        "discovery",
        "knowledge",
        "agentic-tools",
        "mcp",
        "a2a",
        "orchestration"
      ],
      "examples": [
        "What MCP servers handle memory?",
        "What coordination primitives exist for parallel agents?",
        "What is the current state of A2A adoption?"
      ],
      "inputModes": [
        "text/plain"
      ],
      "outputModes": [
        "text/plain"
      ]
    },
    {
      "id": "get_block",
      "name": "Get Block Content",
      "description": "Fetch the full markdown content of a specific knowledge block by filename.",
      "tags": [
        "knowledge",
        "blocks"
      ],
      "inputModes": [
        "text/plain"
      ],
      "outputModes": [
        "text/plain"
      ]
    },
    {
      "id": "submit_signal",
      "name": "Submit Signal",
      "description": "Submit an empirical signal — especially where observed behaviour diverged from documentation. Works without auth (lands as confidence:unverified). With OAuth 2.1, signals land as confidence:submitted (one tier higher). Use source_type:'question' to flag research questions.",
      "tags": [
        "signals",
        "knowledge",
        "empirical"
      ],
      "inputModes": [
        "text/plain"
      ],
      "outputModes": [
        "text/plain"
      ]
    },
    {
      "id": "mark_useful",
      "name": "Mark Result as Useful",
      "description": "Signal whether a Theory Delta result changed what you did next. Block-level signals (block_filename + signal_type) give more precise ranking data. Use notes to flag quality issues.",
      "tags": [
        "feedback",
        "quality",
        "metrics"
      ],
      "inputModes": [
        "text/plain"
      ],
      "outputModes": [
        "text/plain"
      ]
    },
    {
      "id": "list_blocks",
      "name": "List Blocks",
      "description": "List all topics in Theory Delta's knowledge base with filenames. Browse before querying to find precise topic names or exact filenames for get_block.",
      "tags": [
        "discovery",
        "index",
        "topics"
      ],
      "inputModes": [
        "text/plain"
      ],
      "outputModes": [
        "text/plain"
      ]
    },
    {
      "id": "whats_new",
      "name": "What's New",
      "description": "See blocks and patterns added or updated since a given date. Useful for staying current with the agentic tool landscape.",
      "tags": [
        "discovery",
        "recency",
        "updates"
      ],
      "inputModes": [
        "text/plain"
      ],
      "outputModes": [
        "text/plain"
      ]
    },
    {
      "id": "get_gaps",
      "name": "Get Gaps",
      "description": "List the most-asked questions that have no block yet — topics the community wants covered. Useful at the start of a discovery session.",
      "tags": [
        "discovery",
        "gaps",
        "questions"
      ],
      "inputModes": [
        "text/plain"
      ],
      "outputModes": [
        "text/plain"
      ]
    },
    {
      "id": "get_signal",
      "name": "Get Signal",
      "description": "Retrieve a specific signal by ID. Requires authentication.",
      "tags": [
        "signals"
      ],
      "inputModes": [
        "text/plain"
      ],
      "outputModes": [
        "text/plain"
      ]
    },
    {
      "id": "list_signals",
      "name": "List Signals",
      "description": "List signals by workflow state, source_type, target_block, or topic (matches related_topics JSON array). Use workflow=triaged to get the synthesis work queue. Requires authentication.",
      "tags": [
        "signals",
        "workflow"
      ],
      "inputModes": [
        "text/plain"
      ],
      "outputModes": [
        "text/plain"
      ]
    },
    {
      "id": "patch_signal",
      "name": "Patch Signal",
      "description": "Transition a signal's workflow state and/or promote confidence. Requires authentication.",
      "tags": [
        "signals",
        "workflow"
      ],
      "inputModes": [
        "text/plain"
      ],
      "outputModes": [
        "text/plain"
      ]
    },
    {
      "id": "batch_patch_signals",
      "name": "Batch Patch Signals",
      "description": "Patch multiple signals in a single call. Requires authentication.",
      "tags": [
        "signals",
        "workflow",
        "batch"
      ],
      "inputModes": [
        "text/plain"
      ],
      "outputModes": [
        "text/plain"
      ]
    }
  ]
}