Syftly

Ranks the best AI tool or API per task: transcription, TTS, web search, scraping and OCR.

Sollte ich dies verwenden

Qualität und Sicherheit

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

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

Kontextkosten

~1,040Tokens (Tool-Definitionen)
~11.5 KBTypische Antwortgröße
Mittlere Auswirkung auf die Aufmerksamkeit (0.81% 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": {
    "syftly": {
      "url": "https://syftly.vercel.app/api/mcp"
    }
  }
}

Remote-Endpunkte

https://syftly.vercel.app/api/mcpstreamable-http

Was es kann

Tool-Inventar

Tools (1)

🟢 Nur lesen🟡 Schreiben🔴 Löschen⚪ Unbekannt
🟢find_best_tool(query, category)

Given a natural-language question about which AI tool or API is best for a task (currently transcription, text-to-speech, web search, scraping & browser and ocr & document extraction), return Syftly's ranked recommendation: a citeable summary, a provider table with prices and trade-offs, dated sources, and a confidence label. Ask in plain English about price, accuracy, language or capability trade-offs — e.g. 'best OCR API for scanned PDFs' or 'best web scraping API for JavaScript-heavy sites'. Optionally pass "category" to disambiguate; otherwise it is detected from the question.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "The question in natural language, e.g. 'best transcription API for Dutch'."
    },
    "category": {
      "type": "string",
      "description": "Optional category id to disambiguate the question; omit to let Syftly detect it.",
      "enum": [
        "transcription",
        "tts",
        "web-search",
        "scraping",
        "ocr"
      ]
    }
  },
  "required": [
    "query"
  ],
  "additionalProperties": false
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "The human question (page H1)."
    },
    "slug": {
      "type": "string"
    },
    "category": {
      "type": "string",
      "description": "e.g. 'transcription'; '' on a no-match."
    },
    "routing": {
      "type": "string",
      "enum": [
        "matched",
        "none",
        "ambiguous"
      ],
      "description": "Honest routing outcome: 'matched' = answered from a real category; 'none' = no category matched (out-of-scope/gibberish) — an honest no-match, not a fabricated answer; 'ambiguous' = fit 2+ categories. 'none'/'ambiguous' carry `categories` and no real recommendation/providers."
    },
    "summary": {
      "type": "string",
      "description": "Citeable summary, 40-80 words, reused verbatim across all views. On a no-match, the plain-language message."
    },
    "confidence": {
      "type": "string",
      "enum": [
        "light estimate",
        "hard tested"
      ],
      "description": "Confidence/depth label."
    },
    "updated": {
      "type": "string",
      "description": "ISO date."
    },
    "recommendation": {
      "type": "object",
      "required": [
        "default",
        "axes"
      ],
      "properties": {
        "default": {
          "type": "string",
          "description": "Name of the recommended offering ('' on a no-match)."
        },
        "axes": {
          "type": "object",
          "description": "Decision-axis -> recommended offering. Carries EVERY matched axis: filters + all ordering axes, each naming its own computed winner.",
          "additionalProperties": {
            "type": "string"
          }
        },
        "primary": {
          "type": "string",
          "description": "The axis key whose winner became `default` when 2+ ordering axes conflict with no composite tiebreak — the earliest-in-query axis. Absent for single-axis/composite-resolved answers."
        }
      }
    },
    "providers": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "name",
          "provider",
          "price",
          "metrics",
          "strengths",
          "weaknesses",
          "source",
          "source_date"
        ],
        "properties": {
          "name": {
            "type": "string",
            "description": "The callable offering, e.g. 'Deepgram Nova-3'."
          },
          "provider": {
            "type": "string",
            "description": "The company behind it, e.g. 'Deepgram'."
          },
          "model_family": {
            "type": "string",
            "description": "Filter attribute, not a row of its own."
          },
          "price": {
            "type": "object",
            "required": [
              "value",
              "unit"
            ],
            "properties": {
              "value": {
                "type": [
                  "number",
                  "null"
                ]
              },
              "unit": {
                "type": "string",
                "description": "e.g. '$/min', '$/1000min'."
              },
              "comparable": {
                "type": "boolean",
                "description": "false = token-/credit-priced, not directly comparable (excluded from the price axis)."
              }
            }
          },
          "metrics": {
            "type": "object",
            "description": "Open category-specific decision-axis fields. Keys are stable data identifiers (e.g. 'wer', 'latency_ms'); values are number, boolean, string or null (null = an honest gap). Number metrics back min/max axes; boolean metrics back filter axes.",
            "additionalProperties": {
              "type": [
                "number",
                "boolean",
                "string",
                "null"
              ]
            }
          },
          "strengths": {
            "type": "string"
          },
          "weaknesses": {
            "type": "string"
          },
          "source": {
            "type": "string",
            "description": "Where this row's facts come from."
          },
          "source_date": {
            "type": "string",
            "description": "ISO date of the source."
          }
        }
      }
    },
    "sources": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "title",
          "url",
          "date"
        ],
        "properties": {
          "title": {
            "type": "string"
          },
          "url": {
            "type": "string",
            "format": "uri"
          },
          "date": {
            "type": "string",
            "description": "ISO date."
          }
        }
      }
    },
    "categories": {
      "type": "array",
      "description": "Present only when routing !== 'matched': the supported categories so the caller can re-ask in scope.",
      "items": {
        "type": "object",
        "required": [
          "category",
          "label"
        ],
        "properties": {
          "category": {
            "type": "string",
            "description": "Supported category id, e.g. 'web-search'."
          },
          "label": {
            "type": "string",
            "description": "Human label, e.g. 'Web search'."
          }
        }
      }
    }
  },
  "required": [
    "query",
    "slug",
    "category",
    "routing",
    "summary",
    "confidence",
    "updated",
    "recommendation",
    "providers",
    "sources"
  ],
  "additionalProperties": false
}

Community

Diesen Server bewerten

Nachweis

Aktuelle Beobachtungen

verifiziertVersion nicht aufgezeichnet1 Tools
verifiziertVersion nicht aufgezeichnet1 Tools
verifiziertVersion nicht aufgezeichnet1 Tools