Gridar

app.gridar由 gridar.app 發布官方發布者v0.7.0更新於 Nov 2, 2026

SEO toolkit for Quebec sites: audits, Google.ca rankings, keywords, AI-search visibility.

已驗證Streamable HTTP可網頁執行網頁搜尋與抓取資料與分析商業與電商

概覽

AI 產生的概覽

Gridar 以 69 個工具把針對魁北克網站的 SEO 工具組開放給助理,可做網站稽核、Google 排名追蹤、關鍵字研究與內容管理。

可以做什麼
  • 讀取帳戶與網站設定,列出或取得文章與到達頁
  • 產生、建立、修改與刪除文章和到達頁,包含執行自動營運
  • 稽核內容:SEO 分數、可讀性、抄襲、hreflang、關鍵字互相競食、內部連結、AI 回答就緒度
  • 檢查網站健康:綜合 SEO 分數、可渲染性、頁面速度、失效連結、內容衰退
  • 追蹤關鍵字,研究 SERP、相關問題、搜尋意圖、競爭對手與反向連結機會
  • 讀取 Search Console 資料、檢查收錄狀況、提交網站地圖與 IndexNow,並輸出成效報告
適用情境
適合使用付費 Gridar 方案的代理商或網站擁有者,讓助理在對話中完成 SEO 稽核、關鍵字與競品調查,並為魁北克網站起草或發布法文內容。
執行需求
遠端 Streamable HTTP 端點,使用 OAuth 2.1(PKCE)登入,或使用 Gridar 帳戶 API 金鑰頁產生的 Bearer 權杖。需要 Pro 或 Agency 方案的 Gridar 帳戶;Trial 與 Solo 方案每次呼叫都會回傳 HTTP 403。npm 套件版本較舊、工具較少。
安裝前請注意
權杖可對帳戶下所有網站使用全部工具,包含刪除,且沒有唯讀權杖,請及時撤銷不用的權杖。部分工具會直接發布內容、刪除文章或記憶、開啟公開成效頁。三個產生工具會消耗每月文章配額或一次額度。呼叫按小時限流,資料會傳送給 Gridar 及 Serper、Originality.ai、PageSpeed Insights 等第三方。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Gridar,將其新增到工作區。
  2. 連接 所需的 憑證。它們會被私密儲存,絕不會在公開頁面上展示。
  3. 為需要使用其工具的對話啟用該服務。

Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。

交給代理程式安裝

把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。

閱讀 https://sourceweft.com/mcp/app.gridar%2Fgridar/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。

檢視代理程式所依據的安裝指南

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。 客戶端會在首次連接時完成 OAuth 登入。

{
  "mcpServers": {
    "gridar": {
      "type": "http",
      "url": "https://mcp.gridar.app/mcp"
    }
  }
}

README

@gridar/mcp-server

Model Context Protocol server for Gridar.

The server exposes the Gridar REST API (https://api.gridar.app/api/v1) as 69 gridar_* tools. An MCP client can read and change the sites, articles, landings, tracked keywords, autopilot, site memory and Search Console data of the Gridar account behind the token, and run SEO checks on them.

Versions

DistributionVersionTools
Hosted server https://mcp.gridar.app/mcp0.7.069
This source (mcp-server/)0.7.069
npm package @gridar/mcp-server0.4.243

Checked on 2026-10-21 with npm view @gridar/mcp-server version and the hosted server card. The npm package lags behind: use the hosted server.

Requirements

  • A Gridar account on the Pro or Agency plan.
  • The OAuth login succeeds on every plan, but on Trial and Solo every tool call answers HTTP 403: "Accès API réservé aux plans Pro et Agence".

Install: hosted server (recommended)

ItemValue
URLhttps://mcp.gridar.app/mcp
TransportStreamable HTTP
AuthenticationOAuth 2.1 with PKCE, or Authorization: Bearer btb_xxx
Official MCP registryapp.gridar/gridar
Public server card (no token)https://mcp.gridar.app/.well-known/mcp/server-card.json: name, version, tool list
Healthhttps://mcp.gridar.app/health

Nothing to install on your machine.

What the OAuth login does

  1. You add https://mcp.gridar.app/mcp to your client.
  2. Without a token, the server answers 401 with a WWW-Authenticate header that points to /.well-known/oauth-protected-resource. The client discovers the OAuth endpoints from there.
  3. The client opens the Gridar login page. Sign in if needed, then click Autoriser.
  4. Gridar creates an API token named after the client (for example MCP - Claude Code) and hands it to the client.
  5. The token shows up at https://www.gridar.app/account/api-keys. Revoke it there to cut access.

Claude (claude.ai and Claude Desktop)

On claude.ai: Settings > Connectors, add a custom connector with the URL https://mcp.gridar.app/mcp. Claude opens the Gridar login page; authorize and the connector is live.

Claude Desktop through its config file uses the mcp-remote bridge:

json
{  "mcpServers": {    "gridar": {      "command": "npx",      "args": ["-y", "mcp-remote", "https://mcp.gridar.app/mcp"]    }  }}

The file lives at ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows). Restart Claude Desktop afterwards.

ChatGPT

  1. Open Settings > Connectors, or turn on Developer Mode for custom connectors.
  2. Add a connector by URL: https://mcp.gridar.app/mcp.
  3. ChatGPT opens the Gridar login page. Authorize.

OpenAI restricts custom connectors by account type. The Gridar page lists ChatGPT Pro, Team, Enterprise, or Developer Mode; check OpenAI's current rules.

Claude Code

bash
claude mcp add --transport http gridar https://mcp.gridar.app/mcp

OAuth starts on the first call. For a session without a browser, pass a token in a header:

bash
claude mcp add --transport http gridar https://mcp.gridar.app/mcp \  --header "Authorization: Bearer btb_xxx"

Cursor

Settings > MCP > Add server, server of type URL: https://mcp.gridar.app/mcp.

Codex CLI, SDKs and other clients

Any MCP client that speaks Streamable HTTP connects to https://mcp.gridar.app/mcp and finds the OAuth flow on its own (see step 2 above). A headless agent sends Authorization: Bearer btb_xxx with a token created at https://www.gridar.app/account/api-keys.

Install: local stdio via npm

The npm package is behind. @gridar/mcp-server on npm is 0.4.2 with 43 tools. The hosted server and this source are 0.7.0 with 69 tools. The tool list in this README matches 0.7.0.

The 26 tools missing from npm 0.4.2: gridar_action_strategic_opportunity, gridar_ai_overview_readiness, gridar_ai_visibility_summary, gridar_approve_strategy, gridar_build_cluster, gridar_check_renderability, gridar_classify_intent, gridar_cluster_map, gridar_create_landing, gridar_export_page_prompt, gridar_generate_landing, gridar_generate_sister_article, gridar_index_coverage, gridar_indexnow_setup, gridar_indexnow_submit, gridar_link_opportunities, gridar_link_pages, gridar_list_strategic_opportunities, gridar_mark_page_built, gridar_propose_keyword_strategy, gridar_pull_build_queue, gridar_refresh_strategic_opportunities, gridar_run_ai_visibility, gridar_serp_analyze, gridar_site_seo_score, gridar_submit_sitemap.

The package installs the gridar-mcp binary and reads its token from BLOG_DASHBOARD_TOKEN.

Claude Desktop:

json
{  "mcpServers": {    "gridar": {      "command": "npx",      "args": ["-y", "@gridar/mcp-server"],      "env": {        "BLOG_DASHBOARD_TOKEN": "btb_xxx"      }    }  }}

Claude Code:

bash
claude mcp add gridar \  --env BLOG_DASHBOARD_TOKEN=btb_xxx \  -- npx -y @gridar/mcp-server

Any other client: spawn the process over stdio with the token in its environment.

bash
BLOG_DASHBOARD_TOKEN=btb_xxx npx -y @gridar/mcp-server

To get all 69 tools locally, build this source instead (see Development).

Environment variables

Names only. Never commit a real token.

Stdio (local)

VariableRequiredDefaultRole
BLOG_DASHBOARD_TOKENyesnoneGridar API token (btb_xxx) sent as Authorization: Bearer
BLOG_DASHBOARD_API_BASEnohttps://api.gridar.app/api/v1Gridar API base URL

Self-hosted HTTP (node dist/http.js)

VariableDefaultRole
PORT8080Listening port
BLOG_DASHBOARD_API_BASEhttps://api.gridar.app/api/v1Gridar API the server forwards calls to
MCP_PUBLIC_BASEhttp://localhost:<PORT>Public URL of this server, used in the OAuth metadata and redirects
GRIDAR_BASEhttps://gridar.appGridar app that hosts the OAuth login page (/oauth/mcp-authorize)
MCP_REQUIRE_AUTHonSet to false to skip the Bearer check (development only)
MCP_ALLOWED_ORIGINS*Comma-separated list of allowed CORS origins
OAUTH_CLIENT_IDbuilt-in valueClient id returned by dynamic client registration
OAUTH_CLIENT_SECRETbuilt-in valueClient secret returned by dynamic client registration

In HTTP mode the token comes from each request's Authorization header and is scoped to that request with AsyncLocalStorage. BLOG_DASHBOARD_TOKEN stays a fallback: do not set it on a shared server with MCP_REQUIRE_AUTH=false, or every caller acts as that account.

HTTP endpoints:

Method and pathRole
POST /mcpMCP Streamable HTTP: initialize and tool calls
GET /mcpSSE notification stream for an open session
DELETE /mcpCloses a session
GET /health{status, name, version, transport, oauth}
GET /.well-known/mcp/server-card.jsonPublic card: server info and tool list, no token needed
GET /.well-known/oauth-protected-resourceOAuth protected resource metadata (RFC 9728)
GET /.well-known/oauth-authorization-serverOAuth server metadata (RFC 8414)
POST /registerDynamic client registration (RFC 7591)
GET /authorize, GET /callback, POST /tokenOAuth authorization code flow with PKCE (S256 or plain)

Plans and limits

PlanAPI and MCP accessRequests per hourAI articles per month
Trialno (403)01
Solono (403)08
Proyes3060
Agencyyes200200

Sources: PLAN_API_LIMITS in backend/sites_mgmt/api_v1.py, Subscription.get_limits() in backend/sites_mgmt/models.py.

  • Each tool call sends one request to the Gridar API and counts against the hourly limit. Past the limit the API answers 429.
  • Three tools debit the monthly article quota, or one credit once the quota is used up: gridar_generate_article, gridar_generate_sister_article, gridar_generate_landing.
  • An API error comes back as a tool error: Gridar API error (HTTP <status>): <message>, followed by the JSON body.

Tools (69)

The Effect column flags what a call changes:

  • destructive: deletes or disables something; the client should confirm first.
  • publishes: puts content live or makes a page public.
  • quota: debits one article from the monthly quota, or one credit.
  • writes: changes data in Gridar without putting anything live.
  • none: read only.

Account and sites

ToolWhat it doesEffect
gridar_get_meYour plan, hourly API limit, monthly article quota and usagenone
gridar_list_sitesYour sites: id, domain, hosting mode, default languagenone
gridar_get_siteFull config of one site: integrations, default language, knowledge base, competitors, GSC connection, autopilot, author E-E-A-T fieldsnone
gridar_update_siteChanges editable site fields: name, description, knowledge base, competitors, default language, author bio and credentials, public blog domainwrites

Articles

ToolWhat it doesEffect
gridar_list_articlesArticles of a site, filtered by status, language and count (default 25, max 100)none
gridar_get_articleFull content (HTML and metadata) of one article, by site_id and slugnone
gridar_generate_articleGenerates an SEO article from a topic or a title. Saved as draft on hosted sites, published live on WordPress, Shopify and Webflowquota, publishes on CMS sites
gridar_generate_sister_articleTranslates and adapts an article into another language in the same translation group, so hreflang links up. Created as draft. Hosted sites onlyquota
gridar_create_articleCreates a hand-written article on a hosted site. No AI, no quotawrites; publishes with status: published
gridar_update_articleChanges title, content, excerpt, status, cover image or author of an article, on every site mode (hosted, external, WordPress, Shopify, Webflow)writes; publishes with status: published
gridar_delete_articleDeletes an article permanently, on every site mode. WordPress, Shopify and Webflow deletes skip the trashdestructive

Audit and content

ToolWhat it doesEffect
gridar_audit_articleAudits raw content: 0 to 100 score and fixes on length, keyword density, headings, links, metanone
gridar_get_briefContent brief for a keyword: search intent, outline, entities, FAQ candidates, E-E-A-T signalsnone
gridar_bulk_auditAudits every published article of a site in parallel (Gemini): aggregated scores and top issuesnone
gridar_check_readabilityReadability scores of a text (Flesch-Kincaid, ARI)none
gridar_check_plagiarismAI-content and plagiarism check of a text through Originality.ainone
gridar_check_hreflangChecks translation group consistency of a site's published articles. site_id requirednone
gridar_detect_cannibalizationPairs of articles that target the same intent or keywords, across languages and statusesnone
gridar_suggest_internal_linksInternal links to insert in the content you pass, picked from the site's published articlesnone
gridar_ai_overview_readiness0 to 100 score of how ready an article is for AI answers, from 5 weighted checks (FAQ, H2/H3 structure, E-E-A-T, concrete data, extractable paragraphs), with suggestionsnone

Site health

ToolWhat it doesEffect
gridar_site_seo_scoreComposite 0 to 100 site score from 9 weighted checks (indexability, author bio, business model, GSC, approved pillar and spokes cluster, hreflang, Core Web Vitals, FAQ schema, transactional intents stuck on blog posts), with action_itemsnone
gridar_check_renderabilityFetches a URL and says whether the HTML is server-rendered or a JavaScript shell Googlebot must render (100 visible words or fewer flags a suspect SPA)none
gridar_page_speedPageSpeed Insights on a URL, mobile or desktop: Core Web Vitals and suggestionsnone
gridar_find_broken_linksOutgoing links in the site's articles that answer 4xx, 5xx or time outnone
gridar_get_content_decayArticles whose GSC impressions or clicks dropped over N days (7 to 90, default 30), with a refresh, expand or redirect suggestionnone

Keywords, SERP and competitors

ToolWhat it doesEffect
gridar_list_keywordsTracked keywords and their latest recorded positionnone
gridar_track_keywordAdds a keyword to track, or reactivates a removed one. A daily cron records its positionwrites
gridar_untrack_keywordStops tracking a keyword (soft delete). Position history is kept; gridar_track_keyword brings it backwrites
gridar_snapshot_keywordsRecords the position of every tracked keyword of a site nowwrites
gridar_suggest_keywordsKeywords to track, suggested by Claude from the site memory and homepagenone
gridar_keyword_researchExpands a seed keyword into related queries (Serper related searches and People Also Ask, Gemini variants), grouped into families, with the status of each provider. No volume, no difficultynone
gridar_people_also_askGoogle "People also ask" questions for a keywordnone
gridar_classify_intentSearch intent of a keyword (transactional, commercial, informational, navigational, local) and a confidence scorenone
gridar_analyze_competitorsGoogle top 10 for a keyword: average word count, common headings, entity coverage, gapsnone
gridar_serp_analyzePer-URL metrics of the top 10 (word count, H1/H2/H3, FAQ, video) and averages, to size a competing articlenone
gridar_suggest_competitorsLikely SEO competitors, from the homepage and tracked keywordsnone
gridar_link_opportunitiesCandidate sites for backlink outreach on a keyword: domain, URL, title, snippet, source querynone

Strategy, landings and clusters

ToolWhat it doesEffect
gridar_propose_keyword_strategyProposes a structure for a keyword: single landing, pillar and cluster, comparison table, local landing or blog post. Re-running refreshes a draft, never an approved strategywrites
gridar_approve_strategyApproves a strategy: landings are AI-generated as drafts, articles wait for gridar_generate_articlewrites
gridar_create_landingCreates a hand-written structured landing (hero, value props, social proof, FAQ, bottom CTA). No AI, no quota. Hosted sites onlywrites; publishes with status: published
gridar_generate_landingAI-generates a full landing from a keyword, saved as draft on the hosted sitequota
gridar_link_pagesAdds a contextual link from one page to another on the same site: converts the anchor text in place, or appends a "Voir aussi" linewrites (edits the source page)
gridar_cluster_mapTopic clusters of the site: pillar, spokes, covered pages, missing pages. No LLM callnone
gridar_build_clusterBuild prompts for a pillar and its spokes, internal links included. Adds missing keywords to tracking. No LLM call, no quota: the agent writes the copywrites

Strategic opportunities

ToolWhat it doesEffect
gridar_refresh_strategic_opportunitiesRuns the opportunity engine on tracked keywords with transactional, commercial or local intent that have no landing yet. One Claude call per keyword, max_keywords default 8, cap 20writes
gridar_list_strategic_opportunitiesCached opportunities: page type, title, URL path, hook, capture mechanism, conversion path, angle, priority, traffic estimate (see Known limits)none
gridar_action_strategic_opportunityapprove generates the landing as draft and marks the opportunity done; dismiss hides it; restore brings it backwrites
gridar_export_page_promptReady-to-paste prompt for your own AI tool (ChatGPT, Lovable, v0, Bolt...): landing_id to integrate an existing landing verbatim, opportunity_id to write a page from the brief. Templating only, no quotanone

Delivery through an agent

For a custom-built site Gridar cannot publish to. Set the site's delivery mode to agent in the dashboard.

ToolWhat it doesEffect
gridar_pull_build_queueQueue of pages to build in your own repo: landing briefs, generated articles to integrate verbatim, article briefs. No LLM call, no quotanone
gridar_mark_page_builtReports a queued page as live, with its URL. Gridar drops it from the queue and ties it to rank tracking and proof of resultswrites

Google Search Console and indexing

ToolWhat it doesEffect
gridar_gsc_queriesGSC queries (impressions, clicks, position) for one article over N days (default 28, limit 50). GSC connection requirednone
gridar_index_coverageWhich expected pages Google has indexed: a site: query on any site, plus the GSC URL Inspection status and reason when GSC is connected (max_inspect default 25)none
gridar_submit_sitemapRe-submits the sitemap to Google Search Console. Needs GSC with write access. Does not force indexingwrites (sent to Google)
gridar_indexnow_setupThe site's IndexNow key and the key file to host at the domain root. Creates the key on first callwrites
gridar_indexnow_submitSubmits URLs, or the sitemap URLs, to IndexNow: Bing, Yandex, Seznam, Naver. Not Googlewrites (sent to IndexNow)

AI visibility

ToolWhat it doesEffect
gridar_ai_visibility_summaryReturns available: false, counts at 0 and a note: no AI engine is queried from the dashboard yetnone
gridar_run_ai_visibilityAnswers HTTP 501 with code ai_visibility_unavailable and writes nothingnone

Autopilot

ToolWhat it doesEffect
gridar_get_autopilotAutopilot config and state: enabled, weekly count, last run, next run, last errornone
gridar_set_autopilotTurns on or configures autopilot: enabled, weekly_count (1 to 7), auto_publishwrites; publishes from then on with auto_publish: true
gridar_run_autopilot_nowRuns one autopilot cycle now, outside the schedulewrites; publishes when auto_publish is on

Site memory

ToolWhat it doesEffect
gridar_list_memoriesThe site's memory chunks: articles, knowledge base, manual notes, decisions. Paginatednone
gridar_add_memoryAdds a note. Kinds manual and decision weigh more in future generationswrites
gridar_delete_memoryDeletes one memory chunkdestructive
gridar_rebuild_memoryRe-chunks and re-embeds the knowledge base and published hosted articles (Voyage AI). Existing chunks are not wipedwrites

Proof of results and reporting

ToolWhat it doesEffect
gridar_proof_summaryImpressions and clicks gained according to GSC, and the 5 articles that gained the mostnone
gridar_proof_attributionPer-article snapshots at day 30, 60 and 90 against the baseline; filter with post_idnone
gridar_enable_proof_shareTurns on the public read-only proof page and returns its URL. rotate: true issues a new link and kills the old onepublishes
gridar_revoke_proof_shareTurns off the public proof page: the URL answers 404 at once. Data is keptdestructive
gridar_weekly_digestThe last 7 days of a site: traffic, rankings, content decaynone

Conversation examples

  • "Audit site 12 and give me the 3 fixes to make first." Claude calls gridar_site_seo_score, then reads its action_items.
  • "Pull the pages to build for site 12 and create them in this repo." Claude Code calls gridar_pull_build_queue, writes each page, deploys, then calls gridar_mark_page_built with each live URL.

Tools take a numeric site_id: the site must already exist in your Gridar account. gridar_list_sites returns the ids.

Known limits

  • AI visibility is not wired. No AI engine is queried from the dashboard. gridar_run_ai_visibility answers 501 (ai_visibility_unavailable) and stores nothing; gridar_ai_visibility_summary returns available: false with zero counts, and excludes results from the former simulation. For a one-off check, the tool description points to the free checker at https://www.gridar.app/tools/ai-visibility-checker.
  • No search volume, no keyword difficulty. gridar_keyword_research returns neither, and estimated_intent is guessed from the words of the keyword. Read its sources field: a short list can mean a provider failed or returned nothing.
  • Opportunity estimates often read 0. monthly_volume in strategic opportunities comes from a best-effort read of the Serper search response. When Serper returns no volume field, monthly_volume, estimated_visits and the lead ranges are 0 and qualitative_traffic is inconnu.
  • Rank depth. The daily cron keeps the largest organic result set from up to three Serper calls; gridar_snapshot_keywords makes a single call. In both cases a page ranked below the results Serper returns is recorded as not ranked.
  • gridar_generate_article defaults to French when language is omitted (the backend reads language or falls back to fr). It answers 422 until the site has a business model and an author bio, 409 (delivery_blocked) when the site has no delivery path, and 402 when quota and credits are used up.
  • gridar_update_article identifies the article by slug; there is no field to change the slug.
  • gridar_check_hreflang needs site_id. The backend ignores the html argument.
  • gridar_suggest_internal_links needs content. The backend does not read article_slug or keyword.
  • gridar_check_plagiarism needs at least 50 characters, and answers 503 when Originality.ai is not configured on Gridar's side.
  • Landings (gridar_create_landing, gridar_generate_landing) and gridar_generate_sister_article work on hosted sites only.
  • IndexNow does not reach Google, and re-submitting a sitemap does not force Google to index anything.
  • Tokens. A token grants every tool on every site of the account, deletions included. There is no read-only token. Each OAuth authorization creates a new token; old ones stay active until you revoke them at https://www.gridar.app/account/api-keys.
  • OAuth state lives in memory. Codes expire after 5 minutes, and a server restart during the login invalidates the pending login: start the connection again.

Development

bash
cd mcp-servernpm installnpm run buildBLOG_DASHBOARD_TOKEN=btb_xxx node dist/index.js   # stdio (npm start)PORT=8080 node dist/http.js                       # HTTP (npm run start:http)

Debug with the MCP Inspector:

bash
BLOG_DASHBOARD_TOKEN=btb_xxx npx @modelcontextprotocol/inspector node dist/index.js

Tool definitions (name, description, input schema) live in src/index.ts, the API client in src/api.ts, the HTTP server and OAuth flow in src/http.ts.

Links

License

MIT

來源:mcp-server/README.md,提交 a2a38c9

工具

0
該伺服器需要登入,因此 SourceWeft 無法在沒有帳號的情況下讀取其工具,也未收錄。已連接帳號所能看到的內容可能因帳號及其權限而異。

版本歷史

1
  1. v0.7.0最新Sep 16, 2026

評分

已滿足適用檢查項的 75%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通必需25 分
  • 已宣告認證方式必需10 分
  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分

    請在儲存庫或註冊中心條目中宣告授權條款。

其他 Gridar 整合