China Footnotes

Sourced, dated China travel facts: places, hours, tickets, booking and pre-trip setup.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
82%
Naming quality
100%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~2,021Tokens (tool definitions)
~3.1 KBTypical response size
Moderate attention impact (1.58% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "china-footnotes": {
      "url": "https://chinafootnotes.com/mcp"
    }
  }
}

Remote endpoints

https://chinafootnotes.com/mcpstreamable-http

What it can do

Tool inventory

Tools (5)

🟒 Read-only🟑 WriteπŸ”΄ Deleteβšͺ Unknown
🟒search_places(query, city, type, tag, limit)

Search the China Footnotes guide for sights and neighbourhoods a first-time foreign visitor might go to. Matches English or Chinese names, aliases, district, type and tags. Suited to questions about what to see or do in a covered city, and to finding a place's id from its name. Coverage today: Shanghai (50 places), Beijing (20 places), Xi’an (10 places), Chengdu (12 places), Chongqing (10 places), Hangzhou (10 places). Returns short summaries with ids and page links, best match first; matchedAll is false when no place matched the whole query and the results only share some words with it. Opening hours, tickets, booking and traveler tips come from get_place.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "Words to match, e.g. \"Yu Garden\", \"豫园\", \"art museum\", \"night view\". Leave empty to list places."
    },
    "city": {
      "type": "string",
      "description": "City id. Covered: shanghai, beijing, xian, chengdu, chongqing, hangzhou."
    },
    "type": {
      "type": "string",
      "description": "Place type.",
      "enum": [
        "open_district",
        "water_town",
        "museum",
        "observation_deck",
        "ticketed_attraction",
        "classical_garden",
        "park",
        "temple"
      ]
    },
    "tag": {
      "type": "string",
      "description": "Tag, e.g. free, paid, rainy-day, indoor, night-view, family, history, art, booking-required, closed-mon, day-trip."
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 50,
      "default": 10,
      "description": "Maximum places to return (default 10)."
    }
  },
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "total": {
      "type": "integer"
    },
    "matchedAll": {
      "type": "boolean"
    },
    "cities": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "places": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "localName": {
            "type": "string"
          },
          "city": {
            "type": "string"
          },
          "type": {
            "type": [
              "string",
              "null"
            ]
          },
          "district": {
            "type": [
              "string",
              "null"
            ]
          },
          "tagline": {
            "type": "string"
          },
          "url": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "name",
          "url"
        ]
      }
    }
  },
  "required": [
    "total",
    "matchedAll",
    "places"
  ]
}
🟒get_place(id)

Get the full China Footnotes entry for one place by id (from search_places): why go, what to do, opening hours with weekday and seasonal rules, ticket prices, booking channels and whether passports work, last entry, metro and taxi directions, notices in effect, current and upcoming events (temporary festivals, exhibitions and shows), what was searched but not found, traveler tips, and every source with its link. Each practical field carries a status and the date its source was read; it is not a live confirmation for today.

Input Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "Place id, e.g. \"yuyuan-garden\"."
    }
  },
  "required": [
    "id"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    },
    "name": {
      "type": "string"
    },
    "localName": {
      "type": "string"
    },
    "city": {
      "type": "string"
    },
    "type": {
      "type": [
        "string",
        "null"
      ]
    },
    "district": {
      "type": [
        "string",
        "null"
      ]
    },
    "tagline": {
      "type": "string"
    },
    "url": {
      "type": "string"
    },
    "researchedAt": {
      "type": [
        "string",
        "null"
      ]
    },
    "reviewDue": {
      "type": [
        "string",
        "null"
      ]
    },
    "isReviewOverdue": {
      "type": "boolean"
    },
    "visitDuration": {
      "type": [
        "string",
        "null"
      ]
    },
    "fields": {
      "type": "object",
      "properties": {
        "hours": {
          "type": [
            "object",
            "null"
          ],
          "properties": {
            "headline": {
              "type": [
                "string",
                "null"
              ]
            },
            "status": {
              "type": "string"
            },
            "basis": {
              "type": [
                "string",
                "null"
              ]
            }
          }
        },
        "admission": {
          "type": [
            "object",
            "null"
          ],
          "properties": {
            "headline": {
              "type": [
                "string",
                "null"
              ]
            },
            "status": {
              "type": "string"
            },
            "basis": {
              "type": [
                "string",
                "null"
              ]
            }
          }
        },
        "booking": {
          "type": [
            "object",
            "null"
          ],
          "properties": {
            "headline": {
              "type": [
                "string",
                "null"
              ]
            },
            "status": {
              "type": "string"
            },
            "basis": {
              "type": [
                "string",
                "null"
              ]
            }
          }
        },
        "lastAdmission": {
          "type": [
            "object",
            "null"
          ],
          "properties": {
            "headline": {
              "type": [
                "string",
                "null"
              ]
            },
            "status": {
              "type": "string"
            },
            "basis": {
              "type": [
                "string",
                "null"
              ]
            }
          }
        },
        "foreignVisitors": {
          "type": [
            "object",
            "null"
          ],
          "properties": {
            "headline": {
              "type": [
                "string",
                "null"
              ]
            },
            "status": {
              "type": "string"
            },
            "basis": {
              "type": [
                "string",
                "null"
              ]
            }
          }
        },
        "transport": {
          "type": [
            "object",
            "null"
          ],
          "properties": {
            "headline": {
              "type": [
                "string",
                "null"
              ]
            },
            "status": {
              "type": "string"
            },
            "basis": {
              "type": [
                "string",
                "null"
              ]
            }
          }
        }
      }
    },
    "notices": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "text": {
            "type": "string"
          },
          "startsAt": {
            "type": [
              "string",
              "null"
            ]
          },
          "expiresAt": {
            "type": [
              "string",
              "null"
            ]
          }
        }
      }
    },
    "events": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string"
          },
          "kind": {
            "type": "string"
          },
          "startsAt": {
            "type": [
              "string",
              "null"
            ]
          },
          "endsAt": {
            "type": "string"
          },
          "dates": {
            "type": [
              "array",
              "null"
            ],
            "items": {
              "type": "string"
            }
          },
          "when": {
            "type": [
              "string",
              "null"
            ]
          },
          "where": {
            "type": [
              "string",
              "null"
            ]
          },
          "ticket": {
            "type": [
              "string",
              "null"
            ]
          },
          "price": {
            "type": [
              "string",
              "null"
            ]
          },
          "booking": {
            "type": [
              "string",
              "null"
            ]
          },
          "text": {
            "type": "string"
          }
        }
      }
    },
    "photos": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "url": {
            "type": "string"
          },
          "caption": {
            "type": [
              "string",
              "null"
            ]
          },
          "author": {
            "type": [
              "string",
              "null"
            ]
          },
          "license": {
            "type": [
              "string",
              "null"
            ]
          },
          "sourceUrl": {
            "type": [
              "string",
              "null"
            ]
          }
        }
      }
    }
  },
  "required": [
    "id",
    "name",
    "url",
    "fields"
  ]
}
🟒list_pretrip_topics

List the China Footnotes "Before you go" topics for foreign visitors preparing a trip to China: when to go, visa and entry, paying, internet and SIM, apps, booking ahead, getting around, safety. Covers how to prepare for a trip to China. Returns topic ids and one key fact each; details come from get_pretrip_topic.

Input Schema

{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "topics": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "stage": {
            "type": [
              "string",
              "null"
            ]
          },
          "keyFact": {
            "type": [
              "string",
              "null"
            ]
          },
          "checkedAt": {
            "type": [
              "string",
              "null"
            ]
          },
          "url": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "title",
          "url"
        ]
      }
    }
  },
  "required": [
    "topics"
  ]
}
🟒get_pretrip_topic(id)

Get one China Footnotes "Before you go" topic by id: the essentials, a checklist, dated items such as holiday crowd calendars or rule changes, traveler tips and sources. Topic ids: when-to-go, visa, arrival-card, payments, internet, apps, book-ahead, getting-around, safety. Rules such as visa policy change, so each item carries the date it was checked.

Input Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "Topic id, e.g. \"visa\" or \"payments\"."
    }
  },
  "required": [
    "id"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    },
    "title": {
      "type": "string"
    },
    "stage": {
      "type": [
        "string",
        "null"
      ]
    },
    "keyFact": {
      "type": [
        "string",
        "null"
      ]
    },
    "checkedAt": {
      "type": [
        "string",
        "null"
      ]
    },
    "url": {
      "type": "string"
    }
  },
  "required": [
    "id",
    "title",
    "url"
  ]
}
🟒get_current_notices(city, placeId)

List dated notices in effect today (Asia/Shanghai) for places in the China Footnotes guide, such as holiday traffic controls, temporary closures and special opening hours. Only notices the editors have entered are included; this is not a live news feed, and an empty list does not mean nothing has changed.

Input Schema

{
  "type": "object",
  "properties": {
    "city": {
      "type": "string",
      "description": "City id. Covered: shanghai, beijing, xian, chengdu, chongqing, hangzhou."
    },
    "placeId": {
      "type": "string",
      "description": "Only notices for this place id."
    }
  },
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "date": {
      "type": "string"
    },
    "notices": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "placeId": {
            "type": "string"
          },
          "placeName": {
            "type": "string"
          },
          "text": {
            "type": "string"
          },
          "startsAt": {
            "type": [
              "string",
              "null"
            ]
          },
          "expiresAt": {
            "type": [
              "string",
              "null"
            ]
          },
          "url": {
            "type": "string"
          },
          "sources": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "publisher": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "url": {
                  "type": [
                    "string",
                    "null"
                  ]
                }
              }
            }
          }
        }
      }
    }
  },
  "required": [
    "date",
    "notices"
  ]
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded5 tools