{
  "schema_version": "1.0",
  "name": "instadash",
  "display_name": "Instadash",
  "description": "MCP-compliant grid canvas for AI agents. Push any JSON array to a live, filterable, human-editable grid. Closes the HITL loop: agents publish structured data, humans approve/edit rows, agents read back human decisions in one MCP call.",
  "homepage": "https://instadash.io",
  "documentation": "https://instadash.io/docs",
  "mcp_endpoint": "https://mcp.instadash.io/mcp",
  "authentication": {
    "type": "oauth_or_api_key",
    "oauth": {
      "authorization_server": "https://instadash.io/.well-known/oauth-authorization-server",
      "scopes": [
        "grids:read",
        "grids:write"
      ]
    },
    "api_key": {
      "header": "Authorization",
      "format": "Bearer {api_key}",
      "get_key_url": "https://instadash.io/workspace/api-keys"
    }
  },
  "tools": [
    {
      "name": "instadash_list",
      "description": "List grids in your workspace with their live URLs, row counts, and versions. Pass q to substring-filter by slug.",
      "input_schema": {
        "type": "object",
        "properties": {
          "q": {
            "type": "string",
            "description": "Optional case-insensitive substring filter on slug."
          }
        },
        "additionalProperties": false
      }
    },
    {
      "name": "instadash_get_schema",
      "description": "Column names, inferred types, and a sample row for a grid.",
      "input_schema": {
        "type": "object",
        "properties": {
          "grid": {
            "type": "string",
            "description": "Grid slug or handle/slug"
          }
        },
        "required": [
          "grid"
        ]
      }
    },
    {
      "name": "instadash_read",
      "description": "Read rows from a grid with optional pagination, server-side filter/sort, full-text search, and historical version selection. Edits made by humans are merged into the response when reading the latest version.",
      "input_schema": {
        "type": "object",
        "properties": {
          "grid": {
            "type": "string"
          },
          "offset": {
            "type": "integer",
            "minimum": 0
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 5000
          },
          "filter": {
            "type": "string",
            "description": "Equality filter, 'col=value' or 'col1=value1,col2=value2'."
          },
          "sort": {
            "type": "string",
            "description": "Multi-column sort, 'col:asc' or 'col:asc,col2:desc'."
          },
          "q": {
            "type": "string",
            "description": "Case-insensitive substring search across stringifiable cells."
          },
          "version": {
            "type": "integer",
            "minimum": 1,
            "description": "Read a historical version. Defaults to latest."
          }
        },
        "required": [
          "grid"
        ]
      }
    },
    {
      "name": "instadash_push",
      "description": "Create or update a named grid with rows. Returns a live URL + embed_url. Supports editable=true and action columns (checkbox/select/text) for HITL workflows, plus visibility and ttl_days at push time.",
      "input_schema": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "rows": {
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "title": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "tags": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "editable": {
            "type": "boolean"
          },
          "visibility": {
            "type": "string",
            "enum": [
              "public",
              "private"
            ]
          },
          "ttl_days": {
            "type": "integer",
            "minimum": 1
          },
          "actions": {
            "type": "array",
            "items": {
              "type": "object"
            }
          }
        },
        "required": [
          "name",
          "rows"
        ]
      }
    },
    {
      "name": "instadash_copy",
      "description": "Fork a public grid (or one of your own) into your account. New grid starts at v1 under your handle, defaults to private, records copied_from lineage.",
      "input_schema": {
        "type": "object",
        "properties": {
          "source": {
            "type": "string",
            "description": "'handle/slug' of the source grid."
          },
          "name": {
            "type": "string",
            "description": "Optional slug for the new grid; auto-suffixed on collision."
          }
        },
        "required": [
          "source"
        ]
      }
    },
    {
      "name": "instadash_delete",
      "description": "Permanently delete a grid you own. Removes rows, version history, mesh listing, and edit overlay.",
      "input_schema": {
        "type": "object",
        "properties": {
          "grid": {
            "type": "string"
          }
        },
        "required": [
          "grid"
        ]
      }
    },
    {
      "name": "instadash_update",
      "description": "Update grid metadata (title, description, tags, visibility, editable) without re-pushing rows. null clears string fields.",
      "input_schema": {
        "type": "object",
        "properties": {
          "grid": {
            "type": "string"
          },
          "title": {
            "type": [
              "string",
              "null"
            ]
          },
          "description": {
            "type": [
              "string",
              "null"
            ]
          },
          "tags": {
            "type": [
              "array",
              "null"
            ],
            "items": {
              "type": "string"
            }
          },
          "visibility": {
            "type": "string",
            "enum": [
              "public",
              "private"
            ]
          },
          "editable": {
            "type": "boolean"
          }
        },
        "required": [
          "grid"
        ]
      }
    },
    {
      "name": "instadash_write_cell",
      "description": "Write one or more cell values to an editable grid. Edits are tagged source=agent so HITL pollers can distinguish from human input.",
      "input_schema": {
        "type": "object",
        "properties": {
          "grid": {
            "type": "string"
          },
          "edits": {
            "type": "array",
            "items": {
              "type": "object"
            },
            "minItems": 1,
            "maxItems": 1000
          }
        },
        "required": [
          "grid",
          "edits"
        ]
      }
    },
    {
      "name": "instadash_rollback",
      "description": "Restore a previous version of your grid as a new latest version. History preserved.",
      "input_schema": {
        "type": "object",
        "properties": {
          "grid": {
            "type": "string"
          },
          "version": {
            "type": "integer",
            "minimum": 1
          }
        },
        "required": [
          "grid",
          "version"
        ]
      }
    },
    {
      "name": "instadash_list_versions",
      "description": "Version history for a grid.",
      "input_schema": {
        "type": "object",
        "properties": {
          "grid": {
            "type": "string"
          }
        },
        "required": [
          "grid"
        ]
      }
    },
    {
      "name": "instadash_edits",
      "description": "List human edits on a grid (HITL read-back). Ask \"what did the human approve/change?\" in a single call. Supports since (ISO timestamp) and source (human|agent) filters.",
      "input_schema": {
        "type": "object",
        "properties": {
          "grid": {
            "type": "string"
          },
          "since": {
            "type": "string",
            "description": "ISO 8601 timestamp — only return edits after this time"
          },
          "source": {
            "type": "string",
            "enum": [
              "human",
              "agent"
            ]
          }
        },
        "required": [
          "grid"
        ]
      }
    },
    {
      "name": "instadash_export",
      "description": "Get a CSV download URL for a grid. Streams the full grid with RFC 4180 escaping.",
      "input_schema": {
        "type": "object",
        "properties": {
          "grid": {
            "type": "string"
          }
        },
        "required": [
          "grid"
        ]
      }
    },
    {
      "name": "instadash_stats",
      "description": "Per-grid stats: current rows, version count, retained storage bytes, title/visibility/editable, timestamps.",
      "input_schema": {
        "type": "object",
        "properties": {
          "grid": {
            "type": "string"
          }
        },
        "required": [
          "grid"
        ]
      }
    },
    {
      "name": "instadash_usage",
      "description": "Account-level usage and plan limits: grids used/max, storage, per-push caps, rate limit, feature flags.",
      "input_schema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      }
    },
    {
      "name": "instadash_embed_snippet",
      "description": "Generate a ready-to-paste HTML iframe snippet for embedding a grid. Width/height/theme/compact controls.",
      "input_schema": {
        "type": "object",
        "properties": {
          "grid": {
            "type": "string"
          },
          "width": {
            "type": "string"
          },
          "height": {
            "type": "string"
          },
          "theme": {
            "type": "string",
            "enum": [
              "dark",
              "light"
            ]
          },
          "compact": {
            "type": "boolean"
          }
        },
        "required": [
          "grid"
        ]
      }
    },
    {
      "name": "instamesh_search",
      "description": "Semantic + keyword search across all public grids in the instamesh.",
      "input_schema": {
        "type": "object",
        "properties": {
          "q": {
            "type": "string"
          },
          "k": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100
          }
        },
        "required": [
          "q"
        ]
      }
    }
  ],
  "use_cases": [
    "Human-in-the-Loop lead review: agent pushes leads, human ticks approved rows, agent reads back the approvals via instadash_edits",
    "AI content review: agent drafts posts, human edits/approves, agent publishes only the approved ones",
    "Triage queues: agent surfaces bugs/tickets, human assigns priority, agent routes based on human input",
    "Data labelling / ground truth: agent proposes labels, human corrects, agent reads back human corrections via source=human filter",
    "Competitive intelligence: agent scrapes pricing pages, publishes to a sortable, embeddable grid",
    "Log / event analysis: pipe structured logs to a searchable, filterable grid without bloating the context window"
  ],
  "keywords": [
    "MCP",
    "agent canvas",
    "grid",
    "structured data",
    "JSON",
    "human-in-the-loop",
    "HITL",
    "persistent",
    "queryable",
    "agentic workflow",
    "token efficiency",
    "instamesh",
    "OAuth"
  ],
  "featured_grids": [
    {
      "handle": "showcase",
      "slug": "usgs-significant-earthquakes-30d",
      "title": "USGS Significant Earthquakes (Last 30 Days, M4.5+)",
      "description": "All earthquakes of magnitude 4.5 or greater detected by USGS in the last 30 days. Source: https://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/4.5_month.csv",
      "rows": 473,
      "url": "https://instadash.io/showcase/usgs-significant-earthquakes-30d",
      "rows_url": "https://instadash.io/showcase/usgs-significant-earthquakes-30d/rows",
      "markdown_url": "https://instadash.io/showcase/usgs-significant-earthquakes-30d/llms.md",
      "updated_at": "2026-05-13T10:58:26.670Z"
    },
    {
      "handle": "showcase",
      "slug": "nasa-near-earth-asteroids-may-jun-2026",
      "title": "NASA Near-Earth Asteroid Close Approaches (May-Jun 2026)",
      "description": "129 near-Earth asteroid close approaches between 2026-05-13 and 2026-06-09, sourced from NASA's NeoWs (Near-Earth Object Web Service) API. Includes velocity, miss distance, estimated diameter, and hazard flag.",
      "rows": 129,
      "url": "https://instadash.io/showcase/nasa-near-earth-asteroids-may-jun-2026",
      "rows_url": "https://instadash.io/showcase/nasa-near-earth-asteroids-may-jun-2026/rows",
      "markdown_url": "https://instadash.io/showcase/nasa-near-earth-asteroids-may-jun-2026/llms.md",
      "updated_at": "2026-05-13T10:29:24.868Z"
    },
    {
      "handle": "showcase",
      "slug": "world-cup-winners-history",
      "title": "FIFA World Cup Winners (1930-2022) - All 22 Editions",
      "description": "Complete history of FIFA World Cup champions from the inaugural 1930 tournament in Uruguay through Argentina's 2022 win in Qatar. Year, host, winner, runner-up, final score, and notable moments for every edition.",
      "rows": 22,
      "url": "https://instadash.io/showcase/world-cup-winners-history",
      "rows_url": "https://instadash.io/showcase/world-cup-winners-history/rows",
      "markdown_url": "https://instadash.io/showcase/world-cup-winners-history/llms.md",
      "updated_at": "2026-05-11T07:16:30.110Z"
    },
    {
      "handle": "showcase",
      "slug": "world-cup-2026-qualified-teams",
      "title": "FIFA World Cup 2026 - All 48 Qualified Teams",
      "description": "The full 48-team field for the 2026 FIFA World Cup, organised by group and confederation. Flags for host nations (USA, Mexico, Canada), debutants (Curacao, Jordan, Cape Verde, Uzbekistan), former champions, and title count. Italy is the most notable absentee - the only previous champion not at the tournament.",
      "rows": 48,
      "url": "https://instadash.io/showcase/world-cup-2026-qualified-teams",
      "rows_url": "https://instadash.io/showcase/world-cup-2026-qualified-teams/rows",
      "markdown_url": "https://instadash.io/showcase/world-cup-2026-qualified-teams/llms.md",
      "updated_at": "2026-05-11T07:16:26.649Z"
    },
    {
      "handle": "showcase",
      "slug": "world-cup-2026-fixtures",
      "title": "FIFA World Cup 2026 - Full 104-Match Schedule",
      "description": "Every match of the 2026 FIFA World Cup - 72 group-stage fixtures plus 32 knockout matches through to the final at MetLife Stadium on July 19. Tournament runs June 11 - July 19, 2026 across USA, Mexico, and Canada. Source: Yahoo Sports daily schedule (cross-referenced with FIFA), as of 2026-05-11.",
      "rows": 104,
      "url": "https://instadash.io/showcase/world-cup-2026-fixtures",
      "rows_url": "https://instadash.io/showcase/world-cup-2026-fixtures/rows",
      "markdown_url": "https://instadash.io/showcase/world-cup-2026-fixtures/llms.md",
      "updated_at": "2026-05-11T07:16:23.393Z"
    },
    {
      "handle": "showcase",
      "slug": "world-cup-all-time-top-scorers",
      "title": "FIFA World Cup All-Time Top Scorers",
      "description": "Top 20 goalscorers in FIFA World Cup history (post-2022). Klose leads with 16, Ronaldo 15, Gerd Muller 14. Messi and Mbappe are active for 2026 - Mbappe already on 12 at 27. Source: Wikipedia canonical list.",
      "rows": 20,
      "url": "https://instadash.io/showcase/world-cup-all-time-top-scorers",
      "rows_url": "https://instadash.io/showcase/world-cup-all-time-top-scorers/rows",
      "markdown_url": "https://instadash.io/showcase/world-cup-all-time-top-scorers/llms.md",
      "updated_at": "2026-05-11T07:16:19.977Z"
    },
    {
      "handle": "showcase",
      "slug": "world-cup-2026-debutants",
      "title": "World Cup 2026 - Debutants and Notable Returns",
      "description": "Teams making their first-ever World Cup appearance (Curacao, Jordan, Cape Verde, Uzbekistan) and notable returnees after long absences (Algeria, Norway, Scotland, Austria, Iraq, Haiti, DR Congo). 4 debutants + 7 returns. As of 2026-05-11.",
      "rows": 11,
      "url": "https://instadash.io/showcase/world-cup-2026-debutants",
      "rows_url": "https://instadash.io/showcase/world-cup-2026-debutants/rows",
      "markdown_url": "https://instadash.io/showcase/world-cup-2026-debutants/llms.md",
      "updated_at": "2026-05-11T07:16:16.769Z"
    },
    {
      "handle": "showcase",
      "slug": "world-cup-2026-venues",
      "title": "FIFA World Cup 2026 - 16 Host Venues",
      "description": "All 16 stadiums hosting the 2026 FIFA World Cup across USA, Mexico, and Canada. Capacities, host cities, opening match (Estadio Azteca, Mexico City), and final (MetLife Stadium, New Jersey). Static data, as of 2026-05-11.",
      "rows": 16,
      "url": "https://instadash.io/showcase/world-cup-2026-venues",
      "rows_url": "https://instadash.io/showcase/world-cup-2026-venues/rows",
      "markdown_url": "https://instadash.io/showcase/world-cup-2026-venues/llms.md",
      "updated_at": "2026-05-11T07:16:12.342Z"
    },
    {
      "handle": "showcase",
      "slug": "ai-coding-ides-2026",
      "title": "AI Coding IDEs - 2026",
      "description": "Cursor, Windsurf, Claude Code, Copilot, and JetBrains AI compared on price, MCP support, and target users. As of 2026-05-11.",
      "rows": 5,
      "url": "https://instadash.io/showcase/ai-coding-ides-2026",
      "rows_url": "https://instadash.io/showcase/ai-coding-ides-2026/rows",
      "markdown_url": "https://instadash.io/showcase/ai-coding-ides-2026/llms.md",
      "updated_at": "2026-05-11T00:53:21.004Z"
    },
    {
      "handle": "showcase",
      "slug": "mcp-servers-2026",
      "title": "Top MCP Servers by Category - 2026",
      "description": "Active MCP servers across dev tools, search, browsers, CRMs, and data. Filter by category or official status. As of 2026-05-11.",
      "rows": 14,
      "url": "https://instadash.io/showcase/mcp-servers-2026",
      "rows_url": "https://instadash.io/showcase/mcp-servers-2026/rows",
      "markdown_url": "https://instadash.io/showcase/mcp-servers-2026/llms.md",
      "updated_at": "2026-05-11T00:53:17.732Z"
    },
    {
      "handle": "showcase",
      "slug": "agent-frameworks-2026",
      "title": "AI Agent Frameworks 2026",
      "description": "Live comparison of agent frameworks - language, GitHub stars, design approach, MCP support. Tick the \"tracking\" column on rows you care about - an agent can read your picks back via the instadash_edits MCP tool. As of 2026-05-11.",
      "rows": 12,
      "url": "https://instadash.io/showcase/agent-frameworks-2026",
      "rows_url": "https://instadash.io/showcase/agent-frameworks-2026/rows",
      "markdown_url": "https://instadash.io/showcase/agent-frameworks-2026/llms.md",
      "updated_at": "2026-05-11T00:53:13.042Z"
    }
  ]
}