Andrew's Freebies

Find evidence-backed U.S. free trials and savings; public benefits are available by explicit scope.

Sollte ich dies verwenden

Qualität und Sicherheit

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

Befunde (1)

  • LOWTool 'fetch' suggests web access but openWorldHint=falsein fetch

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

Kontextkosten

~3,532Tokens (Tool-Definitionen)
~5.4 KBTypische Antwortgröße
Erhebliche Auswirkung auf die Aufmerksamkeit (2.76% 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": {
    "mcp": {
      "url": "https://andrewsfreebies.com/api/mcp"
    }
  }
}

Remote-Endpunkte

https://andrewsfreebies.com/api/mcpstreamable-http

Was es kann

Tool-Inventar

Tools (7)

🟢 Nur lesen🟡 Schreiben🔴 Löschen⚪ Unbekannt
🟢search(query)

Use this when the user wants to find, compare, or answer a question about current U.S. free trials, rebates, bonuses, cash back, or other actionable savings. It returns citable answer guides and normalized records. Fetch the best returned id before giving detailed terms. Do not use it for purchases, account access, or guaranteed eligibility.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "minLength": 2,
      "maxLength": 160,
      "description": "The user’s natural-language savings question, including a provider, product, desired value, condition, or task when known."
    }
  },
  "required": [
    "query"
  ],
  "additionalProperties": false
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "results": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "url": {
            "type": "string",
            "format": "uri"
          }
        },
        "required": [
          "id",
          "title",
          "url"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "results"
  ],
  "additionalProperties": false
}
🟢fetch(id)

Use this after search returns a guide:SLUG, trial:SLUG, or entitlement:SLUG id and the user needs the complete answer, terms, evidence, verification state, or official action path. Do not guess ids, substitute a guide URL for an offer action, or use this for an id from another service.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "A guide:SLUG, trial:SLUG, or entitlement:SLUG id returned by search."
    }
  },
  "required": [
    "id"
  ],
  "additionalProperties": false
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    },
    "title": {
      "type": "string"
    },
    "text": {
      "type": "string"
    },
    "url": {
      "type": "string",
      "format": "uri"
    },
    "metadata": {
      "type": "object",
      "properties": {
        "record_type": {
          "type": "string",
          "enum": [
            "trial",
            "entitlement",
            "guide"
          ]
        },
        "provider": {
          "type": "string"
        },
        "status": {
          "type": "string"
        },
        "last_checked": {
          "type": "string"
        },
        "copy_checked_at": {
          "type": [
            "string",
            "null"
          ]
        },
        "source_url": {
          "type": "string",
          "format": "uri"
        },
        "action_url": {
          "type": [
            "string",
            "null"
          ],
          "format": "uri"
        },
        "official_action": {
          "type": "object",
          "properties": {
            "allowed": {
              "type": "boolean"
            },
            "status": {
              "type": "string",
              "enum": [
                "ready",
                "source-navigation",
                "withheld"
              ]
            },
            "reason": {
              "type": "string"
            }
          },
          "required": [
            "allowed",
            "status",
            "reason"
          ],
          "additionalProperties": false
        },
        "matched_offer_count": {
          "type": "integer",
          "minimum": 0
        },
        "returned_offer_count": {
          "type": "integer",
          "minimum": 0
        },
        "offers_truncated": {
          "type": "boolean"
        },
        "verification_readiness": {
          "type": "object",
          "properties": {
            "status": {
              "type": "string",
              "enum": [
                "audit-confirmed-exact",
                "audit-confirmed-partial",
                "audit-inconclusive",
                "audit-warning",
                "not-audited"
              ]
            },
            "latest_outcome": {
              "type": [
                "string",
                "null"
              ]
            },
            "latest_checked_at": {
              "type": [
                "string",
                "null"
              ]
            },
            "interpretation": {
              "type": "string"
            }
          },
          "required": [
            "status",
            "latest_outcome",
            "latest_checked_at",
            "interpretation"
          ],
          "additionalProperties": false
        }
      },
      "required": [
        "record_type",
        "provider",
        "status",
        "last_checked",
        "source_url",
        "action_url"
      ],
      "additionalProperties": false
    },
    "offers": {
      "type": "array",
      "description": "Current matched records for a guide. Each action_url is a measured redirect to that record's cataloged official destination.",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "record_type": {
            "type": "string",
            "enum": [
              "trial",
              "entitlement"
            ]
          },
          "title": {
            "type": "string"
          },
          "provider": {
            "type": "string"
          },
          "summary": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "last_checked": {
            "type": "string"
          },
          "source_url": {
            "type": "string",
            "format": "uri"
          },
          "action_url": {
            "type": "string",
            "format": "uri"
          },
          "verification_readiness": {
            "type": "object",
            "properties": {
              "status": {
                "type": "string",
                "enum": [
                  "audit-confirmed-exact",
                  "audit-confirmed-partial",
                  "audit-inconclusive",
                  "audit-warning",
                  "not-audited"
                ]
              },
              "latest_outcome": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "latest_checked_at": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "interpretation": {
                "type": "string"
              }
            },
            "required": [
              "status",
              "latest_outcome",
              "latest_checked_at",
              "interpretation"
            ],
            "additionalProperties": false
          },
          "terms": {
            "type": "object",
            "additionalProperties": {
              "type": [
                "string",
                "null"
              ]
            }
          }
        },
        "required": [
          "id",
          "record_type",
          "title",
          "provider",
          "summary",
          "status",
          "last_checked",
          "source_url",
          "action_url",
          "verification_readiness",
          "terms"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "id",
    "title",
    "text",
    "url",
    "metadata"
  ],
  "additionalProperties": false
}
🟢search_freebies(query, scope, limit)

Use this when the user needs explicit corpus scope, result limits, or a rich normalized list rather than the standard citable search/fetch flow. It is read-only: the default uses site-controlled actionable U.S. trials and savings, while only an explicit open-source scope reads public GitHub. Use public-benefits only for eligibility-based services. Do not use it for purchases, account access, or guaranteed eligibility.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "minLength": 2,
      "maxLength": 160,
      "description": "The user's need in natural language, including provider, product, eligibility, or desired value."
    },
    "scope": {
      "type": "string",
      "enum": [
        "auto",
        "actionable",
        "software",
        "savings",
        "public-benefits",
        "open-source",
        "all"
      ],
      "default": "auto",
      "description": "auto routes ordinary requests to actionable trials/savings and explicit public-service needs to the broader benefits corpus."
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 25,
      "default": 12,
      "description": "Maximum normalized items to return; answer guides are reported separately."
    }
  },
  "required": [
    "query"
  ],
  "additionalProperties": false
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "api_version": {
      "type": "string",
      "description": "Andrew’s Freebies search contract version."
    },
    "query": {
      "type": "string",
      "description": "Normalized user query used for retrieval."
    },
    "requested_scope": {
      "type": "string",
      "enum": [
        "auto",
        "actionable",
        "software",
        "savings",
        "public-benefits",
        "open-source",
        "all"
      ]
    },
    "resolved_scope": {
      "type": "string",
      "enum": [
        "actionable",
        "software",
        "savings",
        "public-benefits",
        "open-source",
        "all"
      ]
    },
    "count": {
      "type": "integer",
      "minimum": 0,
      "description": "Normalized record and repository results returned in items."
    },
    "answer_guide_count": {
      "type": "integer",
      "minimum": 0
    },
    "result_count": {
      "type": "integer",
      "minimum": 0,
      "description": "Complete count across answer_guides and items."
    },
    "sources": {
      "type": "object",
      "description": "Per-corpus matched, omitted, and returned counts.",
      "additionalProperties": true
    },
    "answer_guides": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "result_type": {
            "type": "string",
            "const": "answer-guide"
          },
          "id": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "updated": {
            "type": "string"
          },
          "source_backed_matches": {
            "type": "integer",
            "minimum": 0
          },
          "url": {
            "type": "string",
            "format": "uri"
          },
          "markdown_url": {
            "type": "string",
            "format": "uri"
          },
          "agent_instruction": {
            "type": "string"
          }
        },
        "required": [
          "result_type",
          "id",
          "title",
          "description",
          "updated",
          "source_backed_matches",
          "url",
          "markdown_url",
          "agent_instruction"
        ],
        "additionalProperties": false
      }
    },
    "items": {
      "type": "array",
      "description": "Ranked normalized records or, only under an explicit open-source scope, public repository results.",
      "items": {
        "type": "object",
        "properties": {
          "result_type": {
            "type": "string",
            "enum": [
              "trial",
              "saving",
              "public-benefit",
              "open-source-repository"
            ]
          },
          "record_type": {
            "type": [
              "string",
              "null"
            ],
            "enum": [
              "trial",
              "entitlement",
              null
            ]
          },
          "id": {
            "type": [
              "string",
              "integer"
            ]
          },
          "name": {
            "type": "string"
          },
          "action_url": {
            "type": [
              "string",
              "null"
            ],
            "format": "uri"
          }
        },
        "required": [
          "result_type",
          "record_type"
        ],
        "additionalProperties": true
      }
    },
    "usage": {
      "type": "object",
      "description": "Next-step, ranking, and caution guidance for the returned result set.",
      "additionalProperties": {
        "type": "string"
      }
    }
  },
  "required": [
    "api_version",
    "query",
    "requested_scope",
    "resolved_scope",
    "count",
    "answer_guide_count",
    "result_count",
    "sources",
    "answer_guides",
    "items",
    "usage"
  ],
  "additionalProperties": false
}
🟢get_record(id, record_type)

Use this after search_freebies returns an exact trial or entitlement id and the user needs its complete normalized terms, conditions, sources, official action path, or latest verification state. Do not guess ids or treat a directory-only or inconclusive record as confirmed.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "Exact record id returned by search_freebies."
    },
    "record_type": {
      "type": "string",
      "enum": [
        "trial",
        "entitlement"
      ],
      "description": "Use the record_type returned by search_freebies when known."
    }
  },
  "required": [
    "id"
  ],
  "additionalProperties": false
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "record_type": {
      "type": "string",
      "enum": [
        "trial",
        "entitlement"
      ]
    },
    "id": {
      "type": "string"
    },
    "name": {
      "type": "string"
    },
    "provider": {
      "type": "string"
    },
    "status": {
      "type": "string"
    },
    "last_checked": {
      "type": "string"
    },
    "source_url": {
      "type": "string",
      "format": "uri"
    },
    "action_url": {
      "type": [
        "string",
        "null"
      ],
      "format": "uri"
    },
    "official_action": {
      "type": "object",
      "properties": {
        "allowed": {
          "type": "boolean"
        },
        "status": {
          "type": "string",
          "enum": [
            "ready",
            "source-navigation",
            "withheld"
          ]
        },
        "reason": {
          "type": "string"
        }
      },
      "required": [
        "allowed",
        "status",
        "reason"
      ],
      "additionalProperties": false
    },
    "verification_readiness": {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "enum": [
            "audit-confirmed-exact",
            "audit-confirmed-partial",
            "audit-inconclusive",
            "audit-warning",
            "not-audited"
          ]
        },
        "latest_outcome": {
          "type": [
            "string",
            "null"
          ]
        },
        "latest_checked_at": {
          "type": [
            "string",
            "null"
          ]
        },
        "interpretation": {
          "type": "string"
        }
      },
      "required": [
        "status",
        "latest_outcome",
        "latest_checked_at",
        "interpretation"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "record_type",
    "id",
    "name",
    "provider",
    "status",
    "last_checked",
    "source_url",
    "action_url",
    "official_action",
    "verification_readiness"
  ],
  "additionalProperties": true
}
🟢get_verification(record_id, record_type, limit)

Use this when the user asks how or when one exact Andrew’s Freebies record was checked, whether its terms matched, or what audit warnings exist. Catalog status and audit outcome are separate; blocked, unknown, and fetch errors never prove expiration, and audits never remove or change records.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "record_id": {
      "type": "string",
      "description": "Exact trial or entitlement id returned by search or search_freebies."
    },
    "record_type": {
      "type": "string",
      "enum": [
        "trial",
        "entitlement"
      ],
      "description": "Use the record type returned by search when known; omit only when the id uniquely resolves."
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100,
      "default": 20,
      "description": "Maximum append-only audit events to return."
    }
  },
  "required": [
    "record_id"
  ],
  "additionalProperties": false
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "api_version": {
      "type": "string"
    },
    "record": {
      "type": "object",
      "properties": {
        "record_type": {
          "type": "string",
          "enum": [
            "trial",
            "entitlement"
          ]
        },
        "record_id": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "category": {
          "type": "string"
        },
        "web_url": {
          "type": "string"
        }
      },
      "required": [
        "record_type",
        "record_id",
        "name",
        "category",
        "web_url"
      ],
      "additionalProperties": false
    },
    "count": {
      "type": "integer",
      "minimum": 0
    },
    "items": {
      "type": "array",
      "description": "Newest-first append-only verification events.",
      "items": {
        "type": "object",
        "additionalProperties": true
      }
    },
    "append_only": {
      "type": "boolean",
      "const": true
    }
  },
  "required": [
    "api_version",
    "record",
    "count",
    "items",
    "append_only"
  ],
  "additionalProperties": false
}
🟢get_freshness(record_type, record_id, outcome, limit)

Use this when the user asks about verification freshness for the actionable-candidate corpus, overdue coverage, scheduler liveness, records sharing an audit outcome, or whether one exact non-directory record is still inside cadence. Directory-only leads and public services remain inspectable elsewhere but are excluded from this denominator. For one record, provide both record_type and record_id; its audit outcome still proves only the fields checked. Blocked or unknown never means expired.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "record_type": {
      "type": "string",
      "enum": [
        "trial",
        "entitlement"
      ],
      "description": "Optional corpus filter; required when record_id is provided."
    },
    "record_id": {
      "type": "string",
      "maxLength": 200,
      "description": "Optional exact non-directory record id; requires record_type and scopes totals and items to that record."
    },
    "outcome": {
      "type": "string",
      "enum": [
        "confirmed-exact",
        "confirmed-partial",
        "terms-changed",
        "explicitly-expired",
        "moved",
        "blocked",
        "fetch-error",
        "not-found",
        "unknown"
      ],
      "description": "Optional latest-audit outcome filter; outcomes describe evidence, not guaranteed availability."
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100,
      "default": 50,
      "description": "Maximum matching records to return."
    }
  },
  "additionalProperties": false
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "api_version": {
      "type": "string"
    },
    "catalog_scope": {
      "type": "string",
      "description": "The exact record population used by cadence and evidence totals."
    },
    "filters": {
      "type": "object",
      "properties": {
        "record_type": {
          "type": [
            "string",
            "null"
          ]
        },
        "record_id": {
          "type": [
            "string",
            "null"
          ]
        },
        "outcome": {
          "type": [
            "string",
            "null"
          ]
        }
      },
      "required": [
        "record_type",
        "record_id",
        "outcome"
      ],
      "additionalProperties": false
    },
    "totals": {
      "type": "object",
      "description": "Catalog, cadence, attempted-coverage, and supporting-evidence totals.",
      "additionalProperties": {
        "type": "number"
      }
    },
    "by_freshness": {
      "type": "object",
      "additionalProperties": {
        "type": "integer",
        "minimum": 0
      }
    },
    "by_evidence_resolution": {
      "type": "object",
      "additionalProperties": {
        "type": "integer",
        "minimum": 0
      }
    },
    "by_outcome": {
      "type": "object",
      "additionalProperties": {
        "type": "integer",
        "minimum": 0
      }
    },
    "evidence_resolution_interpretation": {
      "type": "string"
    },
    "oldest_checked_at": {
      "type": [
        "string",
        "null"
      ]
    },
    "newest_checked_at": {
      "type": [
        "string",
        "null"
      ]
    },
    "operations": {
      "type": "object",
      "description": "Scheduler-origin heartbeat and liveness fields.",
      "additionalProperties": true
    },
    "items": {
      "type": "array",
      "description": "Newest matching records and their cadence schedules.",
      "items": {
        "type": "object",
        "additionalProperties": true
      }
    },
    "policy": {
      "type": "string"
    }
  },
  "required": [
    "api_version",
    "catalog_scope",
    "filters",
    "totals",
    "by_freshness",
    "by_evidence_resolution",
    "by_outcome",
    "evidence_resolution_interpretation",
    "oldest_checked_at",
    "newest_checked_at",
    "operations",
    "items",
    "policy"
  ],
  "additionalProperties": false
}
⚪flag_expired_deal(record_id, record_type, evidence_url, note, reporter)

Use this only when the user supplies an exact existing record id and relevant current first-party evidence showing that its offer ended or is unavailable. Do not use it for rumors, third-party summaries, speculation, or a merely blocked or unreachable page. It writes one non-destructive review signal and never removes or changes the catalog record.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "record_id": {
      "type": "string",
      "description": "Exact existing id returned by Andrew’s Freebies search or record lookup."
    },
    "record_type": {
      "type": "string",
      "enum": [
        "trial",
        "entitlement"
      ],
      "description": "Use the record type returned by search when known; omit only when the id uniquely resolves."
    },
    "evidence_url": {
      "type": "string",
      "format": "uri",
      "maxLength": 2048,
      "description": "Current first-party HTTP(S) page supporting the report. Do not submit a rumor, search result, directory, or unrelated provider page."
    },
    "note": {
      "type": "string",
      "description": "Optional concise factual observation, up to 1,000 characters; never include credentials or personal data."
    },
    "reporter": {
      "type": "string",
      "description": "Optional agent or integration label, up to 120 characters; never include a person’s identity."
    }
  },
  "required": [
    "record_id",
    "evidence_url"
  ],
  "additionalProperties": false
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "api_version": {
      "type": "string"
    },
    "flag": {
      "type": "object",
      "description": "Append-only internal review signal receipt.",
      "additionalProperties": true
    },
    "record": {
      "type": "object",
      "properties": {
        "record_type": {
          "type": "string",
          "enum": [
            "trial",
            "entitlement"
          ]
        },
        "record_id": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "web_url": {
          "type": "string"
        }
      },
      "required": [
        "record_type",
        "record_id",
        "name",
        "web_url"
      ],
      "additionalProperties": false
    },
    "original_record_unchanged": {
      "type": "boolean",
      "const": true
    },
    "review_status": {
      "type": "string",
      "const": "open"
    }
  },
  "required": [
    "api_version",
    "flag",
    "record",
    "original_record_unchanged",
    "review_status"
  ],
  "additionalProperties": false
}

Community

Diesen Server bewerten

Nachweis

Aktuelle Beobachtungen

verifiziertVersion nicht aufgezeichnet7 Tools
verifiziertVersion nicht aufgezeichnet7 Tools