Twinkle HubTwinkle Hub
Sign in

Docs

10-minute setup

Twinkle Hub is an MCP endpoint — any MCP client connects. Pick the path that matches you.

1. Get an API key

/login → one-click sign-in with Google or GitHub. First sign-in auto-mints a LiteLLM virtual API key (sk-...). New accounts default to $0 balance — card top-up is coming; meanwhile email support for credit.

2. Claude Desktop

Just paste the prompt below into Claude Desktop — it'll edit your config:

text
Add Twinkle Hub to my Claude Desktop. Edit
~/Library/Application Support/Claude/claude_desktop_config.json
(Windows: %APPDATA%\Claude\claude_desktop_config.json).

Merge in this block:
{
  "mcpServers": {
    "twinkle-hub": {
      "type": "http",
      "url": "https://api.twinkleai.tw/mcp/",
      "headers": {
        "Authorization": "Bearer <I'll paste from https://hub.twinkleai.tw/dashboard>"
      }
    }
  }
}

If an mcpServers block already exists, merge — don't overwrite.
Then ask me to restart Claude and list the 5 new opendata-* tools.

Want to edit by hand? Open this file:

  • macOS~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows%APPDATA%\Claude\claude_desktop_config.json
  • Linux~/.config/Claude/claude_desktop_config.json
text
{
  "mcpServers": {
    "twinkle-hub": {
      "type": "http",
      "url": "https://api.twinkleai.tw/mcp/",
      "headers": {
        "Authorization": "Bearer sk-..."
      }
    }
  }
}

Replace sk-... with the key you see on your dashboard. Restart Claude — the 5 opendata-* tools will appear.

3. Cursor

Cursor uses ~/.cursor/mcp.json with the same shape as Claude Desktop:

text
{
  "mcpServers": {
    "twinkle-hub": {
      "type": "http",
      "url": "https://api.twinkleai.tw/mcp/",
      "headers": {
        "Authorization": "Bearer sk-..."
      }
    }
  }
}

After saving, in Cursor: Settings → MCP → reload Twinkle Hub.

4. Claude Code (CLI)

Claude Code ships with a claude mcp add command:

text
claude mcp add --transport http twinkle-hub https://api.twinkleai.tw/mcp/ \
  --header "Authorization: Bearer sk-..."

5. What to ask

Pick one and try (works in English or Chinese):

  • Show me Taipei's PM2.5 readings for the last 30 days, and chart the trend→ environment domain
  • List property sales in this district above NT$50M→ realestate_land domain
  • Top 10 government procurement contracts by amount this year→ procurement domain

/catalog has the full 19-domain scope and typical questions for each.

6. Pricing

ToolPer callUse
opendata-list_domains$0.0005List 19 domains (helps Claude plan)
opendata-search_datasets$0.001Search datasets by query / domain
opendata-get_dataset$0.001Fetch dataset metadata + schema
opendata-query_rows$0.005SQL-like filter on rows
opendata-materialize_dataset$0.010Full dataset materialization

Within seconds of each call you'll see the cost on /usage. When the wallet hits zero LiteLLM auto-rejects — no surprise bills.