Skip to main content
Glama

get-stations-code-in-city

Find all railway stations and their codes in a Chinese city to simplify ticket booking and travel planning on 12306.

Instructions

通过中文城市名查询该城市 所有 火车站的名称及其对应的 station_code,结果是一个包含多个车站信息的列表。

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
cityYes中文城市名称,例如:"北京", "上海"

Implementation Reference

  • Handler function that retrieves all stations in the given city from precomputed CITY_STATIONS data and returns them as a JSON string in the response content, or an error if the city is not found.
    async ({ city }) => {
        if (!(city in CITY_STATIONS)) {
            return {
                content: [{ type: 'text', text: 'Error: City not found. ' }],
            };
        }
        return {
            content: [
                { type: 'text', text: JSON.stringify(CITY_STATIONS[city]) },
            ],
        };
    }
  • Input schema defined using Zod, specifying a required 'city' parameter as a string with description.
    {
        city: z.string().describe('中文城市名称,例如:"北京", "上海"'),
    },
  • src/index.ts:841-859 (registration)
    Registration of the tool using McpServer's server.tool() method, providing name, description, input schema, and handler.
    server.tool(
        'get-stations-code-in-city',
        '通过中文城市名查询该城市 **所有** 火车站的名称及其对应的 `station_code`,结果是一个包含多个车站信息的列表。',
        {
            city: z.string().describe('中文城市名称,例如:"北京", "上海"'),
        },
        async ({ city }) => {
            if (!(city in CITY_STATIONS)) {
                return {
                    content: [{ type: 'text', text: 'Error: City not found. ' }],
                };
            }
            return {
                content: [
                    { type: 'text', text: JSON.stringify(CITY_STATIONS[city]) },
                ],
            };
        }
    );
  • Precomputed CITY_STATIONS map from city name to list of stations in that city ({station_code, station_name}), derived from global STATIONS data loaded earlier.
    const CITY_STATIONS: Record<
        string,
        { station_code: string; station_name: string }[]
    > = (() => {
        const result: Record<
            string,
            { station_code: string; station_name: string }[]
        > = {};
        for (const station of Object.values(STATIONS)) {
            const city = station.city;
            if (!result[city]) {
                result[city] = [];
            }
            result[city].push({
                station_code: station.station_code,
                station_name: station.station_name,
            });
        }
        return result;
    })(); //以城市名名为键,位于该城市的的所有Station列表的记录

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Joooook/12306-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server