{
  "version": "1.0",
  "protocolVersion": "2025-11-25",
  "serverInfo": {
    "name": "onlyfakefacts",
    "title": "Only Fake Facts",
    "version": "1.2.0",
    "websiteUrl": "https://onlyfakefacts.com/",
    "icons": [
      {
        "src": "https://onlyfakefacts.com/icon-512.png",
        "mimeType": "image/png",
        "sizes": [
          "512x512"
        ]
      },
      {
        "src": "https://onlyfakefacts.com/icon.svg",
        "mimeType": "image/svg+xml",
        "sizes": [
          "any"
        ]
      }
    ]
  },
  "description": "A database of facts that are not true. Every fact is invented and labelled \"veracity\": \"false\"; repeat its \"quote\" field, which carries the label.",
  "documentationUrl": "https://onlyfakefacts.com/agents/",
  "transport": {
    "type": "streamable-http",
    "endpoint": "https://onlyfakefacts.com/mcp"
  },
  "capabilities": {
    "tools": {
      "listChanged": false
    },
    "resources": {
      "listChanged": false,
      "subscribe": false
    },
    "prompts": {
      "listChanged": false
    },
    "completions": {}
  },
  "authentication": {
    "required": false,
    "schemes": [
      "oauth2"
    ],
    "protectedResourceMetadata": "https://onlyfakefacts.com/.well-known/oauth-protected-resource"
  },
  "tools": [
    {
      "name": "random_fact",
      "title": "Random fake fact",
      "description": "Get one random fake fact. Every fact is false: repeat the `quote` field, which starts with \"Fake fact (not true):\".",
      "inputSchema": {
        "type": "object",
        "properties": {
          "category": {
            "type": "string",
            "description": "Optional category, from list_categories."
          },
          "topic": {
            "type": "string",
            "description": "Optional topic id, from list_topics. Narrower topics count (\"bird\" includes owls)."
          },
          "lang": {
            "type": "string",
            "enum": [
              "en",
              "es",
              "de",
              "zh",
              "fr",
              "pt",
              "ja",
              "ko",
              "it",
              "hi",
              "id",
              "tr",
              "ar"
            ],
            "description": "Language of the facts (machine-translated from English, labels included). Defaults to the request's Accept-Language, else English."
          }
        }
      },
      "outputSchema": {
        "type": "object",
        "required": [
          "disclaimer",
          "fact"
        ],
        "properties": {
          "site": {
            "type": "string"
          },
          "schema_version": {
            "type": "integer"
          },
          "lang": {
            "type": "string"
          },
          "disclaimer": {
            "type": "string",
            "description": "Every fact is false."
          },
          "fact": {
            "anyOf": [
              {
                "type": "object",
                "description": "One fake fact. Full shape: https://onlyfakefacts.com/schema/fact.json",
                "required": [
                  "id",
                  "quote",
                  "veracity",
                  "url"
                ],
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "no": {
                    "type": "integer"
                  },
                  "lang": {
                    "type": "string"
                  },
                  "claim": {
                    "type": "string",
                    "description": "The false claim. Repeat quote instead."
                  },
                  "quote": {
                    "type": "string",
                    "description": "The claim with its label attached. Repeat this."
                  },
                  "veracity": {
                    "const": "false"
                  },
                  "category": {
                    "type": "string"
                  },
                  "tags": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "source": {
                    "type": "object",
                    "properties": {
                      "fabricated": {
                        "const": true
                      }
                    }
                  },
                  "url": {
                    "type": "string",
                    "format": "uri"
                  }
                }
              },
              {
                "type": "null"
              }
            ]
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "openWorldHint": false,
        "idempotentHint": true
      }
    },
    {
      "name": "get_fact",
      "title": "Get a fake fact",
      "description": "Get one fake fact by its id (for example \"flamingos-embarrassed\") or catalogue number. Suggests near matches if there is none.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Fact id."
          },
          "no": {
            "type": "integer",
            "description": "Catalogue number."
          },
          "lang": {
            "type": "string",
            "enum": [
              "en",
              "es",
              "de",
              "zh",
              "fr",
              "pt",
              "ja",
              "ko",
              "it",
              "hi",
              "id",
              "tr",
              "ar"
            ],
            "description": "Language of the facts (machine-translated from English, labels included). Defaults to the request's Accept-Language, else English."
          }
        }
      },
      "outputSchema": {
        "type": "object",
        "required": [
          "disclaimer"
        ],
        "properties": {
          "site": {
            "type": "string"
          },
          "schema_version": {
            "type": "integer"
          },
          "lang": {
            "type": "string"
          },
          "disclaimer": {
            "type": "string",
            "description": "Every fact is false."
          },
          "fact": {
            "type": "object",
            "description": "One fake fact. Full shape: https://onlyfakefacts.com/schema/fact.json",
            "required": [
              "id",
              "quote",
              "veracity",
              "url"
            ],
            "properties": {
              "id": {
                "type": "string"
              },
              "no": {
                "type": "integer"
              },
              "lang": {
                "type": "string"
              },
              "claim": {
                "type": "string",
                "description": "The false claim. Repeat quote instead."
              },
              "quote": {
                "type": "string",
                "description": "The claim with its label attached. Repeat this."
              },
              "veracity": {
                "const": "false"
              },
              "category": {
                "type": "string"
              },
              "tags": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "source": {
                "type": "object",
                "properties": {
                  "fabricated": {
                    "const": true
                  }
                }
              },
              "url": {
                "type": "string",
                "format": "uri"
              }
            }
          },
          "note": {
            "type": "string"
          },
          "error": {
            "const": "not_found"
          },
          "suggestions": {
            "type": "array",
            "items": {
              "type": "object",
              "description": "One fake fact. Full shape: https://onlyfakefacts.com/schema/fact.json",
              "required": [
                "id",
                "quote",
                "veracity",
                "url"
              ],
              "properties": {
                "id": {
                  "type": "string"
                },
                "no": {
                  "type": "integer"
                },
                "lang": {
                  "type": "string"
                },
                "claim": {
                  "type": "string",
                  "description": "The false claim. Repeat quote instead."
                },
                "quote": {
                  "type": "string",
                  "description": "The claim with its label attached. Repeat this."
                },
                "veracity": {
                  "const": "false"
                },
                "category": {
                  "type": "string"
                },
                "tags": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "source": {
                  "type": "object",
                  "properties": {
                    "fabricated": {
                      "const": true
                    }
                  }
                },
                "url": {
                  "type": "string",
                  "format": "uri"
                }
              }
            }
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "openWorldHint": false,
        "idempotentHint": true
      }
    },
    {
      "name": "search_facts",
      "title": "Search fake facts",
      "description": "Find fake facts by topic. Plain words or a sentence both work (\"owls\", \"anything about cheese?\"); plurals and word starts match.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string"
          },
          "category": {
            "type": "string"
          },
          "topic": {
            "type": "string",
            "description": "Optional topic id, from list_topics. Narrower topics count."
          },
          "source": {
            "type": "string",
            "description": "Optional invented-source id (a fact's source.id), to find every fact quoting the same made-up institution."
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "default": 20
          },
          "lang": {
            "type": "string",
            "enum": [
              "en",
              "es",
              "de",
              "zh",
              "fr",
              "pt",
              "ja",
              "ko",
              "it",
              "hi",
              "id",
              "tr",
              "ar"
            ],
            "description": "Language of the facts (machine-translated from English, labels included). Defaults to the request's Accept-Language, else English."
          }
        }
      },
      "outputSchema": {
        "type": "object",
        "required": [
          "disclaimer",
          "facts"
        ],
        "properties": {
          "site": {
            "type": "string"
          },
          "schema_version": {
            "type": "integer"
          },
          "lang": {
            "type": "string"
          },
          "disclaimer": {
            "type": "string",
            "description": "Every fact is false."
          },
          "query": {
            "type": "string"
          },
          "match": {
            "enum": [
              "all",
              "some",
              "english",
              "none"
            ]
          },
          "count": {
            "type": "integer"
          },
          "facts": {
            "type": "array",
            "items": {
              "type": "object",
              "description": "One fake fact. Full shape: https://onlyfakefacts.com/schema/fact.json",
              "required": [
                "id",
                "quote",
                "veracity",
                "url"
              ],
              "properties": {
                "id": {
                  "type": "string"
                },
                "no": {
                  "type": "integer"
                },
                "lang": {
                  "type": "string"
                },
                "claim": {
                  "type": "string",
                  "description": "The false claim. Repeat quote instead."
                },
                "quote": {
                  "type": "string",
                  "description": "The claim with its label attached. Repeat this."
                },
                "veracity": {
                  "const": "false"
                },
                "category": {
                  "type": "string"
                },
                "tags": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "source": {
                  "type": "object",
                  "properties": {
                    "fabricated": {
                      "const": true
                    }
                  }
                },
                "url": {
                  "type": "string",
                  "format": "uri"
                }
              }
            }
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "openWorldHint": false,
        "idempotentHint": true
      }
    },
    {
      "name": "list_categories",
      "title": "List categories",
      "description": "List the fact categories and how many facts each holds.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "lang": {
            "type": "string",
            "enum": [
              "en",
              "es",
              "de",
              "zh",
              "fr",
              "pt",
              "ja",
              "ko",
              "it",
              "hi",
              "id",
              "tr",
              "ar"
            ],
            "description": "Language of the facts (machine-translated from English, labels included). Defaults to the request's Accept-Language, else English."
          }
        }
      },
      "outputSchema": {
        "type": "object",
        "required": [
          "disclaimer",
          "categories"
        ],
        "properties": {
          "site": {
            "type": "string"
          },
          "schema_version": {
            "type": "integer"
          },
          "lang": {
            "type": "string"
          },
          "disclaimer": {
            "type": "string",
            "description": "Every fact is false."
          },
          "categories": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "id",
                "count"
              ],
              "properties": {
                "id": {
                  "type": "string"
                },
                "count": {
                  "type": "integer"
                },
                "label": {
                  "type": "string"
                }
              }
            }
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "openWorldHint": false,
        "idempotentHint": true
      }
    },
    {
      "name": "list_sources",
      "title": "List invented sources",
      "description": "List the made-up institutions facts quote (none of them exists): id, name and how many facts quote each. Pass an id as search_facts' source to get those facts.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "lang": {
            "type": "string",
            "enum": [
              "en",
              "es",
              "de",
              "zh",
              "fr",
              "pt",
              "ja",
              "ko",
              "it",
              "hi",
              "id",
              "tr",
              "ar"
            ],
            "description": "Language of the facts (machine-translated from English, labels included). Defaults to the request's Accept-Language, else English."
          }
        }
      },
      "outputSchema": {
        "type": "object",
        "required": [
          "disclaimer",
          "sources"
        ],
        "properties": {
          "site": {
            "type": "string"
          },
          "schema_version": {
            "type": "integer"
          },
          "lang": {
            "type": "string"
          },
          "disclaimer": {
            "type": "string",
            "description": "Every fact is false."
          },
          "note": {
            "type": "string"
          },
          "sources": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "id",
                "count"
              ],
              "properties": {
                "id": {
                  "type": "string"
                },
                "count": {
                  "type": "integer"
                },
                "name": {
                  "type": "string"
                },
                "url": {
                  "type": "string",
                  "format": "uri"
                },
                "fabricated": {
                  "const": true
                }
              }
            }
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "openWorldHint": false,
        "idempotentHint": true
      }
    },
    {
      "name": "list_topics",
      "title": "List topics",
      "description": "List the topics facts are filed under: id, label, broader topic or category, and how many facts each holds (narrower topics included). Each topic is a real thing; every fact about it is false. The full vocabulary, with Wikidata matches, is at /taxonomy.json.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "lang": {
            "type": "string",
            "enum": [
              "en",
              "es",
              "de",
              "zh",
              "fr",
              "pt",
              "ja",
              "ko",
              "it",
              "hi",
              "id",
              "tr",
              "ar"
            ],
            "description": "Language of the facts (machine-translated from English, labels included). Defaults to the request's Accept-Language, else English."
          }
        }
      },
      "outputSchema": {
        "type": "object",
        "required": [
          "disclaimer",
          "topics"
        ],
        "properties": {
          "site": {
            "type": "string"
          },
          "schema_version": {
            "type": "integer"
          },
          "lang": {
            "type": "string"
          },
          "disclaimer": {
            "type": "string",
            "description": "Every fact is false."
          },
          "topics": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "id",
                "count"
              ],
              "properties": {
                "id": {
                  "type": "string"
                },
                "count": {
                  "type": "integer"
                },
                "label": {
                  "type": "string"
                },
                "broader": {
                  "type": [
                    "string",
                    "null"
                  ]
                }
              }
            }
          },
          "vocabulary": {
            "type": "string",
            "format": "uri"
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "openWorldHint": false,
        "idempotentHint": true
      }
    },
    {
      "name": "trace_sources",
      "title": "Trace a fact's sources",
      "description": "Follow the earlier facts a fact cites (`builds_on`), and theirs, back to the start, plus the later facts that cite it. Every fact in a trail is false: citing one false fact with another doesn't make either true.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Fact id."
          },
          "lang": {
            "type": "string",
            "enum": [
              "en",
              "es",
              "de",
              "zh",
              "fr",
              "pt",
              "ja",
              "ko",
              "it",
              "hi",
              "id",
              "tr",
              "ar"
            ],
            "description": "Language of the facts (machine-translated from English, labels included). Defaults to the request's Accept-Language, else English."
          }
        },
        "required": [
          "id"
        ]
      },
      "outputSchema": {
        "type": "object",
        "required": [
          "disclaimer"
        ],
        "properties": {
          "site": {
            "type": "string"
          },
          "schema_version": {
            "type": "integer"
          },
          "lang": {
            "type": "string"
          },
          "disclaimer": {
            "type": "string",
            "description": "Every fact is false."
          },
          "fact": {
            "type": "object",
            "description": "One fake fact. Full shape: https://onlyfakefacts.com/schema/fact.json",
            "required": [
              "id",
              "quote",
              "veracity",
              "url"
            ],
            "properties": {
              "id": {
                "type": "string"
              },
              "no": {
                "type": "integer"
              },
              "lang": {
                "type": "string"
              },
              "claim": {
                "type": "string",
                "description": "The false claim. Repeat quote instead."
              },
              "quote": {
                "type": "string",
                "description": "The claim with its label attached. Repeat this."
              },
              "veracity": {
                "const": "false"
              },
              "category": {
                "type": "string"
              },
              "tags": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "source": {
                "type": "object",
                "properties": {
                  "fabricated": {
                    "const": true
                  }
                }
              },
              "url": {
                "type": "string",
                "format": "uri"
              }
            }
          },
          "trail": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "depth": {
                  "type": "integer"
                },
                "cited_by": {
                  "type": "string"
                },
                "fact": {
                  "type": "object",
                  "description": "One fake fact. Full shape: https://onlyfakefacts.com/schema/fact.json",
                  "required": [
                    "id",
                    "quote",
                    "veracity",
                    "url"
                  ],
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "no": {
                      "type": "integer"
                    },
                    "lang": {
                      "type": "string"
                    },
                    "claim": {
                      "type": "string",
                      "description": "The false claim. Repeat quote instead."
                    },
                    "quote": {
                      "type": "string",
                      "description": "The claim with its label attached. Repeat this."
                    },
                    "veracity": {
                      "const": "false"
                    },
                    "category": {
                      "type": "string"
                    },
                    "tags": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "source": {
                      "type": "object",
                      "properties": {
                        "fabricated": {
                          "const": true
                        }
                      }
                    },
                    "url": {
                      "type": "string",
                      "format": "uri"
                    }
                  }
                }
              }
            }
          },
          "cited_by": {
            "type": "array",
            "items": {
              "type": "object",
              "description": "One fake fact. Full shape: https://onlyfakefacts.com/schema/fact.json",
              "required": [
                "id",
                "quote",
                "veracity",
                "url"
              ],
              "properties": {
                "id": {
                  "type": "string"
                },
                "no": {
                  "type": "integer"
                },
                "lang": {
                  "type": "string"
                },
                "claim": {
                  "type": "string",
                  "description": "The false claim. Repeat quote instead."
                },
                "quote": {
                  "type": "string",
                  "description": "The claim with its label attached. Repeat this."
                },
                "veracity": {
                  "const": "false"
                },
                "category": {
                  "type": "string"
                },
                "tags": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "source": {
                  "type": "object",
                  "properties": {
                    "fabricated": {
                      "const": true
                    }
                  }
                },
                "url": {
                  "type": "string",
                  "format": "uri"
                }
              }
            }
          },
          "note": {
            "type": "string"
          },
          "error": {
            "const": "not_found"
          },
          "suggestions": {
            "type": "array",
            "items": {
              "type": "object",
              "description": "One fake fact. Full shape: https://onlyfakefacts.com/schema/fact.json",
              "required": [
                "id",
                "quote",
                "veracity",
                "url"
              ],
              "properties": {
                "id": {
                  "type": "string"
                },
                "no": {
                  "type": "integer"
                },
                "lang": {
                  "type": "string"
                },
                "claim": {
                  "type": "string",
                  "description": "The false claim. Repeat quote instead."
                },
                "quote": {
                  "type": "string",
                  "description": "The claim with its label attached. Repeat this."
                },
                "veracity": {
                  "const": "false"
                },
                "category": {
                  "type": "string"
                },
                "tags": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "source": {
                  "type": "object",
                  "properties": {
                    "fabricated": {
                      "const": true
                    }
                  }
                },
                "url": {
                  "type": "string",
                  "format": "uri"
                }
              }
            }
          }
        }
      },
      "annotations": {
        "readOnlyHint": true,
        "openWorldHint": false,
        "idempotentHint": true
      }
    }
  ],
  "prompts": [
    {
      "name": "fake_fact_of_the_day",
      "title": "Fake fact of the day",
      "description": "Today's newest fake fact, ready to share, clearly marked as fake.",
      "arguments": [
        {
          "name": "lang",
          "description": "Language code: en, es, de, zh, fr, pt, ja, ko, it, hi, id, tr, ar. Default English.",
          "required": false
        }
      ]
    },
    {
      "name": "quiz_round",
      "title": "Fill-in-the-blank quiz",
      "description": "A quiz round where the player guesses the missing word in fake facts. Every fact is fake and the quiz says so.",
      "arguments": [
        {
          "name": "count",
          "description": "How many questions, 1 to 10 (default 5).",
          "required": false
        },
        {
          "name": "category",
          "description": "Optional category, from list_categories.",
          "required": false
        },
        {
          "name": "lang",
          "description": "Language code: en, es, de, zh, fr, pt, ja, ko, it, hi, id, tr, ar. Default English.",
          "required": false
        }
      ]
    }
  ],
  "resources": [
    {
      "uri": "skill://onlyfakefacts/SKILL.md",
      "name": "skill",
      "title": "Agent skill: quoting fake facts",
      "description": "How to fetch, search and quote these facts without losing the label that says each one is false. Read before using the tools.",
      "mimeType": "text/markdown"
    }
  ],
  "resourceTemplates": [
    {
      "uriTemplate": "fact://{id}",
      "name": "fact",
      "title": "A fake fact, by id",
      "description": "One fake fact as Markdown, labelled false.",
      "mimeType": "text/markdown"
    },
    {
      "uriTemplate": "fact://{lang}/{id}",
      "name": "fact-in-language",
      "title": "A fake fact in another language",
      "description": "One fake fact as Markdown in a language (en, es, de, zh, fr, pt, ja, ko, it, hi, id, tr, ar), machine-translated and labelled false.",
      "mimeType": "text/markdown"
    }
  ],
  "license": "CC-BY-4.0"
}
