Koskamo

Andrew's Freebies MCP

An MCP server providing access to a catalog of U.S. free trials, savings, public benefits, and redeemable value records. It supports search and fetch operations to retrieve evidence-backed information on trials, rebates, and card-linked offers without requiring user authentication or API keys for public access.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

Andrew's Freebies MCP logo, by Andrew's FreebiesVendor evidenceStreamable HTTPNo sign-inEndpoint checked 2026-11-07Operated by Andrew's Freebies
MCP endpoint (Streamable HTTP)
https://andrewsfreebies.com/api/mcp
Vendor documentation

What its tools do

7 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.

Can change data (1)

7 of 7 have a description · 7 of 7 declare behavior hints · 7 of 7 with parameters document them all

Checks and signals

Each line is separate evidence, not a trust score.

  • Passed Endpoint answered the live check ·
  • Passed Official MCP Registry namespace is tied to andrewsfreebies.com ·
  • Passed Endpoint is on the registry namespace domain ·
  • Availability 1 of 1 checks passed in 30 days

What you can do with it

  • Search for actionable free trials and U.S. savings
  • Retrieve evidence-backed public benefit information
  • Find current rebates and check official deadlines
  • Fetch detailed entitlement data for specific products

Source and maintenance

Vendor evidenceRegistry 2.6.0

Protocol and capabilities

Server
andrews-freebies 2.6.0
MCP protocol negotiated in check
2025-06-18
Tools
7 advertised
Resources
Not advertised
Resource templates
Not advertised
Prompts
1 advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": false
  },
  "prompts": {
    "listChanged": false
  }
}

Server-provided instructions

Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.

Use search for ordinary U.S. free-trial and savings questions, then fetch the best returned id before giving detailed terms. Use search_freebies only when explicit scope controls or rich normalized results are needed, then inspect a selected result with get_record. Never call flag_expired_deal without an exact existing id and relevant current first-party evidence; blocked pages and third-party rumors are not enough. Do not purchase, access accounts, submit applications, or guarantee eligibility. Actionable trial and savings results require incorporated first-party catalog evidence plus a supporting audit. An audit confirms only the normalized fields it tested and never promotes a directory-listed record by itself. A null action_url or official_action.status=withheld means the record is evidence-only and must not be recommended for action. Never treat blocked, fetch-error, unknown, or not-found as proof of expiration without the required repeated or first-party evidence. State material fees, payment or deposit requirements, geography, personalization, expiration, renewal, and cancellation terms. Present a non-null offer action_url only when the user wants to proceed, and cite source_url for current terms. Public-benefit records provide informational eligibility paths, not eligibility decisions.

Tools

7 advertised

search — Search Andrew’s Freebies
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

search input schema
{
  "type": "object",
  "required": [
    "query"
  ],
  "properties": {
    "query": {
      "type": "string",
      "maxLength": 160,
      "minLength": 2,
      "description": "The user’s natural-language savings question, including a provider, product, desired value, condition, or task when known."
    }
  },
  "additionalProperties": false
}
search output schema
{
  "type": "object",
  "required": [
    "results"
  ],
  "properties": {
    "results": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "id",
          "title",
          "url"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "url": {
            "type": "string",
            "format": "uri"
          },
          "title": {
            "type": "string"
          }
        },
        "additionalProperties": false
      }
    }
  },
  "additionalProperties": false
}
search annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "destructiveHint": false
}
fetch — Fetch an Andrew’s Freebies document
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

fetch input schema
{
  "type": "object",
  "required": [
    "id"
  ],
  "properties": {
    "id": {
      "type": "string",
      "description": "A guide:SLUG, trial:SLUG, or entitlement:SLUG id returned by search."
    }
  },
  "additionalProperties": false
}
fetch output schema
{
  "type": "object",
  "required": [
    "id",
    "title",
    "text",
    "url",
    "metadata"
  ],
  "properties": {
    "id": {
      "type": "string"
    },
    "url": {
      "type": "string",
      "format": "uri"
    },
    "text": {
      "type": "string"
    },
    "title": {
      "type": "string"
    },
    "offers": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "id",
          "record_type",
          "title",
          "provider",
          "summary",
          "status",
          "last_checked",
          "source_url",
          "action_url",
          "verification_readiness",
          "terms"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "terms": {
            "type": "object",
            "additionalProperties": {
              "type": [
                "string",
                "null"
              ]
            }
          },
          "title": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "summary": {
            "type": "string"
          },
          "provider": {
            "type": "string"
          },
          "action_url": {
            "type": "string",
            "format": "uri"
          },
          "source_url": {
            "type": "string",
            "format": "uri"
          },
          "record_type": {
            "enum": [
              "trial",
              "entitlement"
            ],
            "type": "string"
          },
          "last_checked": {
            "type": "string"
          },
          "verification_readiness": {
            "type": "object",
            "required": [
              "status",
              "latest_outcome",
              "latest_checked_at",
              "interpretation"
            ],
            "properties": {
              "status": {
                "enum": [
                  "audit-confirmed-exact",
                  "audit-confirmed-partial",
                  "audit-inconclusive",
                  "audit-warning",
                  "not-audited"
                ],
                "type": "string"
              },
              "interpretation": {
                "type": "string"
              },
              "latest_outcome": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "latest_checked_at": {
                "type": [
                  "string",
                  "null"
                ]
              }
            },
            "additionalProperties": false
          }
        },
        "additionalProperties": false
      },
      "description": "Current matched records for a guide. Each action_url is a measured redirect to that record's cataloged official destination."
    },
    "metadata": {
      "type": "object",
      "required": [
        "record_type",
        "provider",
        "status",
        "last_checked",
        "source_url",
        "action_url"
      ],
      "properties": {
        "status": {
          "type": "string"
        },
        "provider": {
          "type": "string"
        },
        "action_url": {
          "type": [
            "string",
            "null"
          ],
          "format": "uri"
        },
        "source_url": {
          "type": "string",
          "format": "uri"
        },
        "record_type": {
          "enum": [
            "trial",
            "entitlement",
            "guide"
          ],
          "type": "string"
        },
        "last_checked": {
          "type": "string"
        },
        "copy_checked_at": {
          "type": [
            "string",
            "null"
          ]
        },
        "official_action": {
          "type": "object",
          "required": [
            "allowed",
            "status",
            "reason"
          ],
          "properties": {
            "reason": {
              "type": "string"
            },
            "status": {
              "enum": [
                "ready",
                "source-navigation",
                "withheld"
              ],
              "type": "string"
            },
            "allowed": {
              "type": "boolean"
            }
          },
          "additionalProperties": false
        },
        "offers_truncated": {
          "type": "boolean"
        },
        "matched_offer_count": {
          "type": "integer",
          "minimum": 0
        },
        "returned_offer_count": {
          "type": "integer",
          "minimum": 0
        },
        "verification_readiness": {
          "type": "object",
          "required": [
            "status",
            "latest_outcome",
            "latest_checked_at",
            "interpretation"
          ],
          "properties": {
            "status": {
              "enum": [
                "audit-confirmed-exact",
                "audit-confirmed-partial",
                "audit-inconclusive",
                "audit-warning",
                "not-audited"
              ],
              "type": "string"
            },
            "interpretation": {
              "type": "string"
            },
            "latest_outcome": {
              "type": [
                "string",
                "null"
              ]
            },
            "latest_checked_at": {
              "type": [
                "string",
                "null"
              ]
            }
          },
          "additionalProperties": false
        }
      },
      "additionalProperties": false
    }
  },
  "additionalProperties": false
}
fetch annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "destructiveHint": false
}
search_freebies — Search freebies with scope controls
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

search_freebies input schema
{
  "type": "object",
  "required": [
    "query"
  ],
  "properties": {
    "limit": {
      "type": "integer",
      "default": 12,
      "maximum": 25,
      "minimum": 1,
      "description": "Maximum normalized items to return; answer guides are reported separately."
    },
    "query": {
      "type": "string",
      "maxLength": 160,
      "minLength": 2,
      "description": "The user's need in natural language, including provider, product, eligibility, or desired value."
    },
    "scope": {
      "enum": [
        "auto",
        "actionable",
        "software",
        "savings",
        "public-benefits",
        "open-source",
        "all"
      ],
      "type": "string",
      "default": "auto",
      "description": "auto routes ordinary requests to actionable trials/savings and explicit public-service needs to the broader benefits corpus."
    }
  },
  "additionalProperties": false
}
search_freebies output schema
{
  "type": "object",
  "required": [
    "api_version",
    "query",
    "requested_scope",
    "resolved_scope",
    "count",
    "answer_guide_count",
    "result_count",
    "sources",
    "answer_guides",
    "items",
    "usage"
  ],
  "properties": {
    "count": {
      "type": "integer",
      "minimum": 0,
      "description": "Normalized record and repository results returned in items."
    },
    "items": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "result_type",
          "record_type"
        ],
        "properties": {
          "id": {
            "type": [
              "string",
              "integer"
            ]
          },
          "name": {
            "type": "string"
          },
          "action_url": {
            "type": [
              "string",
              "null"
            ],
            "format": "uri"
          },
          "record_type": {
            "enum": [
              "trial",
              "entitlement",
              null
            ],
            "type": [
              "string",
              "null"
            ]
          },
          "result_type": {
            "enum": [
              "trial",
              "saving",
              "public-benefit",
              "open-source-repository"
            ],
            "type": "string"
          }
        },
        "additionalProperties": true
      },
      "description": "Ranked normalized records or, only under an explicit open-source scope, public repository results."
    },
    "query": {
      "type": "string",
      "description": "Normalized user query used for retrieval."
    },
    "usage": {
      "type": "object",
      "description": "Next-step, ranking, and caution guidance for the returned result set.",
      "additionalProperties": {
        "type": "string"
      }
    },
    "sources": {
      "type": "object",
      "description": "Per-corpus matched, omitted, and returned counts.",
      "additionalProperties": true
    },
    "api_version": {
      "type": "string",
      "description": "Andrew’s Freebies search contract version."
    },
    "result_count": {
      "type": "integer",
      "minimum": 0,
      "description": "Complete count across answer_guides and items."
    },
    "answer_guides": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "result_type",
          "id",
          "title",
          "description",
          "updated",
          "source_backed_matches",
          "url",
          "markdown_url",
          "agent_instruction"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "url": {
            "type": "string",
            "format": "uri"
          },
          "title": {
            "type": "string"
          },
          "updated": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "result_type": {
            "type": "string",
            "const": "answer-guide"
          },
          "markdown_url": {
            "type": "string",
            "format": "uri"
          },
          "agent_instruction": {
            "type": "string"
          },
          "source_backed_matches": {
            "type": "integer",
            "minimum": 0
          }
        },
        "additionalProperties": false
      }
    },
    "resolved_scope": {
      "enum": [
        "actionable",
        "software",
        "savings",
        "public-benefits",
        "open-source",
        "all"
      ],
      "type": "string"
    },
    "requested_scope": {
      "enum": [
        "auto",
        "actionable",
        "software",
        "savings",
        "public-benefits",
        "open-source",
        "all"
      ],
      "type": "string"
    },
    "answer_guide_count": {
      "type": "integer",
      "minimum": 0
    }
  },
  "additionalProperties": false
}
search_freebies annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "destructiveHint": false
}
get_record — Get one normalized freebie record
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

get_record input schema
{
  "type": "object",
  "required": [
    "id"
  ],
  "properties": {
    "id": {
      "type": "string",
      "description": "Exact record id returned by search_freebies."
    },
    "record_type": {
      "enum": [
        "trial",
        "entitlement"
      ],
      "type": "string",
      "description": "Use the record_type returned by search_freebies when known."
    }
  },
  "additionalProperties": false
}
get_record output schema
{
  "type": "object",
  "required": [
    "record_type",
    "id",
    "name",
    "provider",
    "status",
    "last_checked",
    "source_url",
    "action_url",
    "official_action",
    "verification_readiness"
  ],
  "properties": {
    "id": {
      "type": "string"
    },
    "name": {
      "type": "string"
    },
    "status": {
      "type": "string"
    },
    "provider": {
      "type": "string"
    },
    "action_url": {
      "type": [
        "string",
        "null"
      ],
      "format": "uri"
    },
    "source_url": {
      "type": "string",
      "format": "uri"
    },
    "record_type": {
      "enum": [
        "trial",
        "entitlement"
      ],
      "type": "string"
    },
    "last_checked": {
      "type": "string"
    },
    "official_action": {
      "type": "object",
      "required": [
        "allowed",
        "status",
        "reason"
      ],
      "properties": {
        "reason": {
          "type": "string"
        },
        "status": {
          "enum": [
            "ready",
            "source-navigation",
            "withheld"
          ],
          "type": "string"
        },
        "allowed": {
          "type": "boolean"
        }
      },
      "additionalProperties": false
    },
    "verification_readiness": {
      "type": "object",
      "required": [
        "status",
        "latest_outcome",
        "latest_checked_at",
        "interpretation"
      ],
      "properties": {
        "status": {
          "enum": [
            "audit-confirmed-exact",
            "audit-confirmed-partial",
            "audit-inconclusive",
            "audit-warning",
            "not-audited"
          ],
          "type": "string"
        },
        "interpretation": {
          "type": "string"
        },
        "latest_outcome": {
          "type": [
            "string",
            "null"
          ]
        },
        "latest_checked_at": {
          "type": [
            "string",
            "null"
          ]
        }
      },
      "additionalProperties": false
    }
  },
  "additionalProperties": true
}
get_record annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "destructiveHint": false
}
get_verification — Get verification history
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

get_verification input schema
{
  "type": "object",
  "required": [
    "record_id"
  ],
  "properties": {
    "limit": {
      "type": "integer",
      "default": 20,
      "maximum": 100,
      "minimum": 1,
      "description": "Maximum append-only audit events to return."
    },
    "record_id": {
      "type": "string",
      "description": "Exact trial or entitlement id returned by search or search_freebies."
    },
    "record_type": {
      "enum": [
        "trial",
        "entitlement"
      ],
      "type": "string",
      "description": "Use the record type returned by search when known; omit only when the id uniquely resolves."
    }
  },
  "additionalProperties": false
}
get_verification output schema
{
  "type": "object",
  "required": [
    "api_version",
    "record",
    "count",
    "items",
    "append_only"
  ],
  "properties": {
    "count": {
      "type": "integer",
      "minimum": 0
    },
    "items": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": true
      },
      "description": "Newest-first append-only verification events."
    },
    "record": {
      "type": "object",
      "required": [
        "record_type",
        "record_id",
        "name",
        "category",
        "web_url"
      ],
      "properties": {
        "name": {
          "type": "string"
        },
        "web_url": {
          "type": "string"
        },
        "category": {
          "type": "string"
        },
        "record_id": {
          "type": "string"
        },
        "record_type": {
          "enum": [
            "trial",
            "entitlement"
          ],
          "type": "string"
        }
      },
      "additionalProperties": false
    },
    "api_version": {
      "type": "string"
    },
    "append_only": {
      "type": "boolean",
      "const": true
    }
  },
  "additionalProperties": false
}
get_verification annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "destructiveHint": false
}
get_freshness — Get catalog freshness
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

get_freshness input schema
{
  "type": "object",
  "properties": {
    "limit": {
      "type": "integer",
      "default": 50,
      "maximum": 100,
      "minimum": 1,
      "description": "Maximum matching records to return."
    },
    "outcome": {
      "enum": [
        "confirmed-exact",
        "confirmed-partial",
        "terms-changed",
        "explicitly-expired",
        "moved",
        "blocked",
        "fetch-error",
        "not-found",
        "unknown"
      ],
      "type": "string",
      "description": "Optional latest-audit outcome filter; outcomes describe evidence, not guaranteed availability."
    },
    "record_id": {
      "type": "string",
      "maxLength": 200,
      "description": "Optional exact non-directory record id; requires record_type and scopes totals and items to that record."
    },
    "record_type": {
      "enum": [
        "trial",
        "entitlement"
      ],
      "type": "string",
      "description": "Optional corpus filter; required when record_id is provided."
    }
  },
  "additionalProperties": false
}
get_freshness output schema
{
  "type": "object",
  "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"
  ],
  "properties": {
    "items": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": true
      },
      "description": "Newest matching records and their cadence schedules."
    },
    "policy": {
      "type": "string"
    },
    "totals": {
      "type": "object",
      "description": "Catalog, cadence, attempted-coverage, and supporting-evidence totals.",
      "additionalProperties": {
        "type": "number"
      }
    },
    "filters": {
      "type": "object",
      "required": [
        "record_type",
        "record_id",
        "outcome"
      ],
      "properties": {
        "outcome": {
          "type": [
            "string",
            "null"
          ]
        },
        "record_id": {
          "type": [
            "string",
            "null"
          ]
        },
        "record_type": {
          "type": [
            "string",
            "null"
          ]
        }
      },
      "additionalProperties": false
    },
    "by_outcome": {
      "type": "object",
      "additionalProperties": {
        "type": "integer",
        "minimum": 0
      }
    },
    "operations": {
      "type": "object",
      "description": "Scheduler-origin heartbeat and liveness fields.",
      "additionalProperties": true
    },
    "api_version": {
      "type": "string"
    },
    "by_freshness": {
      "type": "object",
      "additionalProperties": {
        "type": "integer",
        "minimum": 0
      }
    },
    "catalog_scope": {
      "type": "string",
      "description": "The exact record population used by cadence and evidence totals."
    },
    "newest_checked_at": {
      "type": [
        "string",
        "null"
      ]
    },
    "oldest_checked_at": {
      "type": [
        "string",
        "null"
      ]
    },
    "by_evidence_resolution": {
      "type": "object",
      "additionalProperties": {
        "type": "integer",
        "minimum": 0
      }
    },
    "evidence_resolution_interpretation": {
      "type": "string"
    }
  },
  "additionalProperties": false
}
get_freshness annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "destructiveHint": false
}
flag_expired_deal — Report an expired deal
Advertised by the server during the last successful anonymous check.

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.

flag_expired_deal input schema
{
  "type": "object",
  "required": [
    "record_id",
    "evidence_url"
  ],
  "properties": {
    "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."
    },
    "record_id": {
      "type": "string",
      "description": "Exact existing id returned by Andrew’s Freebies search or record lookup."
    },
    "record_type": {
      "enum": [
        "trial",
        "entitlement"
      ],
      "type": "string",
      "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."
    }
  },
  "additionalProperties": false
}
flag_expired_deal output schema
{
  "type": "object",
  "required": [
    "api_version",
    "flag",
    "record",
    "original_record_unchanged",
    "review_status"
  ],
  "properties": {
    "flag": {
      "type": "object",
      "description": "Append-only internal review signal receipt.",
      "additionalProperties": true
    },
    "record": {
      "type": "object",
      "required": [
        "record_type",
        "record_id",
        "name",
        "web_url"
      ],
      "properties": {
        "name": {
          "type": "string"
        },
        "web_url": {
          "type": "string"
        },
        "record_id": {
          "type": "string"
        },
        "record_type": {
          "enum": [
            "trial",
            "entitlement"
          ],
          "type": "string"
        }
      },
      "additionalProperties": false
    },
    "api_version": {
      "type": "string"
    },
    "review_status": {
      "type": "string",
      "const": "open"
    },
    "original_record_unchanged": {
      "type": "boolean",
      "const": true
    }
  },
  "additionalProperties": false
}
flag_expired_deal annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "destructiveHint": false
}

Prompts

1 advertised

find_current_freebies — Find current free trials and savings

Advertised by the server during the last successful anonymous check.

Search Andrew’s Freebies for current, actionable U.S. trials or savings and verify the best matches before presenting them.

query
The product, provider, benefit, or savings need to search for. (required)

Resources

Not advertised

No resource definitions available.

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
718 ms
95th percentile latency
718 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 718 ms · metadata changed · 7 tool(s), 1 prompt(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http andrew-s-freebies-mcp https://andrewsfreebies.com/api/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add andrew-s-freebies-mcp --url https://andrewsfreebies.com/api/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable andrew-s-freebies-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "andrew-s-freebies-mcp": {
      "url": "https://andrewsfreebies.com/api/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "andrew-s-freebies-mcp": {
      "type": "streamableHttp",
      "url": "https://andrewsfreebies.com/api/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start andrew-s-freebies-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "andrew-s-freebies-mcp": {
      "type": "http",
      "url": "https://andrewsfreebies.com/api/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http andrew-s-freebies-mcp https://andrewsfreebies.com/api/mcp

Claude Desktop

Open Claude Settings > Connectors > Add custom connector, enter this server URL and enable it for the conversation. This is a manual remote-connector handoff, not a desktop JSON configuration.
Claude Desktop configuration
https://andrewsfreebies.com/api/mcp

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "andrew-s-freebies-mcp": {
      "serverUrl": "https://andrewsfreebies.com/api/mcp"
    }
  }
}

Let your agent find its tools

Find servers like Andrew's Freebies MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.

Do you run Andrew's Freebies MCP?

Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.

Claim this listing