protogrid

Find MCP servers by intent and get exactly how to connect to them right now. No proxying.

Sollte ich dies verwenden

Qualität und Sicherheit

A
Qualität der Beschreibung
84%
Vollständigkeit des Schemas
96%
Qualität der Benennung
100%
Risiko der Vergiftung
80%
Übereinstimmung der Berechtigungen
100%
Einhaltung des Protokolls
100%

Befunde (5)

  • HIGHTool poisoning patterns detected
  • MEDIUMTool 'get_connection' description contains placeholder textin get_connection
  • LOWTool 'get_server' description lacks action verbin get_server
  • LOWTool 'list_tools' description lacks action verbin list_tools
  • INFOTool description contains placeholder or incomplete textin get_connection

Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.

Kontextkosten

~3,434Tokens (Tool-Definitionen)
~7.6 KBTypische Antwortgröße
Erhebliche Auswirkung auf die Aufmerksamkeit (2.68% von 128k Kontext)

Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.

Installieren

Installation mit einem Klick

Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:

{
  "mcpServers": {
    "registry": {
      "url": "https://api.protogrid.dev/mcp"
    }
  }
}

Remote-Endpunkte

https://api.protogrid.dev/mcpstreamable-http

Was es kann

Tool-Inventar

Tools (5)

🟢 Nur lesen🟡 Schreiben🔴 Löschen⚪ Unbekannt
🟢search(q, limit, class, transport, category, ...)

Hybrid (keyword + semantic) search over servers and their tools. Filter by connection class to keep only what you can reach autonomously (R0, R1).

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "q": {
      "type": "string",
      "minLength": 1,
      "maxLength": 500,
      "description": "What you want to do, in plain words, e.g. 'send an email' or 'query postgres'"
    },
    "limit": {
      "description": "Results to return (default 10)",
      "type": "integer",
      "minimum": 1,
      "maximum": 50
    },
    "class": {
      "description": "Connection classes to keep, e.g. ['R0','R1']",
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "R0",
          "R1",
          "R2",
          "L0",
          "unknown"
        ]
      }
    },
    "transport": {
      "type": "string",
      "enum": [
        "streamable-http",
        "sse"
      ]
    },
    "category": {
      "type": "string",
      "enum": [
        "developer-tools",
        "databases",
        "web-search",
        "files-storage",
        "communication",
        "productivity",
        "ai-ml",
        "cloud-devops",
        "finance",
        "commerce",
        "maps-travel",
        "media",
        "science-health",
        "security",
        "iot-automation",
        "legal-government"
      ]
    },
    "min_trust": {
      "description": "Minimum trust score 0-100",
      "type": "integer",
      "minimum": 0,
      "maximum": 100
    },
    "flags": {
      "description": "Trust flags that must all be present",
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "multi-version-spam",
          "duplicate-repo",
          "no-repository",
          "no-connection",
          "deprecated",
          "unreachable",
          "blocked",
          "deleted"
        ]
      }
    },
    "exclude_flags": {
      "description": "Trust flags, any of which excludes a server, e.g. ['multi-version-spam','duplicate-repo']",
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "multi-version-spam",
          "duplicate-repo",
          "no-repository",
          "no-connection",
          "deprecated",
          "unreachable",
          "blocked",
          "deleted"
        ]
      }
    },
    "min_quality": {
      "description": "Minimum quality score 0-100; unscored servers are left out",
      "type": "integer",
      "minimum": 0,
      "maximum": 100
    },
    "quality_flags": {
      "description": "Quality flags that must all be present",
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "known-vulns",
          "outdated-mcp-sdk"
        ]
      }
    },
    "exclude_quality_flags": {
      "description": "Quality flags, any of which excludes a server, e.g. ['known-vulns']",
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "known-vulns",
          "outdated-mcp-sdk"
        ]
      }
    },
    "owner_verified": {
      "description": "true: only servers whose owner proved control of the namespace (not an audit)",
      "type": "boolean"
    }
  },
  "required": [
    "q"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string"
    },
    "mode": {
      "type": "string",
      "enum": [
        "hybrid",
        "keyword"
      ]
    },
    "count": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "results": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Official reverse-DNS name, the argument of every other tool"
          },
          "title": {
            "type": [
              "string",
              "null"
            ]
          },
          "description": {
            "type": [
              "string",
              "null"
            ]
          },
          "connection_class": {
            "type": "string",
            "enum": [
              "R0",
              "R1",
              "R2",
              "L0",
              "unknown"
            ],
            "description": "R0 remote no auth, R1 static secret, R2 OAuth, L0 local package"
          },
          "autonomous": {
            "type": "boolean",
            "description": "True when an agent can connect with no human step"
          },
          "human_steps": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "categories": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "trust_score": {
            "type": [
              "number",
              "null"
            ]
          },
          "trust_flags": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "quality_score": {
            "type": [
              "number",
              "null"
            ]
          },
          "quality_label": {
            "type": "string",
            "description": "strong, good, needs work, poor, new, not scored or blocked"
          },
          "quality_flags": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "known-vulns, outdated-mcp-sdk: raised by failing dependency checks"
          },
          "owner_verified": {
            "type": "boolean",
            "description": "The owner proved control of the namespace; not an audit"
          },
          "tool_count": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          },
          "score": {
            "type": "number",
            "description": "Relevance of this result to the query"
          },
          "matched_tools": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string"
                },
                "description": {
                  "type": [
                    "string",
                    "null"
                  ]
                }
              },
              "required": [
                "name",
                "description"
              ],
              "additionalProperties": {}
            }
          }
        },
        "required": [
          "name",
          "title",
          "description",
          "connection_class",
          "autonomous",
          "human_steps",
          "categories",
          "trust_score",
          "trust_flags",
          "quality_score",
          "quality_label",
          "quality_flags",
          "owner_verified",
          "tool_count",
          "score",
          "matched_tools"
        ],
        "additionalProperties": {}
      }
    },
    "next_actions": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "action": {
            "type": "string"
          },
          "arguments": {
            "type": "object",
            "propertyNames": {
              "type": "string"
            },
            "additionalProperties": {}
          }
        },
        "required": [
          "action"
        ],
        "additionalProperties": {}
      },
      "description": "Follow-up calls: action is the tool, arguments are ready to pass ({placeholders} are yours to fill)"
    }
  },
  "required": [
    "query",
    "mode",
    "count",
    "results",
    "next_actions"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": {}
}
🟢get_server(name, schemas)

Official server.json plus connectability (class, remotes with auth/health, packages), current tools, trust breakdown and identity for one server name.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "minLength": 1,
      "description": "Official reverse-DNS name, e.g. io.github.acme/acme-mcp"
    },
    "schemas": {
      "description": "Include tool input/output schemas (default false; use list_tools for full schemas)",
      "type": "boolean"
    }
  },
  "required": [
    "name"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "server": {
      "type": "object",
      "properties": {},
      "additionalProperties": {},
      "description": "The official server.json as published"
    },
    "_meta": {
      "type": "object",
      "properties": {
        "dev.protogrid/connectability": {
          "type": "object",
          "properties": {
            "class": {
              "type": "string",
              "enum": [
                "R0",
                "R1",
                "R2",
                "L0",
                "unknown"
              ],
              "description": "R0 remote no auth, R1 static secret, R2 OAuth, L0 local package"
            },
            "autonomous": {
              "type": "boolean"
            },
            "human_steps": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "remotes": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {},
                "additionalProperties": {}
              },
              "description": "Remotes with transport, auth, protocol and health"
            },
            "packages": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {},
                "additionalProperties": {}
              },
              "description": "Packages with runtime hint and required secrets"
            }
          },
          "required": [
            "class",
            "autonomous",
            "human_steps",
            "remotes",
            "packages"
          ],
          "additionalProperties": {}
        },
        "dev.protogrid/tools": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string"
              }
            },
            "required": [
              "name"
            ],
            "additionalProperties": {}
          },
          "description": "Current tools; schemas only with schemas=true"
        },
        "dev.protogrid/trust": {
          "type": "object",
          "properties": {
            "score": {
              "type": [
                "number",
                "null"
              ]
            },
            "flags": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "blocked": {
              "type": "boolean"
            }
          },
          "required": [
            "score",
            "flags",
            "blocked"
          ],
          "additionalProperties": {}
        },
        "dev.protogrid/quality": {
          "type": "object",
          "properties": {
            "score": {
              "type": [
                "number",
                "null"
              ]
            },
            "label": {
              "type": "string"
            },
            "checks": {}
          },
          "required": [
            "score",
            "label",
            "checks"
          ],
          "additionalProperties": {}
        },
        "dev.protogrid/identity": {
          "type": "object",
          "properties": {
            "canonical_id": {
              "type": "string"
            },
            "owner": {
              "type": "object",
              "properties": {
                "verified": {
                  "type": "boolean"
                }
              },
              "required": [
                "verified"
              ],
              "additionalProperties": {}
            }
          },
          "required": [
            "canonical_id",
            "owner"
          ],
          "additionalProperties": {}
        }
      },
      "required": [
        "dev.protogrid/connectability",
        "dev.protogrid/tools",
        "dev.protogrid/trust",
        "dev.protogrid/quality",
        "dev.protogrid/identity"
      ],
      "additionalProperties": {},
      "description": "protogrid enrichment next to the official registry metadata"
    },
    "next_actions": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "action": {
            "type": "string"
          },
          "arguments": {
            "type": "object",
            "propertyNames": {
              "type": "string"
            },
            "additionalProperties": {}
          }
        },
        "required": [
          "action"
        ],
        "additionalProperties": {}
      },
      "description": "Follow-up calls: action is the tool, arguments are ready to pass ({placeholders} are yours to fill)"
    }
  },
  "required": [
    "server",
    "_meta",
    "next_actions"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": {}
}
🟢list_tools(name, limit, cursor)

Every current tool of a server with full input/output schemas, paginated by tool name.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "minLength": 1,
      "description": "Official reverse-DNS name"
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "cursor": {
      "description": "next_cursor from the previous page",
      "type": "string"
    }
  },
  "required": [
    "name"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "server": {
      "type": "string"
    },
    "count": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "tools": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "title": {
            "type": [
              "string",
              "null"
            ]
          },
          "description": {
            "type": [
              "string",
              "null"
            ]
          },
          "input_schema": {
            "description": "JSON Schema of the arguments, as the server declares it"
          },
          "output_schema": {},
          "annotations": {
            "description": "Tool hints such as readOnlyHint, as the server declares them"
          },
          "source": {
            "type": "string",
            "enum": [
              "probe",
              "publisher"
            ]
          },
          "observed_at": {
            "type": "string"
          }
        },
        "required": [
          "name",
          "title",
          "description",
          "input_schema",
          "output_schema",
          "annotations",
          "source",
          "observed_at"
        ],
        "additionalProperties": {}
      }
    },
    "next_cursor": {
      "description": "Pass as cursor for the next page; null on the last page",
      "type": [
        "string",
        "null"
      ]
    },
    "next_actions": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "action": {
            "type": "string"
          },
          "arguments": {
            "type": "object",
            "propertyNames": {
              "type": "string"
            },
            "additionalProperties": {}
          }
        },
        "required": [
          "action"
        ],
        "additionalProperties": {}
      },
      "description": "Follow-up calls: action is the tool, arguments are ready to pass ({placeholders} are yours to fill)"
    }
  },
  "required": [
    "server",
    "count",
    "tools",
    "next_cursor",
    "next_actions"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": {}
}
🟢get_connection(name, target)

Minimal connection block for the preferred remote (or package) with ${SECRET} placeholders, formatted for a target client. Secrets are never accepted or returned.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "minLength": 1,
      "description": "Official reverse-DNS name"
    },
    "target": {
      "description": "Output format (default mcpServers)",
      "type": "string",
      "enum": [
        "mcpServers",
        "vscode",
        "cursor",
        "claude-code-cli",
        "codex-toml",
        "opencode",
        "gemini",
        "goose"
      ]
    }
  },
  "required": [
    "name"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "server": {
      "type": "string"
    },
    "key": {
      "type": "string",
      "description": "Suggested name for the server in the client configuration"
    },
    "kind": {
      "type": "string",
      "enum": [
        "remote",
        "package",
        "bundle"
      ]
    },
    "class": {
      "type": "string",
      "enum": [
        "R0",
        "R1",
        "R2",
        "L0",
        "unknown"
      ],
      "description": "R0 remote no auth, R1 static secret, R2 OAuth, L0 local package"
    },
    "autonomous": {
      "type": "boolean"
    },
    "human_steps": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "target": {
      "type": "string"
    },
    "content_type": {
      "type": "string",
      "enum": [
        "application/json",
        "text/plain"
      ]
    },
    "connection": {
      "description": "The block for the target client: an object for JSON targets, a string for text ones"
    },
    "secrets": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "where": {
            "type": "string"
          }
        },
        "required": [
          "name",
          "where"
        ],
        "additionalProperties": {}
      },
      "description": "Placeholders to replace with values you hold"
    },
    "placeholders": {
      "type": "string"
    },
    "next_actions": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "action": {
            "type": "string"
          },
          "arguments": {
            "type": "object",
            "propertyNames": {
              "type": "string"
            },
            "additionalProperties": {}
          }
        },
        "required": [
          "action"
        ],
        "additionalProperties": {}
      },
      "description": "Follow-up calls: action is the tool, arguments are ready to pass ({placeholders} are yours to fill)"
    }
  },
  "required": [
    "server",
    "key",
    "kind",
    "class",
    "autonomous",
    "human_steps",
    "target",
    "content_type",
    "connection",
    "secrets",
    "placeholders",
    "next_actions"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": {}
}
🟢check_server(url, id, wait)

Probe a remote MCP server URL once, credential-free and without calling its tools, and get its quality checks and its readiness for the Claude and OpenAI directories. Pass `url` to start a check (waits up to 25 s for the result), or `id` to read one. Quota: a few checks per hour anonymously, more with an API key.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "url": {
      "description": "The server's streamable HTTP or SSE URL, e.g. https://mcp.example.com/mcp. Never include credentials.",
      "type": "string",
      "maxLength": 2000
    },
    "id": {
      "description": "A check id returned earlier, to read its result",
      "type": "string",
      "maxLength": 64
    },
    "wait": {
      "description": "Seconds to wait for the result (default 25)",
      "type": "integer",
      "minimum": 0,
      "maximum": 25
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "Pass as id to read the result later"
    },
    "status": {
      "type": "string",
      "enum": [
        "queued",
        "running",
        "done",
        "failed"
      ]
    },
    "url": {
      "type": "string"
    },
    "requested_at": {
      "type": "string"
    },
    "finished_at": {
      "type": [
        "string",
        "null"
      ]
    },
    "server": {
      "description": "The catalog server listing this URL, if any",
      "type": [
        "string",
        "null"
      ]
    },
    "page": {
      "type": "string",
      "description": "Shareable result page"
    },
    "result": {
      "description": "Present when status is done",
      "type": "object",
      "properties": {
        "probe": {
          "type": "object",
          "properties": {},
          "additionalProperties": {}
        },
        "quality": {
          "type": "object",
          "properties": {
            "score": {
              "type": [
                "number",
                "null"
              ]
            },
            "label": {
              "type": "string"
            }
          },
          "required": [
            "score",
            "label"
          ],
          "additionalProperties": {}
        },
        "readiness": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {},
            "additionalProperties": {}
          },
          "description": "Claude and OpenAI directory requirements, one per directory; items are pass, warn, fail, unknown, manual or na"
        }
      },
      "required": [
        "probe",
        "quality",
        "readiness"
      ],
      "additionalProperties": {}
    },
    "error": {
      "type": "string"
    },
    "disclaimer": {
      "type": "string"
    },
    "next_actions": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "action": {
            "type": "string"
          },
          "arguments": {
            "type": "object",
            "propertyNames": {
              "type": "string"
            },
            "additionalProperties": {}
          }
        },
        "required": [
          "action"
        ],
        "additionalProperties": {}
      },
      "description": "Follow-up calls: action is the tool, arguments are ready to pass ({placeholders} are yours to fill)"
    }
  },
  "required": [
    "id",
    "status",
    "url",
    "requested_at",
    "finished_at",
    "server",
    "page",
    "disclaimer",
    "next_actions"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": {}
}

Community

Diesen Server bewerten

Nachweis

Aktuelle Beobachtungen

verifiziertVersion nicht aufgezeichnet5 Tools
verifiziertVersion nicht aufgezeichnet4 Tools