Ilostat Mcp Server

io.github.cyanheads由 GitHub 账号 cyanheads 发布v0.3.0更新于 Oct 29, 2026

Search ILOSTAT labour indicators, query and compare series, build country profiles, run SQL.

已验证Streamable HTTP可网页运行网页搜索与抓取数据与分析

概览

AI 生成的概览

提供 ILOSTAT 劳动力统计数据:搜索指标、查询与比较序列、生成国家概况,并对暂存结果运行只读 SQL。

可以做什么
  • 搜索与说明指标:用自然语言词条查找 ILOSTAT 数据集,查看定义、单位、分类代码与覆盖范围
  • 查询观测值:每次调用最多获取三个数据集的数据,可按地区、地区组、性别、分类、来源和时期筛选
  • 生成国家概况:为单个国家或汇总地区给出九项主要劳动力市场指标,报告值与模型估计值分列
  • 比较地区:在同一数据集的同一分组上对多个地区排名,可选共同时期或最新时期,并计算若干年变化
  • 解读代码:查询参考地区、地区组、数据库、主题、性别、分类体系、来源、状态标记与注释
  • 处理暂存数据框:查看大型结果的说明,并对其运行单条只读 SQL SELECT,可将结果另存
适用场景
适合需要依据 ILO 官方数据回答劳动力市场问题的场景,例如国家、地区或收入组的失业率、劳动参与率、非正规就业与贫困劳动者比例,并且需要区分报告值、模型估计值与预测值。
运行要求
可使用公开托管端点(Streamable HTTP),或在本地通过 npx、bunx 或 Docker 运行(需 Bun 1.4.0 以上或 Node.js v24 以上)。无需 API 密钥或账号,两个 ILO 接口均开放。所有环境变量均为可选,可调整传输方式、端口、认证模式、缓存与数据框设置。
安装前请注意
托管实例为共享服务:所有调用方共用同一请求限速器和一个数据框工作区,且该处不提供数据框列表,需使用精确名称。暂存数据框会保留查询结果直至 TTL 到期;ilostat_dataframe_drop 是唯一的删除类工具,默认关闭。数据须按 CC BY 4.0 署名 ILOSTAT,模型估计或预测值不应被当作报告值呈现。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Ilostat Mcp Server,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Web executable,通过 Streamable HTTP。 远程服务在工作区中配置后即可从网页运行时运行。

交给智能体安装

把这段提示词粘贴到 Claude Code、Codex、Cursor 等智能体,或 SourceWeft 对话中。智能体会读取该服务器的安装指南,先向你展示发布者、端点和登录方式,经你同意后再把它添加到你的客户端。密钥不会写进任何命令。

阅读 https://sourceweft.com/mcp/io.github.cyanheads%2Filostat-mcp-server/install.md,并按其中说明把这个 MCP 服务器接入我的客户端。修改任何配置之前,先告诉我它的发布者、端点和登录方式,等我确认。不要把 API 密钥写进命令或我会提交的文件;问我密钥应从哪里获取。

查看智能体所依据的安装指南

其他 MCP 客户端

把它添加到你客户端的 mcpServers 配置中。

{
  "mcpServers": {
    "ilostat": {
      "type": "http",
      "url": "https://ilostat.caseyjhand.com/mcp"
    }
  }
}

README

@cyanheads/ilostat-mcp-server

Search ILOSTAT labour indicators, query and compare series, build country profiles, run SQL via MCP. STDIO or Streamable HTTP.

9 Tools • 1 Skill

Public Hosted Server: https://ilostat.caseyjhand.com/mcp


Overview

Labour statistics from ILOSTAT, the International Labour Organization's database. Find an indicator, pull observations for countries, regions, and income groups, compare areas, and build a labour-market profile, with every value marked as reported, modelled, or projected. No API key required.

Tools

ToolDescription
ilostat_search_indicatorsSearch the indicator catalog by plain-language terms and filters; each hit lists a dataset ID per available frequency
ilostat_describe_indicatorExplain one dataset: definition, unit and multiplier, breakdown codes in use, covered areas, and how its values are classed
ilostat_query_indicatorFetch observations for up to 3 datasets per call, filtered by area or area group, sex, breakdown codes, source, and period
ilostat_get_country_profileHeadline labour-market figures for one area: latest reported value and latest ILO modelled estimate, side by side
ilostat_compare_geographiesRank areas on one slice of one dataset at a common or latest period, with optional change over N years
ilostat_list_referenceDecode ILOSTAT's code vocabulary: areas, area groups, databases, subjects, sexes, breakdowns, sources, status flags, notes
ilostat_dataframe_describeDescribe a staged df_<id> dataframe by name, or list them all (off under HTTP with auth none), with provenance, coverage, basis counts, and column schema
ilostat_dataframe_queryRun one read-only SQL SELECT over staged dataframes, optionally storing the result as a new one
ilostat_dataframe_dropDrop a staged dataframe before its TTL

ilostat_dataframe_drop is off unless ILOSTAT_DATAFRAME_DROP_ENABLED=true, and CANVAS_PROVIDER_TYPE=none turns off all three dataframe tools.

Skill

SkillDescription
ilostat-guideGates for answering labour-market questions with these tools: choosing reported or ILO modelled data, finding a population group as a breakdown code, one classification version per sum, rates that do not add, source changes and breaks in trends, and SQL over staged dataframes

Ships in skills/ for plugin installs, the npm package, the Docker image, and the .mcpb bundle, and is served over MCP as skill://ilostat-guide/SKILL.md.

Capability reference

ilostat_search_indicators tool

  • Plain-language query (every term must match a word or word prefix; a term no catalog word starts with matches by its stem, so informality finds informal and disabled finds disability; female, women, male, and men match every indicator broken down by sex, and the notice names the sex filter for ilostat_query_indicator; case, accents, and labour/labor folded) plus frequency, database, subject, breakdown, measure, and aggregates_only filters; omit query to browse by filters
  • Up to 50 hits per page (default 10; a larger limit is applied as 50, with a notice), continued with next_cursor; each hit is one indicator with a dataset_id per frequency, coverage years, n_ref_area, last_update, and has_aggregates, and facets count the whole match set
  • An unrecognized database, subject, breakdown, or measure code fails as unknown_filter_code

ilostat_describe_indicator tool

  • One dataset_id (UNE_DEAP_SEX_AGE_RT_A) or a bare indicator code, which describes every frequency; an unknown code returns found: false with guidance
  • Definition, unit and its multiplier, frequency variants, breakdowns (sex codes, plus classif1 / classif2 codes with totals marked is_total), default_slice, covered ref_areas, basis_rule, and the first 20 related_datasets with related_total
  • When the SDMX API can't answer, structure_status is unavailable and breakdowns, unit, and areas are absent rather than the call failing

ilostat_query_indicator tool

  • Up to 100 dataset_ids; the first 3 distinct datasets are queried and the rest come back as remaining_dataset_ids for another call. Filter by ref_areas (up to 300) and/or an area_group, sex, classif1, classif2, sources, and period: one exact time, a time_from / time_to year window, latest_only, or both
  • latest_only keeps each series' own latest period; a request whose full history is too large to read in one call falls back to the latest period per area and dataset, and applied_filters.latest_mode and the notice say so
  • source_selection is best by default, all, or secondary; rows carry source, obs_status, notes, and basis, decoded in legend, and applied_filters echoes every parameter sent
  • A result past the inline preview stages in full as a df_<id> dataframe; a request over ILOSTAT_MAX_ROWS fails as request_too_broad (unfiltered) or result_too_large (filtered)

ilostat_get_country_profile tool

  • One ref_area with annual data, an ISO3 country (KEN) or an X-coded aggregate (X01 World, regions, income groups), and sex (SEX_T by default, SEX_M, or SEX_F)
  • Nine headline indicators (labour force participation, employment-to-population ratio, unemployment, youth unemployment, youth NEET, informal employment, employment, labour income share, working poverty), each with its latest reported value for that slice and, separately, its latest non-projected modelled estimate
  • A missing reported value stays missing and is listed in reported_missing; aggregates carry modelled values only

ilostat_compare_geographies tool

  • One dataset_id and one slice (sex, classif1, classif2, defaulting to the dataset's totals); areas from ref_areas (up to 300), an area_group, or both, and at least one is required
  • period puts every area at one period; without it, each area gets its latest value within lookback_years (default 10), projections excluded unless include_projections; change_years (1–30) adds each value's change over that span
  • A change carries the earlier value's source, basis, status, and notes, with source_changed, basis_changed, and break_in_series flags; the notice counts the changes that are not like-for-like
  • Rows carry rank, value, period, basis, and source; areas without a value land in missing with a reason, and comparability reports mixed_periods, basis_counts, and distinct_sources

ilostat_list_reference tool

  • topic: ref_areas, area_groups, databases, subjects, sexes, classifications, classification_types, sources, obs_status, notes, or frequencies
  • A text filter or up to 100 exact codes (misses in not_found; exact area_groups lookups list member countries); ref_area narrows sources, and classification_type narrows classifications
  • Up to 500 entries per page (default 50; a larger limit is applied as 500, with a notice), continued with next_cursor

ilostat_dataframe_describe tool

  • Pass one df_XXXXX_XXXXX, or omit name to list every staged dataframe, newest first (listing is off under HTTP with auth none; use the exact name)
  • Each entry carries the producing source_tool and its query_params, datasets, coverage, basis_counts, attribution, created_at / expires_at, row_count, and the column_schema to write SQL against
  • Each dataset keeps its full unit beside unit: unit_measure, unit_type, unit_type_label, unit_multiplier, and unit_multiplier_label; values are never rescaled

ilostat_dataframe_query tool

  • One DuckDB SELECT (joins, aggregates, window functions, CTEs) over df_<id> tables, up to 20,000 characters; writes, DDL, multi-statement SQL, file references and file-reading functions, engine-setting reads, and system catalogs are rejected
  • row_limit caps the rows materialized (default 1,000; capped at 10,000 per call, with row_count_capped flagging a hit) and preview the rows returned inline, which also stop at ILOSTAT_PREVIEW_CHARS; applied_limits echoes the values applied, and BIGINT values arrive as strings
  • register_as stores the full result as a new dataframe with a fresh TTL; a result over 1,000,000 rows fails as register_as_too_large, and evicted names any older dataframes dropped to make room

ilostat_dataframe_drop tool

  • Drops one staged dataframe by name before its TTL; idempotent, with dropped: false when nothing matched
  • Listed only when ILOSTAT_DATAFRAME_DROP_ENABLED=true and dataframes are on; it is the only destructive tool

Features

Built on @cyanheads/mcp-ts-core: stdio and Streamable HTTP transports, pluggable auth (none / jwt / oauth), swappable storage (in-memory, filesystem, Supabase, Cloudflare KV/R2/D1), structured logging with optional OpenTelemetry tracing.

ILOSTAT-specific:

  • Two keyless ILO APIs: the ILOSTAT data API serves the catalog, the code dictionaries, and observations; the ILO SDMX API serves each dataset's breakdown codes, default slice, and unit
  • The catalog and code dictionaries are held in memory and rechecked every ILOSTAT_CATALOG_REFRESH_HOURS; every code a tool takes is validated against them before a request goes upstream
  • A request pacer per upstream host; a 429 or challenge page reaches the caller as a retryable upstream_busy carrying retryAfter. Data responses of up to 5,000 rows are cached for ILOSTAT_CACHE_TTL_SECONDS
  • Dataframes on by default: a query or comparison larger than ILOSTAT_PREVIEW_CHARS stages in full as a DuckDB df_<id> table that lives for ILOSTAT_DATASET_TTL_SECONDS, up to 1,000,000 rows in 100 dataframes per tenant (older ones are evicted and named in evicted). With CANVAS_PROVIDER_TYPE=none, or in the .mcpb bundle (no DuckDB binding), results stop at the inline preview and say so
  • ILOSTAT data and metadata are published under the ILO Open Access policy as CC BY 4.0; every data response carries an attribution to keep with the numbers

Agent-friendly output:

  • Basis on every value: each row is reported, modelled_estimate, or projection, and results carry basis_counts. The country profile returns reported and modelled values in separate fields and never fills one from the other
  • Provenance and decoding: rows keep source, obs_status, and note codes with a legend that decodes them, and query and comparison responses echo applied_filters, defaults included
  • Misses as data: an unknown dataset returns found: false with guidance, and compared areas without a value land in missing with a typed reason
  • Typed errors: failures carry a reason (unknown_code, request_too_broad, upstream_busy, …) and a recovery hint

Getting started

Public Hosted Instance

A public instance is available at https://ilostat.caseyjhand.com/mcp — no installation required. Point any MCP client at it via Streamable HTTP:

json
{  "mcpServers": {    "ilostat-mcp-server": {      "type": "streamable-http",      "url": "https://ilostat.caseyjhand.com/mcp"    }  }}

Every caller of the hosted instance shares one request pacer per ILO API and one dataframe workspace, so ilostat_dataframe_describe takes a table's exact name there; listing is off.

Self-Hosted / Local

Add the following to your MCP client configuration file.

json
{  "mcpServers": {    "ilostat-mcp-server": {      "type": "stdio",      "command": "bunx",      "args": ["@cyanheads/ilostat-mcp-server@latest"],      "env": {        "MCP_TRANSPORT_TYPE": "stdio",        "MCP_LOG_LEVEL": "info"      }    }  }}

Or with npx (no Bun required):

json
{  "mcpServers": {    "ilostat-mcp-server": {      "type": "stdio",      "command": "npx",      "args": ["-y", "@cyanheads/ilostat-mcp-server@latest"],      "env": {        "MCP_TRANSPORT_TYPE": "stdio",        "MCP_LOG_LEVEL": "info"      }    }  }}

Or with Docker:

json
{  "mcpServers": {    "ilostat-mcp-server": {      "type": "stdio",      "command": "docker",      "args": ["run", "-i", "--rm", "-e", "MCP_TRANSPORT_TYPE=stdio", "ghcr.io/cyanheads/ilostat-mcp-server:latest"]    }  }}

For Streamable HTTP, set the transport and start the server:

sh
MCP_TRANSPORT_TYPE=http MCP_HTTP_PORT=3010 bun run start:http# Server listens at http://localhost:3010/mcp

Prerequisites

  • Bun v1.4.0 or higher (or Node.js v24+).
  • No API key or account: both ILO APIs are open.

Installation

  1. Clone the repository:
sh
git clone https://github.com/cyanheads/ilostat-mcp-server.git
  1. Navigate into the directory:
sh
cd ilostat-mcp-server
  1. Install dependencies:
sh
bun install
  1. Configure environment:
sh
cp .env.example .env# every variable is optional; see Configuration below

Configuration

VariableDescriptionDefault
ILOSTAT_CATALOG_REFRESH_HOURSHours between catalog refresh checks (1–168).6
ILOSTAT_MAX_ROWSCeiling on the rows one query may return or stage (1,000–1,000,000).500000
ILOSTAT_PREVIEW_CHARSInline preview budget in serialized characters (at least 1,000); larger results stage as a dataframe.40000
ILOSTAT_CACHE_TTL_SECONDSSeconds an upstream data response of up to 5,000 rows stays cached; 0 disables the cache.900
ILOSTAT_DATASET_TTL_SECONDSPer-table TTL for staged dataframes, in seconds (at least 60).86400
ILOSTAT_DATAFRAME_DROP_ENABLEDSet true to expose ilostat_dataframe_drop.false
CANVAS_PROVIDER_TYPEDataCanvas engine for staged dataframes: duckdb, or none to turn dataframes and the three dataframe tools off.duckdb
MCP_TRANSPORT_TYPETransport: stdio or http.stdio
MCP_HTTP_PORTHTTP server port.3010
MCP_SESSION_MODEHTTP session mode: stateless, stateful, or auto.stateless
MCP_AUTH_MODEAuthentication: none, jwt, or oauth.none
MCP_LOG_LEVELLog level (debug, info, warning, error, etc.).info
LOGS_DIRDirectory for log files (Node.js only).<app-root>/logs
STORAGE_PROVIDER_TYPEStorage backend: in-memory, filesystem, supabase, cloudflare-kv/r2/d1.in-memory
OTEL_ENABLEDEnable OpenTelemetry.false

See .env.example for the full list of optional overrides.

Running the server

Local development

  • Build and run the production version:

    sh
    # One-time buildbun run rebuild
    # Run the built serverbun run start:http# orbun run start:stdio
  • Run checks and tests:

    sh
    bun run devcheck  # Lints, formats, type-checks, and morebun run test      # Runs the test suite

Project structure

DirectoryPurpose
src/index.tscreateApp() entry point. Turns dataframes on by default, registers the tools, starts the catalog load.
src/configServer-specific environment variable parsing and validation with Zod.
src/mcp-server/toolsTool definitions (*.tool.ts) and the input and rendering helpers they share. Nine tools.
src/services/rplumber, src/services/sdmxClients for the ILOSTAT data API and the ILO SDMX API, on the paced, retried HTTP layer in src/services/upstream.
src/services/catalogIn-memory catalog snapshot, indicator search, reference listings, paging.
src/services/structurePer-indicator SDMX structure and unit, cached.
src/services/observationsRequest validation, size preflight, row decoding, comparisons, response cache.
src/services/profileHeadline country profile.
src/services/basisRules classing each value as reported, modelled estimate, or projection.
src/services/canvas-bridgeDataCanvas adapter: df_<id> staging, provenance, SQL, drop.
skills/ilostat-guide/Published agent skill, served over MCP as skill://ilostat-guide/SKILL.md.
tests/Vitest suite mirroring src/, with recorded upstream fixtures.

Development guide

See CLAUDE.md for development guidelines and architectural rules. The short version:

  • Handlers throw, framework catches — no try/catch in tool logic
  • Use ctx.log for logging, ctx.state for storage
  • Register new tools in buildToolDefinitions() in src/mcp-server/tools/definitions/index.ts
  • Wrap external API calls: validate raw → normalize to domain type → return output schema; never fabricate missing fields

Contributing

Issues are welcome. Run checks and tests before submitting:

sh
bun run devcheckbun run test

License

This project is licensed under the Apache 2.0 License. See the LICENSE file for details. The ILOSTAT data the tools return belongs to the International Labour Organization and is published under CC BY 4.0; cite ILOSTAT and the dataset ID.

来源:README.md,提交 8ea58ed

工具

8

ilostat_search_indicators

Search ILOSTAT indicators

Search ILOSTAT's catalog of labour-statistics indicators by plain-language terms and filters. Each hit is one indicator with its datasets — one per available frequency (annual, quarterly, monthly) — plus breakdowns, coverage years, number of reference areas, source database, and last update; pass a dataset ID to ilostat_describe_indicator for its units and breakdown codes, then to ilostat_query_indicator or ilostat_compare_geographies for values. Every search term must match a word or word prefix in the indicator's label, subject, database, breakdown names, code, or definition; a term that matches no word or word prefix anywhere in the catalog matches the words sharing its stem instead (informality finds informal, unionization finds union, disabled finds disability), and the notice names it. female, women, male, and men (or their plurals) also match every indicator broken down by sex, and the notice names the sex filter that selects those values in ilostat_query_indicator. British and American spellings (labour/labor) match alike. The measure filter lists every indicator of one measured quantity, as ilostat_describe_indicator's related indicators count them. Facet counts reflect all applied filters.

输入参数limitquerycursormeasuresubjectdatabasebreakdownfrequencyaggregates_only

ilostat_describe_indicator

Describe an ILOSTAT dataset

Explain one ILOSTAT dataset before comparing numbers: its definition, unit and multiplier, frequency variants and coverage, the sex and breakdown codes in use across its frequencies (the total code of each breakdown marked), the reference areas it covers, whether it carries World/regional/income-group aggregates, and how its observations are classed as reported, modelled, or projected. Accepts a dataset ID (UNE_DEAP_SEX_AGE_RT_A) or a bare indicator code (UNE_DEAP_SEX_AGE_RT), which describes every frequency. An unknown code returns found: false with guidance.

输入参数dataset_id必填

ilostat_query_indicator

Query ILOSTAT observations

Fetch observations for up to 3 ILOSTAT datasets per call, filtered by reference area or area group, sex, breakdown codes (classif1, classif2), source, and period; datasets past the first 3 come back as remaining_dataset_ids for another call. Rows keep their source, observation status, decoded notes, and a basis — reported, modelled_estimate, or projection — and the response echoes every filter applied, including the best-source default. Codes are checked against ILOSTAT's dictionaries before the request is sent: ilostat_list_reference lists valid codes and ilostat_describe_indicator lists the codes a dataset actually uses. A result larger than the inline preview is staged in full as a df_<id> dataframe for SQL through ilostat_dataframe_describe and ilostat_dataframe_query when this deployment enables dataframes. A request with no filters at all is refused when the dataset exceeds the row ceiling, and a filtered request that still exceeds it is refused with guidance to narrow it.

输入参数sextimesourcestime_toclassif1classif2ref_areastime_fromarea_groupdataset_ids必填latest_onlysource_selection

ilostat_get_country_profile

Get an ILOSTAT labour-market profile

Build a headline labour-market profile for one reference area: labour force participation, employment-to-population ratio, unemployment and youth unemployment rates, youth NEET rate, informal employment rate, employment level, labour income share, and working poverty rate. Each indicator shows its latest reported value (from a national or institutional source, with its source and notes) and, separately, its latest ILO modelled estimate that is not a projection, each with its dataset, period, and status — a missing reported value stays missing and is never filled from the model. Accepts a country (ISO3, e.g. KEN) or an X-coded aggregate (X01 World, regions, income groups), for which only modelled values exist.

输入参数sexref_area必填

ilostat_compare_geographies

Compare areas on an ILOSTAT dataset

Compare reference areas on one ILOSTAT dataset and one slice — a sex code plus breakdown codes, defaulting to the dataset's totals — giving each area's value at a common period or at its latest non-projected period, optional change over N years, and a rank, with each value's period, source, status, and basis (reported, modelled_estimate, or projection). A change carries the earlier value's source, basis, status, and notes, and flags whether the source or basis differs or the series breaks between the two values. Areas without a value are listed separately with the reason, and the response flags mixed periods and mixed bases rather than hiding them. Select areas by code list, by group (X01 for every country, an ILO region or subregion, or a World Bank income group), or both; X-coded aggregates require a dataset with aggregates.

输入参数sexsortperiodclassif1classif2ref_areasarea_groupdataset_id必填change_yearslookback_yearsinclude_projections

ilostat_list_reference

List ILOSTAT reference codes

Decode ILOSTAT's code vocabulary: reference areas (ISO3 countries and X-coded aggregates, with World Bank income group and ILO region), the groups that area_group accepts (X01 for every country, ILO regions and subregions, World Bank income groups; exact-code lookups list their member countries), databases, subjects, sex codes, breakdown codes for classif1/classif2 with their classification types, per-country data sources, observation status flags, note codes, and frequencies. Filter by text or look up exact codes; long topics page with a cursor. These are ILOSTAT-wide vocabularies; ilostat_describe_indicator lists the sex and breakdown codes one dataset actually uses.

输入参数codeslimittopic必填cursorfilterref_areaclassification_type

ilostat_dataframe_query

Query staged ILOSTAT dataframes

Run a single-statement SELECT against the df_<id> dataframes staged by ilostat_query_indicator and ilostat_compare_geographies or stored by an earlier register_as. Inspect a dataframe with ilostat_dataframe_describe first; its column schema is what the SQL has to match. Read-only: writes, DDL, DROP, COPY, PRAGMA, ATTACH, file references, file-reading table functions, and functions that read engine settings or name a table from a string are rejected, and system catalogs (information_schema, pg_catalog, sqlite_master, duckdb_*) are denied. Breakdown versions overlap (AGE_YTHADULT_*, AGE_AGGREGATE_*, AGE_10YRBANDS_*, AGE_5YRBANDS_*; ECO_SECTOR_*, ECO_AGGREGATE_*, ECO_ISIC4_*, ECO_ISIC3_*), so filter to one version before summing. Optional register_as stores the result as a new dataframe with a fresh TTL.

输入参数sql必填previewrow_limitregister_as

ilostat_dataframe_describe

Describe staged ILOSTAT dataframes

Describe the df_<id> dataframes staged by ilostat_query_indicator and ilostat_compare_geographies or stored by ilostat_dataframe_query register_as: the tool and parameters that produced each, the datasets it holds (label, last update, and the unit with its measure, type, and multiplier — values stay in the published scale the multiplier names), coverage, basis counts, attribution, creation and expiry times, row count, and column schema. Pass name for one dataframe. Without it, every staged dataframe is listed, except on a deployment whose callers share one canvas, where listing is off and only the exact name works. Read the schema here before writing SQL for ilostat_dataframe_query.

输入参数name

版本历史

4
  1. v0.3.0最新Oct 29, 2026
  2. v0.2.0Oct 15, 2026
  3. v0.1.2Oct 4, 2026
  4. v0.1.1Sep 27, 2026

评分

已满足适用检查项的 100%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通必需25 分
  • 已声明认证方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分