{
  "server": {
    "id": "ext_1omx0zomecyqvx",
    "slug": "mcp-typescript-server-on-vercel",
    "url": "https://mcp.grep.app",
    "registry_name": null,
    "kind": "external_mcp_server",
    "hosted": false,
    "server": {
      "name": "mcp-typescript server on vercel",
      "version": "0.1.0",
      "protocol_version": "2025-03-26"
    },
    "publisher": {
      "status": "unclaimed"
    },
    "linked_store_listing": null,
    "integrity": {
      "fingerprint": "626ac028769168535bef927b9b0cd7c1f8c047dd5d55c1f178e4cf7443aeb82f",
      "fingerprint_version": 1,
      "first_seen_at": "2026-10-18T21:49:25.533Z",
      "last_checked_at": "2026-10-21T08:37:39.580Z",
      "last_status": "ok",
      "tool_count": 1,
      "note": "An integrity check compares the tool definitions a server serves now with the fingerprint recorded earlier. \"Unchanged\" means the definitions match what was recorded — it is not a finding that a tool is safe. \"Changed\" means the definitions differ from the record; the diff says how. \"Unreachable\" means the server could not be probed for this check, so nothing can be said about its current definitions."
    },
    "scan": {
      "status": "no_standing_flags",
      "standing_flag_ids": [],
      "note": "No standing security flags are recorded against this artifact. That is the absence of a record, not a finding that the artifact is safe."
    },
    "shadowing_warnings": [],
    "reviews": {
      "total": 0,
      "current_count": 0,
      "current_average": null,
      "older_count": 0
    },
    "page_url": "https://www.rightshold.com/store/external/mcp-typescript-server-on-vercel",
    "tools": [
      {
        "name": "searchGitHub",
        "description": "Find real-world code examples from over a million public GitHub repositories to help answer programming questions.\n\n**IMPORTANT: This tool searches for literal code patterns (like grep), not keywords. Search for actual code that would appear in files:**\n- ✅ Good: 'useState(', 'import React from', 'async function', '(?s)try {.*await'\n- ❌ Bad: 'react tutorial', 'best practices', 'how to use'\n\n**When to use this tool:**\n- When implementing unfamiliar APIs or libraries and need to see real usage patterns\n- When unsure about correct syntax, parameters, or configuration for a specific library\n- When looking for production-ready examples and best practices for implementation\n- When needing to understand how different libraries or frameworks work together\n\n**Perfect for questions like:**\n- \"How do developers handle authentication in Next.js apps?\" → Search: 'getServerSession' with language=['TypeScript', 'TSX']\n- \"What are common React error boundary patterns?\" → Search: 'ErrorBoundary' with language=['TSX']\n- \"Show me real useEffect cleanup examples\" → Search: '(?s)useEffect\\(\\(\\) => {.*removeEventListener' with useRegexp=true\n- \"How do developers handle CORS in Flask applications?\" → Search: 'CORS(' with matchCase=true and language=['Python']\n\nUse regular expressions with useRegexp=true for flexible patterns like '(?s)useState\\(.*loading' to find useState hooks with loading-related variables. Prefix the pattern with '(?s)' to match across multiple lines.\n\nFilter by language, repository, or file path to narrow results.",
        "inputSchema": {
          "type": "object",
          "properties": {
            "query": {
              "type": "string",
              "description": "The literal code pattern to search for (e.g., 'useState(', 'export function'). Use actual code that would appear in files, not keywords or questions."
            },
            "matchCase": {
              "type": "boolean",
              "description": "Whether the search should be case sensitive",
              "default": false
            },
            "matchWholeWords": {
              "type": "boolean",
              "description": "Whether to match whole words only",
              "default": false
            },
            "useRegexp": {
              "type": "boolean",
              "description": "Whether to interpret the query as a regular expression",
              "default": false
            },
            "repo": {
              "type": "string",
              "description": "Filter by repository.\n            Examples: 'facebook/react', 'microsoft/vscode', 'vercel/ai'.\n            Can match partial names, for example 'vercel/' will find repositories in the vercel org."
            },
            "path": {
              "type": "string",
              "description": "Filter by file path.\n            Examples: 'src/components/Button.tsx', 'README.md'.\n            Can match partial paths, for example '/route.ts' will find route.ts files at any level."
            },
            "language": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Filter by programming language.\n            Examples: ['TypeScript', 'TSX'], ['JavaScript'], ['Python'], ['Java'], ['C#'], ['Markdown'], ['YAML']"
            }
          },
          "required": [
            "query"
          ],
          "additionalProperties": false,
          "$schema": "http://json-schema.org/draft-07/schema#"
        }
      }
    ],
    "review_list": []
  }
}