protogrid

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

使うべきか

品質と安全性

A
説明の品質
84%
スキーマの完全性
96%
命名の品質
100%
ポイズニングのリスク
80%
権限の一致
100%
プロトコルへの準拠
100%

検出事項(5)

  • HIGHTool poisoning patterns detected
  • MEDIUMTool 'get_connection' description contains placeholder textget_connection 内
  • LOWTool 'get_server' description lacks action verbget_server 内
  • LOWTool 'list_tools' description lacks action verblist_tools 内
  • INFOTool description contains placeholder or incomplete textget_connection 内

ツール定義とプロトコルへの準拠に関する自動分析に基づいています。

コンテキストコスト

~3,434トークン数(ツール定義)
~7.6 KB一般的なレスポンスサイズ
注意への影響は大きい(128k コンテキストの 2.68%)

これは、サーバーのツールがモデルのコンテキストに読み込まれるたびに消費されるおおよそのトークン数です。数が多いほど、ほかのタスクに使える注意が減ります。

インストール

ワンクリックインストール

これを `claude_desktop_config.json` ファイルに追加してください:

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

リモートエンドポイント

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

できること

ツール一覧

ツール(5)

🟢 読み取り専用🟡 書き込み🔴 削除⚪ 不明
🟢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).

入力スキーマ

{
  "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"
}

出力スキーマ

{
  "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.

入力スキーマ

{
  "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"
}

出力スキーマ

{
  "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.

入力スキーマ

{
  "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"
}

出力スキーマ

{
  "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.

入力スキーマ

{
  "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"
}

出力スキーマ

{
  "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.

入力スキーマ

{
  "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"
}

出力スキーマ

{
  "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": {}
}

コミュニティ

このサーバーを評価する

エビデンス

最近の観測

検証済みバージョンは記録されていませんツール 5 件
検証済みバージョンは記録されていませんツール 4 件