Endpoints: 28,729MCP servers: 18,413Payout addresses: 2,071Paid calls: 1,545Letters: 14Defects: 1,324counted 4 min ago
teppi

Server definition

Hash
sha256:bec8805d505bcbd79c542a331677f1e32f4a560f9dcbf14ba90521e26d0c074f
What it is
What a remote MCP server returned when asked what it offers: 5 tools

The blob, as servednamed by its sha256

{ "instructions": "protogrid: registry of MCP servers from the official registry, probed without credentials.\nFlow: search(q) → get_server(name) or list_tools(name) → get_connection(name, target) → connect with your client.\ncheck_server(url) probes any MCP server URL once: quality and Claude and OpenAI directory readiness.\nClasses: R0 no auth; R1 a static secret (${NAME} placeholders); R2 OAuth, one human consent; L0 local package.\nResults carry next_actions with arguments. Scores are observed signals, not audits.", "tools": [ { "description": "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.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "id": { "description": "A check id returned earlier, to read its result", "maxLength": 64, "type": "string" }, "url": { "description": "The server's streamable HTTP or SSE URL, e.g. https://mcp.example.com/mcp. Never include credentials.", "maxLength": 2000, "type": "string" }, "wait": { "description": "Seconds to wait for the result (default 25)", "maximum": 25, "minimum": 0, "type": "integer" } }, "type": "object" }, "name": "check_server", "outputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": {}, "properties": { "disclaimer": { "type": "string" }, "error": { "type": "string" }, "finished_at": { "type": [ "string", "null" ] }, "id": { "description": "Pass as id to read the result later", "type": "string" }, "next_actions": { "description": "Follow-up calls: action is the tool, arguments are ready to pass ({placeholders} are yours to fill)", "items": { "additionalProperties": {}, "properties": { "action": { "type": "string" }, "arguments": { "additionalProperties": {}, "propertyNames": { "type": "string" }, "type": "object" } }, "required": [ "action" ], "type": "object" }, "type": "array" }, "page": { "description": "Shareable result page", "type": "string" }, "requested_at": { "type": "string" }, "result": { "additionalProperties": {}, "description": "Present when status is done", "properties": { "probe": { "additionalProperties": {}, "properties": {}, "type": "object" }, "quality": { "additionalProperties": {}, "properties": { "label": { "type": "string" }, "score": { "type": [ "number", "null" ] } }, "required": [ "score", "label" ], "type": "object" }, "readiness": { "description": "Claude and OpenAI directory requirements, one per directory; items are pass, warn, fail, unknown, manual or na", "items": { "additionalProperties": {}, "properties": {}, "type": "object" }, "type": "array" } }, "required": [ "probe", "quality", "readiness" ], "type": "object" }, "server": { "description": "The catalog server listing this URL, if any", "type": [ "string", "null" ] }, "status": { "enum": [ "queued", "running", "done", "failed" ], "type": "string" }, "url": { "type": "string" } }, "required": [ "id", "status", "url", "requested_at", "finished_at", "server", "page", "disclaimer", "next_actions" ], "type": "object" } }, { "description": "Minimal connection block for the preferred remote (or package) with ${SECRET} placeholders, formatted for a target client. Secrets are never accepted or returned.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "name": { "description": "Official reverse-DNS name", "minLength": 1, "type": "string" }, "target": { "description": "Output format (default mcpServers)", "enum": [ "mcpServers", "vscode", "cursor", "claude-code-cli", "codex-toml", "opencode", "gemini", "goose" ], "type": "string" } }, "required": [ "name" ], "type": "object" }, "name": "get_connection", "outputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": {}, "properties": { "autonomous": { "type": "boolean" }, "class": { "description": "R0 remote no auth, R1 static secret, R2 OAuth, L0 local package", "enum": [ "R0", "R1", "R2", "L0", "unknown" ], "type": "string" }, "connection": { "description": "The block for the target client: an object for JSON targets, a string for text ones" }, "content_type": { "enum": [ "application/json", "text/plain" ], "type": "string" }, "human_steps": { "items": { "type": "string" }, "type": "array" }, "key": { "description": "Suggested name for the server in the client configuration", "type": "string" }, "kind": { "enum": [ "remote", "package", "bundle" ], "type": "string" }, "next_actions": { "description": "Follow-up calls: action is the tool, arguments are ready to pass ({placeholders} are yours to fill)", "items": { "additionalProperties": {}, "properties": { "action": { "type": "string" }, "arguments": { "additionalProperties": {}, "propertyNames": { "type": "string" }, "type": "object" } }, "required": [ "action" ], "type": "object" }, "type": "array" }, "placeholders": { "type": "string" }, "secrets": { "description": "Placeholders to replace with values you hold", "items": { "additionalProperties": {}, "properties": { "name": { "type": "string" }, "where": { "type": "string" } }, "required": [ "name", "where" ], "type": "object" }, "type": "array" }, "server": { "type": "string" }, "target": { "type": "string" } }, "required": [ "server", "key", "kind", "class", "autonomous", "human_steps", "target", "content_type", "connection", "secrets", "placeholders", "next_actions" ], "type": "object" } }, { "description": "Official server.json plus connectability (class, remotes with auth/health, packages), current tools, trust breakdown and identity for one server name.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "name": { "description": "Official reverse-DNS name, e.g. io.github.acme/acme-mcp", "minLength": 1, "type": "string" }, "schemas": { "description": "Include tool input/output schemas (default false; use list_tools for full schemas)", "type": "boolean" } }, "required": [ "name" ], "type": "object" }, "name": "get_server", "outputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": {}, "properties": { "_meta": { "additionalProperties": {}, "description": "protogrid enrichment next to the official registry metadata", "properties": { "dev.protogrid/connectability": { "additionalProperties": {}, "properties": { "autonomous": { "type": "boolean" }, "class": { "description": "R0 remote no auth, R1 static secret, R2 OAuth, L0 local package", "enum": [ "R0", "R1", "R2", "L0", "unknown" ], "type": "string" }, "human_steps": { "items": { "type": "string" }, "type": "array" }, "packages": { "description": "Packages with runtime hint and required secrets", "items": { "additionalProperties": {}, "properties": {}, "type": "object" }, "type": "array" }, "remotes": { "description": "Remotes with transport, auth, protocol and health", "items": { "additionalProperties": {}, "properties": {}, "type": "object" }, "type": "array" } }, "required": [ "class", "autonomous", "human_steps", "remotes", "packages" ], "type": "object" }, "dev.protogrid/identity": { "additionalProperties": {}, "properties": { "canonical_id": { "type": "string" }, "owner": { "additionalProperties": {}, "properties": { "verified": { "type": "boolean" } }, "required": [ "verified" ], "type": "object" } }, "required": [ "canonical_id", "owner" ], "type": "object" }, "dev.protogrid/quality": { "additionalProperties": {}, "properties": { "checks": {}, "label": { "type": "string" }, "score": { "type": [ "number", "null" ] } }, "required": [ "score", "label", "checks" ], "type": "object" }, "dev.protogrid/tools": { "description": "Current tools; schemas only with schemas=true", "items": { "additionalProperties": {}, "properties": { "name": { "type": "string" } }, "required": [ "name" ], "type": "object" }, "type": "array" }, "dev.protogrid/trust": { "additionalProperties": {}, "properties": { "blocked": { "type": "boolean" }, "flags": { "items": { "type": "string" }, "type": "array" }, "score": { "type": [ "number", "null" ] } }, "required": [ "score", "flags", "blocked" ], "type": "object" } }, "required": [ "dev.protogrid/connectability", "dev.protogrid/tools", "dev.protogrid/trust", "dev.protogrid/quality", "dev.protogrid/identity" ], "type": "object" }, "next_actions": { "description": "Follow-up calls: action is the tool, arguments are ready to pass ({placeholders} are yours to fill)", "items": { "additionalProperties": {}, "properties": { "action": { "type": "string" }, "arguments": { "additionalProperties": {}, "propertyNames": { "type": "string" }, "type": "object" } }, "required": [ "action" ], "type": "object" }, "type": "array" }, "server": { "additionalProperties": {}, "description": "The official server.json as published", "properties": {}, "type": "object" } }, "required": [ "server", "_meta", "next_actions" ], "type": "object" } }, { "description": "Every current tool of a server with full input/output schemas, paginated by tool name.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "cursor": { "description": "next_cursor from the previous page", "type": "string" }, "limit": { "maximum": 100, "minimum": 1, "type": "integer" }, "name": { "description": "Official reverse-DNS name", "minLength": 1, "type": "string" } }, "required": [ "name" ], "type": "object" }, "name": "list_tools", "outputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": {}, "properties": { "count": { "maximum": 9007199254740991, "minimum": -9007199254740991, "type": "integer" }, "next_actions": { "description": "Follow-up calls: action is the tool, arguments are ready to pass ({placeholders} are yours to fill)", "items": { "additionalProperties": {}, "properties": { "action": { "type": "string" }, "arguments": { "additionalProperties": {}, "propertyNames": { "type": "string" }, "type": "object" } }, "required": [ "action" ], "type": "object" }, "type": "array" }, "next_cursor": { "description": "Pass as cursor for the next page; null on the last page", "type": [ "string", "null" ] }, "server": { "type": "string" }, "tools": { "items": { "additionalProperties": {}, "properties": { "annotations": { "description": "Tool hints such as readOnlyHint, as the server declares them" }, "description": { "type": [ "string", "null" ] }, "input_schema": { "description": "JSON Schema of the arguments, as the server declares it" }, "name": { "type": "string" }, "observed_at": { "type": "string" }, "output_schema": {}, "source": { "enum": [ "probe", "publisher" ], "type": "string" }, "title": { "type": [ "string", "null" ] } }, "required": [ "name", "title", "description", "input_schema", "output_schema", "annotations", "source", "observed_at" ], "type": "object" }, "type": "array" } }, "required": [ "server", "count", "tools", "next_cursor", "next_actions" ], "type": "object" } }, { "description": "Hybrid (keyword + semantic) search over servers and their tools. Filter by connection class to keep only what you can reach autonomously (R0, R1).", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "properties": { "category": { "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" ], "type": "string" }, "class": { "description": "Connection classes to keep, e.g. ['R0','R1']", "items": { "enum": [ "R0", "R1", "R2", "L0", "unknown" ], "type": "string" }, "type": "array" }, "exclude_flags": { "description": "Trust flags, any of which excludes a server, e.g. ['multi-version-spam','duplicate-repo']", "items": { "enum": [ "multi-version-spam", "duplicate-repo", "no-repository", "no-connection", "deprecated", "unreachable", "blocked", "deleted" ], "type": "string" }, "type": "array" }, "exclude_quality_flags": { "description": "Quality flags, any of which excludes a server, e.g. ['known-vulns']", "items": { "enum": [ "known-vulns", "outdated-mcp-sdk" ], "type": "string" }, "type": "array" }, "flags": { "description": "Trust flags that must all be present", "items": { "enum": [ "multi-version-spam", "duplicate-repo", "no-repository", "no-connection", "deprecated", "unreachable", "blocked", "deleted" ], "type": "string" }, "type": "array" }, "limit": { "description": "Results to return (default 10)", "maximum": 50, "minimum": 1, "type": "integer" }, "min_quality": { "description": "Minimum quality score 0-100; unscored servers are left out", "maximum": 100, "minimum": 0, "type": "integer" }, "min_trust": { "description": "Minimum trust score 0-100", "maximum": 100, "minimum": 0, "type": "integer" }, "owner_verified": { "description": "true: only servers whose owner proved control of the namespace (not an audit)", "type": "boolean" }, "q": { "description": "What you want to do, in plain words, e.g. 'send an email' or 'query postgres'", "maxLength": 500, "minLength": 1, "type": "string" }, "quality_flags": { "description": "Quality flags that must all be present", "items": { "enum": [ "known-vulns", "outdated-mcp-sdk" ], "type": "string" }, "type": "array" }, "transport": { "enum": [ "streamable-http", "sse" ], "type": "string" } }, "required": [ "q" ], "type": "object" }, "name": "search", "outputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": {}, "properties": { "count": { "maximum": 9007199254740991, "minimum": -9007199254740991, "type": "integer" }, "mode": { "enum": [ "hybrid", "keyword" ], "type": "string" }, "next_actions": { "description": "Follow-up calls: action is the tool, arguments are ready to pass ({placeholders} are yours to fill)", "items": { "additionalProperties": {}, "properties": { "action": { "type": "string" }, "arguments": { "additionalProperties": {}, "propertyNames": { "type": "string" }, "type": "object" } }, "required": [ "action" ], "type": "object" }, "type": "array" }, "query": { "type": "string" }, "results": { "items": { "additionalProperties": {}, "properties": { "autonomous": { "description": "True when an agent can connect with no human step", "type": "boolean" }, "categories": { "items": { "type": "string" }, "type": "array" }, "connection_class": { "description": "R0 remote no auth, R1 static secret, R2 OAuth, L0 local package", "enum": [ "R0", "R1", "R2", "L0", "unknown" ], "type": "string" }, "description": { "type": [ "string", "null" ] }, "human_steps": { "items": { "type": "string" }, "type": "array" }, "matched_tools": { "items": { "additionalProperties": {}, "properties": { "description": { "type": [ "string", "null" ] }, "name": { "type": "string" } }, "required": [ "name", "description" ], "type": "object" }, "type": "array" }, "name": { "description": "Official reverse-DNS name, the argument of every other tool", "type": "string" }, "owner_verified": { "description": "The owner proved control of the namespace; not an audit", "type": "boolean" }, "quality_flags": { "description": "known-vulns, outdated-mcp-sdk: raised by failing dependency checks", "items": { "type": "string" }, "type": "array" }, "quality_label": { "description": "strong, good, needs work, poor, new, not scored or blocked", "type": "string" }, "quality_score": { "type": [ "number", "null" ] }, "score": { "description": "Relevance of this result to the query", "type": "number" }, "title": { "type": [ "string", "null" ] }, "tool_count": { "maximum": 9007199254740991, "minimum": -9007199254740991, "type": "integer" }, "trust_flags": { "items": { "type": "string" }, "type": "array" }, "trust_score": { "type": [ "number", "null" ] } }, "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" ], "type": "object" }, "type": "array" } }, "required": [ "query", "mode", "count", "results", "next_actions" ], "type": "object" } } ] }
Verify it yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:bec8805d505bcbd79c542a331677f1e32f4a560f9dcbf14ba90521e26d0c074f | sha256sum