{
  "name": "researcher-now",
  "title": "Researcher — Article & Video Analysis + Deep Research",
  "description": "Turn your agent into a researcher. MCP-native: article & video/podcast analysis (any URL -> reader-grade markdown + finished structured analysis), deep multi-source cited research, recall of prior research, and expert-persona corpora. Connect at https://researcher.now/mcp — no API key required to start (keyless wallet-pay), or use a customer rk_ key.",
  "contractVersion": "2026-06-28",

  "mcpServers": {
    "researcher-now": {
      "type": "http",
      "url": "https://researcher.now/mcp"
    }
  },

  "endpoint": "https://researcher.now/mcp",
  "url": "https://researcher.now/mcp",
  "transport": "streamable_http",
  "protocolVersion": "2025-06-18",

  "auth": {
    "modes": ["keyless", "bearer"],
    "required": false,
    "keyless": "No API key needed to connect. initialize, tools/list, and read-only tools work anonymously. Paid tools (deep_research, analyze_article, analyze_video, ask_persona, ask_corpus) answer HTTP 402 with an MPP session challenge — authorize it from a wallet and the call provisions a persistent account and returns a durable key in the X-Researcher-Agent-Key response header.",
    "bearer": "Authorization: Bearer $RESEARCHER_TOKEN — a customer rk_ key. Admin tokens are not accepted on the MCP surface.",
    "header": "Authorization: Bearer $RESEARCHER_TOKEN",
    "customerKeysOnly": true,
    "adminTokensAccepted": false
  },

  "tools": [
    { "name": "analyze_article", "description": "Any article URL -> reader-grade markdown + structured analysis (claims, facts, quantitative data, stakeholder positions, quotes) + a durable runId/viewerUrl." },
    { "name": "analyze_video", "description": "Any YouTube / X video post / Spotify / Apple Podcasts URL -> full transcript with speaker-aware quotes + the same structured analysis + durable runId/viewerUrl." },
    { "name": "deep_research", "description": "One explicit call -> a synthesized, cited Research Report. Poll research_status until succeeded. Bound spend with limits.maxCostUsd." },
    { "name": "research_status", "description": "Poll a deep_research run by id until succeeded; returns watchUrl/viewerUrl." },
    { "name": "recall_research", "description": "Instantly recall anything your org has already researched, with citations — check before paying for new work." },
    { "name": "research_inbox", "description": "Pull and acknowledge runs delivered to your agent inbox." },
    { "name": "list_personas", "description": "List the public expert-persona corpora available to ask." },
    { "name": "ask_persona", "description": "Ask a named expert persona; returns a cited, on-voice answer with sessionId + depth (quick|deep)." },
    { "name": "ask_corpus", "description": "One-call alias for a known public persona corpus; reuses ask_persona billing, citations, sessionId, and depth." },
    { "name": "list_persona_sessions", "description": "List prior chat sessions for a persona." },
    { "name": "list_topics", "description": "List standing research topics (living, cited knowledge bases)." },
    { "name": "topic_brief", "description": "Get the current cited brief for a standing topic." },
    { "name": "get_source_package", "description": "Download one source's full delivery package from a persona's corpus: cleaned source text, timestamped transcript (video/podcast), graded claims+quotes (evidence.json), summary.md, and citation handles. Pass persona + sourceId; add file to fetch any one file in full." }
  ],

  "setup": {
    "claudeDesktop": "Add to claude_desktop_config.json under mcpServers: {\"researcher-now\": {\"type\": \"http\", \"url\": \"https://researcher.now/mcp\"}}",
    "codex": "codex mcp add researcher-now --url https://researcher.now/mcp --bearer-token-env-var RESEARCHER_TOKEN",
    "hermes": "pip install researcher-now && hermes plugins enable researcher-now",
    "skill": "npx skills add researcher-now/skill",
    "installPage": "https://researcher.now/install/"
  },

  "fullContract": {
    "agentJson": "https://researcher.now/agent.json",
    "agentTxt": "https://researcher.now/agent.txt",
    "llmsTxt": "https://researcher.now/llms.txt",
    "openapi": "https://researcher.now/openapi.json"
  }
}
