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 把面向魁北克站点的 SEO 工具集以 69 个工具开放给助手,可做站点审计、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 集成