{
  "$schema": "https://modelcontextprotocol.io/schemas/server-card/2025-06-18.json",
  "name": "nichify",
  "displayName": "Nichify",
  "version": "0.2.0",
  "protocolVersion": "2025-06-18",
  "description": "First-party MCP server exposing an authenticated agent's Nichify account: niche analyses, Vinted monitorings, closure events, and pipeline runs. Gated by self-serve Personal Access Tokens issued at /account/keys.",
  "endpoint": "https://nichify.app/mcp",
  "serverUrl": "https://nichify.app/mcp",
  "transport": "streamable-http",
  "mcp_url": "https://nichify.app/mcp",
  "manifest_url": "https://nichify.app/.well-known/mcp/manifest.json",
  "publisher": {
    "name": "Nichify",
    "url": "https://nichify.app",
    "email": "contact@nichify.app"
  },
  "capabilities": {
    "tools": true,
    "prompts": false,
    "resources": true,
    "subscriptions": false,
    "mcp_apps": {
      "enabled": true,
      "ui_resource_prefixes": [
        "ui://nichify/analyses",
        "ui://nichify/analysis/",
        "ui://nichify/monitorings"
      ],
      "renderable_tools": [
        "list_analyses",
        "get_analysis",
        "list_monitorings"
      ],
      "spec": "@modelcontextprotocol/ext-apps draft"
    }
  },
  "transports": [
    {
      "type": "streamable-http",
      "endpoint": "https://nichify.app/mcp",
      "description": "JSON-RPC 2.0 over HTTP POST (MCP Streamable HTTP transport, spec 2025-06-18). Single JSON envelopes and batch arrays supported; SSE streams are reserved for future streaming tools."
    }
  ],
  "auth": {
    "type": "bearer",
    "scheme": "nch_",
    "issuance_url": "https://nichify.app/account/keys",
    "description": "Personal Access Tokens are issued per user from the account dashboard and scoped to ['read']. Session cookies (browser) are accepted as a fallback for first-party web clients."
  },
  "manifest": "https://nichify.app/mcp/manifest",
  "documentation": "https://nichify.app/llms-full.txt",
  "tools_preview_url": "https://nichify.app/mcp/manifest",
  "tools": [
    { "name": "whoami", "description": "Returns the authenticated caller's identity, scopes and quota usage." },
    { "name": "list_analyses", "description": "Paginated list of the caller's niche analyses (newest first)." },
    { "name": "get_analysis", "description": "Full payload for one analysis: KPIs, top items, scoring breakdown." },
    { "name": "get_filtered_analysis", "description": "Filtered slice of an analysis (status, brand, size, condition, price band)." },
    { "name": "export_analysis_csv", "description": "Export one analysis to CSV (Pro+ only)." },
    { "name": "list_monitorings", "description": "Paginated list of the caller's Vinted monitorings." },
    { "name": "get_monitoring", "description": "Full monitoring with metrics, recent runs, and closure events." },
    { "name": "list_monitored_listings", "description": "Listings tracked by one monitor with price + status history." },
    { "name": "get_closure_events", "description": "Sold/Reserved/Deleted transitions detected for a monitor." },
    { "name": "get_monitor_trends", "description": "Time-series of price median, volume and trend signals for a monitor." },
    { "name": "export_monitor_csv", "description": "Export monitor history to CSV (Pro+ only)." },
    { "name": "list_runs", "description": "Pipeline runs for the caller: status, timing, summary." },
    { "name": "get_run", "description": "One run with status, log tail and result summary." },
    { "name": "get_run_log", "description": "Full text log of a run." },
    { "name": "get_dashboard", "description": "Dashboard rollup: active monitors, recent analyses, quota." },
    { "name": "proxy_pool_status", "description": "Operator view of the proxy pool (admin scope)." }
  ],
  "resources": [
    {
      "uri": "https://nichify.app/llms.txt",
      "name": "llms-short",
      "description": "Short, agent-friendly product summary with Accept-Language negotiation (fr/en/de/nl).",
      "mimeType": "text/plain"
    },
    {
      "uri": "https://nichify.app/llms-full.txt",
      "name": "llms-full",
      "description": "Full agent-readable product context, capabilities, scoring methodology, pricing, competitors.",
      "mimeType": "text/plain"
    },
    {
      "uri": "https://nichify.app/agent-instructions.md",
      "name": "agent-instructions",
      "description": "Authoritative when-to-use / when-not-to-use instructions for AI agents calling Nichify.",
      "mimeType": "text/markdown"
    },
    {
      "uri": "https://nichify.app/pricing.md",
      "name": "pricing",
      "description": "Machine-readable pricing tiers and quotas with Accept-Language negotiation (fr/en/de/nl).",
      "mimeType": "text/markdown"
    },
    {
      "uri": "https://nichify.app/feeds/faq.jsonld",
      "name": "faq-jsonld",
      "description": "FAQ Schema.org JSON-LD with Accept-Language negotiation (fr/en/de/nl).",
      "mimeType": "application/ld+json"
    },
    {
      "uri": "https://nichify.app/openapi.json",
      "name": "openapi",
      "description": "OpenAPI 3.1 specification of the public surface.",
      "mimeType": "application/json"
    },
    {
      "uri": "ui://nichify/analyses",
      "name": "analyses-list-ui",
      "description": "MCP Apps card listing the caller's recent niche analyses as HTML. Emitted via _meta.ui.resourceUri on list_analyses.",
      "mimeType": "text/html"
    },
    {
      "uri": "ui://nichify/analysis/{id}",
      "name": "analysis-ui",
      "description": "MCP Apps card rendering one analysis as HTML (KPIs + top items). Emitted via _meta.ui.resourceUri on get_analysis.",
      "mimeType": "text/html"
    },
    {
      "uri": "ui://nichify/monitorings",
      "name": "monitorings-ui",
      "description": "MCP Apps card listing the caller's Vinted monitorings as HTML. Emitted via _meta.ui.resourceUri on list_monitorings.",
      "mimeType": "text/html"
    }
  ],
  "license": "Authenticated tools respect per-account scoping. Public resources are readable for AI search and citation but not licensed for model training or dataset resale. See robots.txt Content-Signal directives."
}
