HarborRank
Server Details
SEO for AI agents: keywords, SERPs, backlinks, rank tracking, audits, Search Console, Analytics
The last two health checks of this connector failed. If this server requires authentication, missing or expired test credentials may be the cause. A test profile lets Glama authenticate for health checks and discover tools; it is separate from your personal connections.
If you are the author, claim ownership, then add or update a test profile under Admin → Test Profile.
- Status
- Unhealthy
- Uptime
- 78.5% over 42 days
- OAuth
- Works in Glama
- Last Tested
- Transport
- Streamable HTTP
- URL
- Repository
- winsley-jeune/harborrank-skills
- GitHub Stars
- 0
- ChatGPT
- HarborRank
- Claude
- HarborRank SEO
TDQS
Scored across 41 tools
Each tool has a distinct resource+action, and descriptions explicitly cross-reference siblings (e.g. get_domain_overview vs get_domain_keyword_suggestions vs get_ranked_keywords; get_serp_results vs get_local_serp_results vs find_serp_competitors). The overlapping SERP/domain/keyword family is the main risk area, but the guidance text largely disambiguates it.
Nearly all tools follow a snake_case verb_noun pattern (get_, list_, create_, delete_, save_, set_, run_, research_, prospect_, inspect_, update_). Only `whoami` breaks the convention, with minor variance in verb choice (research_ vs get_ vs find_), so the set remains highly predictable.
At 41 tools this is well past the 25+ threshold and is heavy for an agent to scan and select from in a single context. The breadth spans several genuinely separate sub-domains (projects, leads/teardowns, audits, analytics, keywords, backlinks, billing), so splitting would help, but the flat surface is over-large.
Core lifecycles are covered: audits have run/status/issues/pages, leads have prospect/list/update/teardown/set-operations, and projects/reports have create+list+delete. Minor gaps exist — no update_project or get_project, no delete_saved_keywords (save without remove), and rank trackers are read-only (creation is dashboard-only) — but these are workable around.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
3 tool updates
- Changed
get_keyword_metrics1 field changed- changed
Input schema / properties / includeMonthlyTrends / descriptionPrevious value: -"Include monthly search-volume trend rows. Defaults to true."New value: +"Include the last 12 months of search volume per keyword, for seasonality. Defaults to false: trends are long, so ask for them only when the answer needs them."
- Changed
get_local_serp_results16 fields changed- changed
Output schema / properties / results / items / additionalPropertiesPrevious value: -{}New value: +false - added
Output schema / properties / results / items / properties / addressAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] +} - added
Output schema / properties / results / items / properties / categoryAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] +} - added
Output schema / properties / results / items / properties / cidAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] +} - added
Output schema / properties / results / items / properties / domainAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] +} - added
Output schema / properties / results / items / properties / isClaimedAdded value: +{ + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] +} - added
Output schema / properties / results / items / properties / latitudeAdded value: +{ + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] +} - added
Output schema / properties / results / items / properties / longitudeAdded value: +{ + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] +} - added
Output schema / properties / results / items / properties / phoneAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] +} - added
Output schema / properties / results / items / properties / placeIdAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] +} - added
Output schema / properties / results / items / properties / rankAdded value: +{ + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] +} - added
Output schema / properties / results / items / properties / ratingAdded value: +{ + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] +} - added
Output schema / properties / results / items / properties / reviewsAdded value: +{ + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] +} - added
Output schema / properties / results / items / properties / titleAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] +} - added
Output schema / properties / results / items / properties / urlAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] +} - added
Output schema / properties / results / items / requiredAdded value: +[ + "rank", + "title", + "domain", + "url", + "category", + "rating", + "reviews", + "phone", + "address", + "isClaimed", + "placeId", + "cid", + "latitude", + "longitude" +]
- Changed
get_ranked_keywords11 fields changed- changed
Output schema / properties / keywords / items / additionalPropertiesPrevious value: -{}New value: +false - added
Output schema / properties / keywords / items / properties / cpcAdded value: +{ + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] +} - added
Output schema / properties / keywords / items / properties / difficultyAdded value: +{ + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] +} - added
Output schema / properties / keywords / items / properties / intentAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] +} - added
Output schema / properties / keywords / items / properties / keywordAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] +} - added
Output schema / properties / keywords / items / properties / rankAdded value: +{ + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] +} - added
Output schema / properties / keywords / items / properties / resultTypeAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] +} - added
Output schema / properties / keywords / items / properties / trafficAdded value: +{ + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] +} - added
Output schema / properties / keywords / items / properties / urlAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] +} - added
Output schema / properties / keywords / items / properties / volumeAdded value: +{ + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] +} - added
Output schema / properties / keywords / items / requiredAdded value: +[ + "keyword", + "rank", + "volume", + "difficulty", + "cpc", + "intent", + "traffic", + "url", + "resultType" +]
3 tool updates
- Added
create_share_report - Added
delete_share_report - Added
list_share_reports
3 tool updates
- Changed
get_keyword_metrics1 field changed- changed
Input schema / properties / includeClickstreamData / descriptionPrevious value: -"Refine search volumes with clickstream data, which disaggregates Google Ads' grouped close-variant volumes (plurals/misspellings). DOUBLES the credit cost of the call. Default false. No effect for countries served from Google Ads data."New value: +"Refine search volumes with clickstream data, which disaggregates Google Ads' grouped close-variant volumes (plurals/misspellings). Use only when plural or misspelling variants need separate volumes. Default false. No effect for countries served from Google Ads data."
- Changed
research_keywords1 field changed- changed
Input schema / properties / includeClickstreamData / descriptionPrevious value: -"Refine search volumes with clickstream data, which disaggregates Google Ads' grouped close-variant volumes (plurals/misspellings). DOUBLES the credit cost of each seed. Default false (standard Google-Ads-derived volumes). No effect for countries served from Google Ads data."New value: +"Refine search volumes with clickstream data, which disaggregates Google Ads' grouped close-variant volumes (plurals/misspellings). Use only when plural or misspelling variants need separate volumes. Default false (standard Google-Ads-derived volumes). No effect for countries served from Google Ads data."
- Changed
research_lead1 field changed- changed
Input schema / properties / includeAudit / descriptionPrevious value: -"Start a 10-page crawl of the lead's site (free; its findings land on the lead when it finishes). Defaults to true."New value: +"Start a 10-page crawl of the lead's site (its findings land on the lead when it finishes). Defaults to true."
3 tool updates
- Added
get_ai_referral_traffic - Added
get_analytics_report - Added
get_landing_page_performance
2 tool updates
- Added
get_upgrade_link - Changed
whoami6 fields changed- added
Output schema / properties / lowCreditsAdded value: +{ + "type": "boolean" +} - added
Output schema / properties / monthlyCreditsAdded value: +{ + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] +} - added
Output schema / properties / paidPlanAdded value: +{ + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] +} - added
Output schema / properties / planAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] +} - added
Output schema / properties / upgradeUrlAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] +} - changed
Output schema / requiredPrevious value: -[ - "userId", - "userEmail", - "organizationId", - "scopes", - "mode", - "creditsRemaining" -]New value: +[ + "userId", + "userEmail", + "organizationId", + "scopes", + "mode", + "creditsRemaining", + "plan", + "paidPlan", + "monthlyCredits", + "lowCredits", + "upgradeUrl" +]
2 tool updates
- Added
get_lead_teardown - Added
research_lead
1 tool update
- Changed
run_site_audit1 field changed- changed
Input schema / properties / runLighthouse / descriptionPrevious value: -"Run Lighthouse on a sample of up to 10 representative pages (default true)."New value: +"Run Lighthouse on a sample of up to 10 representative pages (default true). Paid plans only; ignored on the Free plan."
32 tool updates
- First observed
create_project - First observed
delete_project - First observed
find_serp_competitors - First observed
get_audit_issues - First observed
get_audit_pages - First observed
get_audit_status - First observed
get_backlinks_overview - First observed
get_backlinks_profile - First observed
get_domain_keyword_suggestions - First observed
get_domain_overview - First observed
get_google_business_questions - First observed
get_keyword_metrics - First observed
get_local_serp_results - First observed
get_rank_tracker - First observed
get_ranked_keywords - First observed
get_search_console_performance - First observed
get_serp_results - First observed
inspect_urls - First observed
list_business_categories - First observed
list_leads - First observed
list_projects - First observed
list_saved_keywords - First observed
prospect_leads - First observed
research_keywords - First observed
run_site_audit - First observed
save_keywords - First observed
search_local_businesses - First observed
set_lead_competitors - First observed
set_lead_serp_checks - First observed
set_lead_top_issues - First observed
update_lead - First observed
whoami
Publisher details
- Operator
- HarborRank (harborrank.com), the company that builds and runs the HarborRank SEO platform and this MCP endpoint. · Publisher source
- Operator website
- https://harborrank.com · Publisher source
- Vendor relationship
- First-party · Publisher source
- Documentation
- https://harborrank.com/docs/mcp · Publisher source
- Trust center
- Not available
- Restrictions
- Requires a HarborRank account on a paid plan (from $29/month; no free plan). Sign-in is OAuth 2.0 with Dynamic Client Registration, no custom OAuth app needed. Research tools spend the plan's monthly credits; Search Console tools need a Google Search Console property connected in the HarborRank app. · Publisher source
Related MCP Connectors
SEO data for AI agents: keywords, SERPs, rank tracking, audits, backlinks, GSC and AI visibility.
SEO and AI visibility for agents: keywords, SERPs, backlinks, audits, rank and AI answer tracking.
SEO tools for AI agents: audits, Core Web Vitals, keywords, AI visibility, traffic, backlinks.
Agent-first SEO research and publishing: competitors, SERPs, internal links, and Search Console.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceConnects AI agents to live SEO data and hosted tools for site audits, keyword research, competitor analysis, local SEO, and link prospecting, with guided workflows for structured search optimization.2MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to access self-hosted SEO data and workflows, including keyword research, rank tracking, competitor insights, backlinks, site audits, and AI visibility.MIT
- AlicenseNot gradedqualityAmaintenanceEnables AI agents to run SEO audits and reporting over a user's own Search Console, Google Analytics, Bing, and keyword/competitor provider data, including page/index status, traffic comparisons, backlinks, and local crawl/internal-link analysis.2,800 npm606Apache 2.0
- AlicenseNot gradedqualityCmaintenanceAgent-first SEO toolkit with 24 MCP tools for keyword research, rank tracking, site audits up to 50k pages, competitor analysis, content gap detection, domain reputation, backlink intelligence, Google Search Console integration, and AI-powered strategy generation with Claude, GPT, and Ollama. SQLite-backed and bring-your-own-key.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.