프로토타입 · 미리 보기: 공식 레지스트리의 모든 서버를 담고 있으며 30분마다 동기화해요. 리뷰와 계정 기능은 다음 단계에서 열려요.
PopNx MCPAI를 쓰는 사람을 위한 MCP 서버 · 쉬운 말로 설명해요

SiteData MCP

제작자: SiteData-DEV버전 0.1.0i★ –i클라우드에서 실행
레지스트리 이름io.github.shineforever/sitedata-mcp

설치

개요

제작자가 쓴 설명(영어 원문)

Website traffic, DR growth and payment rankings; manage website and keyword favorites via OAuth.

PopNx MCP의 세 기둥

이 세 가지는 절대 하나의 점수로 합치지 않아요. 의견, 측정, 인기는 서로 다른 것이니까요.

할 수 있는 일

이 서버는 아직 쉬운 말로 된 요약을 쓰지 못했어요. 아래는 레지스트리에서 읽어 온 사실이에요.

  • 연결 방식: 클라우드에서 실행
  • 전송 방식: Streamable HTTP
  • 카테고리: 온라인 쇼핑몰 및 결제

설치

쓰고 있는 AI 앱을 고른 다음 설정을 복사하세요.

설치하기 전에

  • 기본 점검: 1개 중 0개 통과
  • 제작자의 서버에서 실행돼요. 내가 요청한 내용은 제작자의 서버를 거쳐요.
  • 레지스트리에 입력해야 할 키가 나와 있지 않아요.

필요한 것

어떤 앱을 쓰세요?

위에서 앱을 고르세요. 기억해 두었다가 다음부터는 버튼에 “…에 설치”라고 표시해요.

웹, 데스크톱, 모바일의 Claude에서 쓸 수 있어요:

  1. Settings → Connectors 열기
  2. Add custom connector 누르기
  3. 아래 주소를 붙여 넣고 Add 누르기
  4. 로그인하라고 하면 제작자의 서비스에 로그인하기
SettingsConnectors1+ Add2https://…3
https://mcp.sitedata.dev/mcp

터미널에서 이 명령어를 실행하세요

claude mcp add --transport http sitedata https://mcp.sitedata.dev/mcp

Cursor에서 열기

또는 설정을 직접 복사하기

프로젝트의 .cursor/mcp.json 또는 ~/.cursor/mcp.json에 붙여 넣으세요

{
  "mcpServers": {
    "sitedata": {
      "url": "https://mcp.sitedata.dev/mcp"
    }
  }
}

브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.

VS Code에서 열기

또는 설정을 직접 복사하기

프로젝트의 .vscode/mcp.json에 붙여 넣으세요

{
  "servers": {
    "sitedata": {
      "type": "http",
      "url": "https://mcp.sitedata.dev/mcp"
    }
  }
}

브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.

ChatGPT는 인터넷에 있는 서버에만 연결할 수 있어요:

  1. 웹에서 ChatGPT 열기 → Settings → Connectors (Apps)
  2. Create 또는 Add 누르기(일부 요금제는 먼저 Advanced에서 Developer mode를 켜야 해요)
  3. 아래 주소를 붙여 넣고 이름을 정한 뒤 저장하기
  4. 로그인하라고 하면 제작자의 서비스에 로그인하기
SettingsConnectors1+ Create2https://…3
https://mcp.sitedata.dev/mcp

메뉴 이름은 요금제나 시기에 따라 조금 다를 수 있어요.

선택한 앱은 이 기기의 쿠키에만 저장돼요. 계정은 필요 없어요.

이 설정은 제작자의 레지스트리 정보로 만들었어요. README와 다르면 README를 따르세요.

할 수 있는 일

아직 이 서버의 도구 목록을 읽지 않았어요. 엔드포인트는 차례대로 돌아가며 점검해요.

기본 점검i

누구나 볼 수 있는 정보를 점검했고, 코드는 읽지 않았어요. 해당하지 않는 항목은 개수에서 뺐어요. · 2026년 11월 7일 점검

  • ! 주의

    제작자와 저장소 일치

    게시자(shineforever)가 저장소 소유자(SiteData-DEV)가 아니에요. 다른 사람이 등록했을 수 있어요

  • … 아직 점검 안 함

    계속 관리되고 있음

    아직 GitHub에서 이 저장소를 읽어 오지 않았어요

  • … 아직 점검 안 함

    라이선스 있음

    아직 GitHub에서 이 저장소를 읽어 오지 않았어요

  • … 아직 점검 안 함

    엔드포인트 응답

    아직 점검하지 않았어요. 엔드포인트는 차례대로 돌아가며 점검해요

  • … 아직 점검 안 함

    OAuth로 로그인

    아직 점검하지 않았어요. 엔드포인트는 차례대로 돌아가며 점검해요

  • … 아직 점검 안 함

    도구 설명에 숨겨진 지시 없음

    아직 점검하지 않았어요. 엔드포인트를 점검할 때 도구 목록을 읽어요

온라인 쇼핑몰 및 결제 카테고리의 다른 서버와 비교i

  • 이 카테고리의 다른 서버 2534개 중 0%보다 스타가 많아요
  • 이 카테고리의 다른 서버 2534개 중 52%보다 최근에 레지스트리에 공개됐어요
  • 기본 점검 결과가 이 카테고리의 다른 서버 2534개 중 36%와 같거나 더 좋아요

레지스트리에서 이 카테고리의 활성 서버 전체와 비교했어요. 스타는 게시자가 저장소를 소유한 경우에만 세요.

자주 묻는 질문

SiteData MCP, 안전한가요?

해당하는 기본 점검 1개 중 0개를 통과했어요. 코드는 읽지 않았어요. 키나 토큰을 넣기 전에 서버가 어떤 권한을 요구하는지 확인하고, 꼭 필요한 권한만 있는 키를 쓰세요.

어떤 키나 코드가 필요한가요?

레지스트리에 필수 키가 나와 있지 않아요. 다만 처음 쓸 때 로그인을 요구하는 서버도 있어요.

내 컴퓨터에서 실행되나요, 클라우드에서 실행되나요?

제작자의 클라우드에서 실행돼요. 설치 없이 인터넷으로 연결하지만, 보내는 내용은 제작자의 서버를 거쳐요.

아직 관리되고 있나요?

GitHub 저장소는 마지막으로 – 변경됐고, 최신 버전(0.1.0)은 26일 전 레지스트리에 올라왔어요.

어떤 앱에서 쓸 수 있나요?

Claude Desktop, Claude Code, Cursor, VS Code처럼 MCP를 지원하는 앱에서 쓸 수 있어요. URL로 연결되기 때문에, 원격 MCP 서버를 지원하는 앱(예: 개발자 모드의 ChatGPT)에서도 쓸 수 있어요.

대신 쓸 수 있는 건 뭐가 있나요?

같은 카테고리에는: Spree Commerce: open-source B2B and marketplace ecommerce, Stripe MCP, MCP Cn Commerce

대안

같은 카테고리에서 다른 제작자가 만든 서버예요. 스타 순으로 정렬했어요.

카드 보는 법:★ GitHub 스타i세 기둥: 리뷰 · 점검 · 사용 정도i업데이트 = 최신 버전을 레지스트리에 공개한 날i

Stripe MCP

제작자: stripe

MCP server integrating with Stripe - tools for customers, products, payments, and more.

클라우드에서 실행★ 2,043MIT12개월 전 업데이트
설치

MCP Cn Commerce

제작자: TonyWang-hub

8 read-only MCP platform entries; support is operation-specific; merchant live acceptance pending

내 컴퓨터에서 실행★ 96MIT28일 전 업데이트
설치

제작자의 README

README 열기

제작자의 저장소에서 쓰인 그대로 가져왔어요. PopNx MCP가 검토하거나 보증한 내용이 아니에요. HTML, 이미지, 스크립트는 제거했어요. 링크를 누르면 이 사이트를 벗어나요.

SiteData MCP

English | 中文

让 Codex、Claude Code(CC)、Cursor、WorkBuddy、OpenCode 和其他支持远程 HTTP MCP 的 AI 客户端直接查询 SiteData 排行榜,并管理当前账户的网站与关键词收藏。

  • MCP 地址:https://mcp.sitedata.dev/mcp
  • OAuth scope:mcp:invoke
  • 使用 SiteData 账户登录授权,无需创建或复制 API Key
  • 排行榜查询要求授权账户具有有效的 SiteData 付费会员
  • 普通用户无需下载本仓库、安装依赖或运行本地服务

安装 SiteData MCP

✨ 一句话 Prompt 自动安装⌨️ 手动安装
把提示词发给本机 Agent,只需在浏览器确认授权自己添加 MCP,并按客户端提示完成授权
一句话 Prompt 自动安装

如果不想手动执行命令或编辑配置,可以把对应客户端的提示词完整发送给该客户端中的本机 Agent。用户只需在浏览器中登录 SiteData 并确认授权;Agent 不应要求用户复制授权码、回调地址或任何配置。

下面的提示词要求 Agent 先检查客户端的实际版本和命令帮助。不同版本能力不一致时,应以本机真实能力为准,不得猜测不存在的命令或参数。

Codex 自动安装提示词

请直接在当前这台电脑完成 SiteData MCP OAuth 2.1 + PKCE 接入。我只会在浏览器确认授权;不要让我再粘贴命令、JSON、authorization code 或回调地址。

目标客户端:Codex 连接名称:"sitedata" MCP 地址:"https://mcp.sitedata.dev/mcp" OAuth scope:"mcp:invoke" 运行位置:本机 Agent

请连续执行到需要重启为止:

  1. 确认当前宿主确实是 Codex,并判断它运行在 Windows 原生、WSL、macOS 还是 Linux。配置和 OAuth 必须在当前 Codex 实际运行的同一环境完成,禁止跨 Windows 用户目录和 WSL Home 写入配置。Codex 客户端与 CLI 处于同一环境时共用 MCP 配置,不要重复添加。
  2. 定位当前宿主实际使用的 codex 可执行文件绝对路径并读取版本;后续所有 Codex 命令均使用该路径。如果当前宿主没有可用 CLI,但提供官方 MCP 设置或宿主 API,则在同一配置域完成等价操作,不得编造命令。
  3. 把连接名称、MCP 地址和 scope 作为纯数据处理。调用进程时使用参数数组,不拼接 shell 字符串;执行 shell 前关闭 xtrace。
  4. 先使用参数数组 ["mcp","get","sitedata"] 检查连接。仅当连接不存在时,使用 ["mcp","add","sitedata","--url","https://mcp.sitedata.dev/mcp"] 添加。已有唯一同名连接且 URL 逐字正确时保留;URL 不一致或同名来源不唯一时停止并准确报告,不得覆盖。SiteData 支持动态客户端注册,不要虚构或写入固定 client_id、client_secret、认证请求头或 Token。
  5. 检查认证状态及是否已有等待中的授权流程。配置、探测或添加操作已经触发 OAuth 时,只等待该流程。只有明确未认证或凭据失效且没有活动流程时,才使用 ["mcp","login","sitedata","--scopes","mcp:invoke"];本次最多发起一次 OAuth。
  6. 让登录进程打开本机默认浏览器并等待我登录 SiteData、选择账户及确认授权。由当前 Codex 环境自动接收 loopback 回调;不要让我复制 authorization code、authorization URL、callback 地址或第二段提示词,也不要自行拼接授权 URL。
  7. OAuth 成功后,只确认登录进程正常退出和配置已持久化;不要在旧会话再次探测状态、重复登录或调用 MCP 工具。
  8. 提醒我重启当前 Codex 会话或客户端一次,然后停止。重启后列出 sitedata 工具;只有 schema 与预期一致时,才调用 sitedata_favorites,参数严格限定为 {"action":"list","kind":"all"} 验证连接,不得改用任何写操作。
  9. 全程不得在对话、日志、命令回显或普通配置中暴露 access_token、refresh_token、authorization code、authorization URL、code_challenge、code_verifier、client_secret、Cookie 或 callback_uri。敏感输出只能静默处理,只汇报状态。
  10. 到达重启点后只汇报:Codex 运行环境与版本、修改的配置位置、一次 OAuth 是否成功、已明确需要重启当前会话。不要回显任何凭据。

Claude Code(CC)自动安装提示词

请直接在当前这台电脑完成 SiteData MCP OAuth 2.1 + PKCE 接入。我只会在浏览器确认授权;不要让我再粘贴命令、JSON、authorization code 或回调地址。

目标客户端:Claude Code 连接名称:"sitedata" MCP 地址:"https://mcp.sitedata.dev/mcp" OAuth scope:"mcp:invoke" 运行位置:本机 Agent

请连续执行到需要重启为止:

  1. 确认当前宿主是 Claude Code CLI 或 Claude Desktop 的 Code 页签。Claude Desktop 普通聊天窗口使用另一套连接器配置;如果当前不是 Claude Code,立即停止,不要写入错误产品。
  2. 判断 Claude Code 实际运行在 Windows 原生、Git Bash、WSL、macOS 还是 Linux。配置和 OAuth 必须在同一环境完成,禁止跨 Windows 用户目录和 WSL Home 写入。
  3. 定位当前宿主实际使用的 claude 可执行文件绝对路径并读取版本;后续命令始终使用该路径。
  4. 把连接名称、MCP 地址和 scope 作为纯数据处理。调用进程时使用参数数组,不拼接 shell 字符串;执行 shell 前关闭 xtrace。
  5. 检查 claude mcp --help、claude mcp add --help,再用 ["mcp","list"] 检查所有可见连接。仅当连接不存在且帮助确认参数可用时,使用 ["mcp","add","--transport","http","--scope","user","sitedata","https://mcp.sitedata.dev/mcp"] 添加。已有唯一同名连接且 URL 正确时保留;URL 不一致或同名来源不唯一时停止。不要虚构或写入固定 client_id、client_secret、认证请求头或 Token。
  6. 检查 claude mcp login --help 和连接状态。只有明确未认证或凭据失效且没有活动流程时才登录,本次最多一次。若当前版本真实提供 mcp login,则把 sitedata 作为独立参数,并仅在帮助明确支持时请求 mcp:invoke;否则使用 Claude Code 当前真实存在的 /mcp 认证入口,不得手工实现 DCR/PKCE。
  7. 让 Claude Code 打开本机默认浏览器并等待我登录 SiteData、选择账户及确认授权。由当前环境接收 loopback 回调;不要让我复制任何授权码、授权 URL 或回调地址。
  8. 授权成功后,只确认流程正常结束和配置已持久化;不要在旧会话重复探测、登录或调用工具。
  9. 提醒我重启当前 Claude Code 会话或客户端一次,然后停止。重启后列出工具;只有 schema 一致时,才调用 sitedata_favorites,参数严格限定为 {"action":"list","kind":"all"},不得执行写操作。
  10. 全程不得暴露 access_token、refresh_token、authorization code、authorization URL、code_challenge、code_verifier、client_secret、Cookie 或 callback_uri,只汇报状态。
  11. 到达重启点后只汇报:Claude Code 运行环境与版本、修改的配置位置、一次 OAuth 是否成功、已明确需要重启当前会话。

Cursor 自动安装提示词

请直接在当前 Windows 或 macOS 的 Cursor 桌面端完成 SiteData MCP 接入,并让 Cursor 根据 MCP/OAuth 元数据管理 OAuth 2.1 + PKCE。我只会在浏览器确认授权;不要手工配置 DCR、PKCE、client_id 或回调地址。

目标客户端:Cursor 桌面端 连接名称:"sitedata" MCP 地址:"https://mcp.sitedata.dev/mcp" OAuth scope:"mcp:invoke"

请按 Cursor 当前实际能力连续执行:

  1. 确认宿主确实是 Windows 或 macOS 的 Cursor 桌面端,并确认 Cursor、当前 Agent 和工作区处于同一可验证配置域。WSL、SSH、Dev Container、原生 Linux 和 Cloud Agents 不能证明本机桌面端已完成接入。
  2. 优先使用 Cursor 的 Customize → MCP 设置。只有 agent mcp --help 明确证明相关 CLI 和参数存在时才使用 CLI。检查所有来源中的 identifier、URL、启用状态和连接状态;同名候选不唯一时停止并请我选择作用域。如果 Agent 不能操作 Cursor UI,在需要 UI 时暂停,不得声称已操作。
  3. 只有目标不存在时,才把下面的 URL-only 配置合并到确认生效的 mcp.json。已有唯一同名条目时先确认 URL 逐字一致并保留未知字段;URL 不一致、含固定 auth/headers、来源为 team/marketplace 或字段含义不明时停止。不得跨系统、用户或环境写入,不覆盖其他服务器,不写固定认证参数:

{ "mcpServers": { "sitedata": { "url": "https://mcp.sitedata.dev/mcp" } } }

  1. 保存后确认 sitedata 已启用且生效来源正确。只有 CLI 帮助明确提供 enable 时才使用 CLI,否则在 Customize → MCP 中启用。
  2. 使用当前版本真实提供的登录入口。只有 agent mcp --help 明确提供 login 时才通过 CLI 登录,否则在 Customize → MCP 中登录。让 Cursor 从 MCP 受保护资源元数据发现授权服务器和 mcp:invoke scope,并通过动态客户端注册管理 OAuth。
  3. 已有有效连接直接复用;已有活动授权流程只等待当前流程。只有明确未认证且没有活动流程时才登录,本次最多一次。浏览器登录、账户选择、2FA/CAPTCHA 和最终授权由我完成。不得复制或回显授权 URL、code、callback、state、verifier 或 Token。
  4. 授权成功后刷新 MCP 列表;无法热加载时提示我保存工作,再由我重启 Cursor 或新建会话一次。不要杀进程或重复登录。
  5. 刷新或重启后确认 sitedata_rankings 和 sitedata_favorites 已加载。先核对 endpoint,再只允许调用 sitedata_favorites,参数严格限定为 {"action":"list","kind":"all"} 验证连接,不得使用写操作。工具或 schema 不一致时停止。
  6. 全程不得复制、回显或持久化 access_token、refresh_token、authorization code、authorization URL、request_id、code_challenge、code_verifier、client_secret、Cookie 或 callback_uri。
  7. 只有 identifier、source、URL、配置、启用状态、OAuth、工具可见性和只读收藏查询均已验证,才报告安装完成;否则准确说明阻塞步骤,不回显收藏内容或凭据。
手动安装
1. 在客户端中添加 SiteData MCP
Codex CLI
codex mcp add sitedata --url https://mcp.sitedata.dev/mcp

codex mcp login sitedata --scopes mcp:invoke codex mcp list

Codex 通常会自动打开浏览器开始登录;第二条命令也可用于之后重新登录。

ChatGPT 桌面端、Codex 桌面端或 IDE 扩展
  1. 打开 Settings → MCP servers。
  2. 选择 Add server。
  3. 类型选择 Streamable HTTP,名称填写 sitedata。
  4. URL 填写 https://mcp.sitedata.dev/mcp。
  5. 保存并按提示重启客户端或扩展。
  6. 选择 Authenticate 完成登录授权。

同一 Codex 宿主中的 ChatGPT 桌面端、Codex CLI 和 IDE 扩展会共享 MCP 配置。

Claude Code(CC)
claude mcp add --transport http --scope user sitedata https://mcp.sitedata.dev/mcp

然后在 Claude Code 中输入 /mcp,选择 sitedata 并完成登录授权。

Cursor

打开 Cursor Settings → Tools & MCP → New MCP Server,添加:

{

"mcpServers": { "sitedata": { "url": "https://mcp.sitedata.dev/mcp" } } }

保存配置,在 MCP 列表中启用 sitedata,然后按提示完成浏览器授权。

WorkBuddy

在 WorkBuddy 的 MCP 设置中添加名为 sitedata 的远程 Streamable HTTP 服务,URL 填写 https://mcp.sitedata.dev/mcp,保存后完成浏览器授权。

OpenCode

在 opencode.json 中添加:

{

"$schema": "https://opencode.ai/config.json", "mcp": { "sitedata": { "type": "remote", "url": "https://mcp.sitedata.dev/mcp", "enabled": true } } }

启动 OpenCode 后按提示完成授权;如果需要手动登录:

opencode mcp auth sitedata
其他 AI 客户端

添加远程 Streamable HTTP MCP 服务 https://mcp.sitedata.dev/mcp。客户端必须支持远程 MCP 的浏览器 OAuth 登录。

2. 登录并授权

添加 MCP 后,客户端会打开 SiteData 授权页面:

  1. 如果尚未登录,请先登录 SiteData 账户。
  2. 确认客户端名称、请求权限和返回地址。
  3. 点击 Authorize / 授权。
  4. 浏览器返回本机 localhost 或 127.0.0.1 回调页后,等待授权完成。
  5. 页面显示 Authentication complete. You may close this window. 后即可关闭。
  6. Codex 显示 Successfully logged in. 即表示连接成功。

授权绑定当前登录的 SiteData 账户。客户端不会获得你的 SiteData 密码或 API Key。

3. 发起第一次查询

直接用自然语言告诉 AI 需要查询什么,不必记住工具名称。例如:

通过 SiteData 查询本月新出现的网站流量增长榜
通过 SiteData 查询 2026-07 的 Domain Rating 增长榜
通过 SiteData 列出我收藏的域名
把 example.com 添加到我的网站收藏,并备注“竞品”

客户端会自动选择工具。首次调用或收藏写操作可能显示 Allow / Approve 确认。

工具

工具清单优先从 SiteData 平台的 /api/v1/mcp/catalog 动态加载;平台暂时不可用时使用本仓库内置清单。动态清单是实际参数的最终依据。

工具能力权限提示
sitedata_rankings查询流量增长、Domain Rating 增长和支付流量排行榜;支持当前/历史月份、新网站、支付网关及标签筛选只读;要求有效付费会员;返回完整结果,不分页
sitedata_favorites查询、新增、更新、删除网站/关键词收藏及收藏夹工具整体可写且可能删除数据;执行前检查 action
sitedata_rankings
  • 必填 rankingType:traffic_growth、domain_rating_growth 或 payment_traffic
  • period:current 或 archive
  • month:历史榜单月份,格式 YYYY-MM;period=archive 时必填
  • newSites:只返回新发现的网站
  • gateway:payment_traffic 使用的支付网关代码
  • locale:响应语言
  • tagType:category、use_case、site_type、business_model 或 affiliate_program
  • tagCode:标签代码,必须与 tagType 一起使用
sitedata_favorites
  • 必填 action:list、add、update、delete、create_folder、rename_folder 或 delete_folder
  • kind:all、website 或 keyword
  • id:收藏或收藏夹 ID
  • domain:网站收藏的域名
  • keyword:关键词收藏内容
  • remark:收藏备注
  • folderId:收藏夹 ID;更新收藏时传空字符串可移出收藏夹
  • name:新建或重命名收藏夹时的名称

add、update、delete、create_folder、rename_folder 和 delete_folder 会修改账户数据。执行前应明确并核对目标。

会员与访问权限

  • 账户需要有效的付费会员才能调用 sitedata_rankings。
  • 没有有效会员时,工具会返回会员要求以及 SiteData 订阅/升级页面。
  • 会员生效后可继续使用现有 MCP 授权,无需重新安装或登录。
  • 收藏管理只使用当前授权账户的数据。

管理或撤销授权

请在发起授权的客户端中管理连接。以 Codex CLI 为例:

codex mcp logout sitedata

codex mcp remove sitedata

第一条清除 OAuth 凭据;不再需要服务器时再执行第二条。其他客户端请在各自的 MCP 设置中退出登录、撤销认证或删除服务器。

常见问题

为什么授权后会跳到 localhost 或 127.0.0.1?

这是本地客户端接收授权结果的 loopback 回调地址,属于正常流程。页面提示认证完成后即可关闭。

为什么没有打开登录页面?

浏览器中已经登录 SiteData 时,可能直接进入授权确认页。如果客户端没有打开浏览器,请使用其登录入口。例如:

codex mcp login sitedata --scopes mcp:invoke
授权成功后为什么看不到工具?

重启客户端或重新打开会话,然后检查 MCP 连接。Codex CLI 可执行 codex mcp list。正常情况下会看到 sitedata_rankings 和 sitedata_favorites。

为什么排行榜查询提示需要会员?

排行榜只对有效付费会员开放。请确认授权账户,并为同一账户开通或升级会员。会员生效后无需重新授权。

为什么收藏操作要求确认?

sitedata_favorites 同时包含读取和写入操作,客户端可能把整个工具标记为可写或具有删除风险。只查看数据时请明确要求 action=list;写入前请核对操作和目标。

需要创建 SiteData API Key 吗?

不需要。MCP 使用浏览器 OAuth 登录授权,不会要求你把 API Key 粘贴到客户端。

PopNx에게 묻기