{
  "name": "pwgraph research intake",
  "description": "Submit a research item into Protocol Wealth's de-identified research concept-graph. Intake-only and built for untrusted AI input: every submission is screened for prompt injection/poisoning, de-identified, assessed, and queued PENDING for human review. It never reads and never commits, and it echoes no graph data.",
  "provider": {
    "organization": "Protocol Wealth",
    "url": "https://pwgraph.com"
  },
  "documentationUrl": "https://pwgraph.com/",
  "version": "1.0.0",
  "protocol": "https-rest",
  "endpoint": {
    "url": "https://mcp.pwgraph.com/submit",
    "method": "POST",
    "contentType": "application/json"
  },
  "authentication": {
    "scheme": "bearer",
    "in": "header",
    "name": "authorization",
    "description": "A pwgraph submit token, distinct from any read/service key; it unlocks ONLY /submit. Obtained by coordination with Protocol Wealth (see /.well-known/security.txt)."
  },
  "defaultInputModes": ["application/json"],
  "defaultOutputModes": ["application/json"],
  "skills": [
    {
      "id": "submit-concept",
      "name": "Submit research concept",
      "description": "File a research item into the guardian queue. Runs screen -> de-identify -> assess -> PENDING (founder review) before anything joins the graph.",
      "tags": ["research", "intake", "concept-graph"],
      "request": {
        "schema": {
          "type": "object",
          "required": ["body"],
          "properties": {
            "body": { "type": "string", "description": "The research text (thesis, concept, observation, or link)." },
            "kind": { "type": "string", "description": "Optional item type, e.g. thesis, concept, link." }
          }
        },
        "maxBodyBytes": 65536
      },
      "response": {
        "schema": {
          "type": "object",
          "properties": {
            "id": { "type": "string" },
            "status": { "type": "string", "enum": ["pending"] },
            "redactions": { "type": "integer" },
            "note": { "type": "string" }
          }
        }
      },
      "examples": [
        "{\"body\":\"foundry capex re-accelerating on advanced-packaging demand\",\"kind\":\"thesis\"}"
      ]
    }
  ],
  "rateLimit": {
    "scope": "per-submit-token and per-client-ip",
    "default": "60 requests / 60 seconds",
    "onExceeded": "HTTP 429 with Retry-After"
  },
  "errors": {
    "401": "missing or invalid submit token",
    "404": "path other than /submit (the read/MCP surface is not internet-reachable)",
    "413": "body over 64 KB",
    "429": "rate limit exceeded (see Retry-After)",
    "503": "no submit token configured (fails closed)"
  },
  "boundaries": "De-identified research only. No client data, no PII, no financial advice. Read/MCP surface is internal-only."
}
