Skip to main content
Glama
Mangools MCP

Mangools MCP

by marwa-mrwan

Mangools MCP

Standalone MCP server for the Mangools API with 82 tools covering keyword research, SERP analysis, rank tracking, backlinks, competitor research, and AI search visibility.

Repository: marwa-mrwan/mangools-mcp

Exact Tool Inventory

Service

Tools

Capabilities

Mangools

2

Locations and location details.

KWFinder

21

Related/competitor/suggested keywords, keyword details, trends, difficulty, gap analysis, limits, imports, exports, and lists.

SERPChecker

5

SERPs, reset, URL metrics, request history, and snapshots.

SERPWatcher

26

Trackings, keywords, reports, annotations, tags, statistics, and CRUD operations.

LinkMiner

10

Backlinks, URL metrics, favorites, request history, and exports.

SiteProfiler

6

Overview, audience, backlink profile, top content, competitors, and request history.

AI Search Watcher

12

Models, monitors, prompts, monitor settings, and CRUD operations.

Total

82

One standalone mangools stdio MCP server.

Related MCP server: Haloscan MCP Server

Setup

git clone https://github.com/marwa-mrwan/mangools-mcp.git
cd mangools-mcp
npm install

Create either .env or .vscode/mcp.local.env:

MANGOOLS_API_KEY=your_local_api_key

Both files are ignored by Git. Never commit the API key.

VS Code MCP

The tracked .vscode/mcp.json starts the server automatically from the repository root and loads .vscode/mcp.local.env.

Equivalent configuration:

{
  "servers": {
    "mangools": {
      "type": "stdio",
      "command": "node",
      "args": ["${workspaceFolder}/index.js"],
      "envFile": "${workspaceFolder}/.vscode/mcp.local.env"
    }
  }
}

Codex MCP

The root .mcp.json exposes the same server to Codex and loads the local .env file through MCP_SECRETS_ENV_FILE.

Tool Arguments

Each tool accepts named top-level parameters plus optional raw query and body objects.

{
  "keyword": "seo agency",
  "location_id": 2840,
  "language_id": 1000
}

For POST, PUT, PATCH, and DELETE tools, top-level non-path parameters are sent as JSON unless an explicit body is provided. Review mutation arguments carefully because these calls can change Mangools resources.

Verification

npm test
npm run list-tools
npm audit --omit=dev

Expected registry total: 82 unique tools.

Security

  • API keys stay in ignored local files.

  • GitHub Actions uses read-only repository permissions and checks tests, the tool registry, dependencies, and common secret formats.

  • main is protected against force pushes and deletion and requires the CI check before future changes are merged.

  • Dependabot and GitHub vulnerability alerts monitor dependencies.

Report security problems privately using SECURITY.md.

Available Tools

82 tools
aiwatcher_add_monitor_promptsB

Add prompts to an AI Search Watcher monitor.

Inputs: id (required), body, query.

aiwatcher_create_monitorC

Create AI monitoring for a brand.

Inputs: body, query.

aiwatcher_delete_monitorB

Delete AI monitoring for a brand.

Inputs: id (required), body, query.

aiwatcher_delete_promptsC

Delete AI Search Watcher prompts.

Inputs: body, query.

aiwatcher_generate_promptsB

Generate AI prompts for brand monitoring.

Inputs: body, query.

aiwatcher_modelsB

Get available AI Search Watcher models.

Inputs: body, query.

aiwatcher_monitor_detailC

Get AI monitoring detail for a brand.

Inputs: id (required), body, query.

aiwatcher_monitor_promptsB

Get AI Search Watcher prompt details for a monitor.

Inputs: id (required), body, query.

aiwatcher_monitorsB

Get all AI Search Watcher monitors for the user.

Inputs: body, query.

aiwatcher_monitor_settingsC

Get AI Search Watcher monitor settings.

Inputs: id (required), body, query.

aiwatcher_prompt_detailC

Get AI Search Watcher prompt detail.

Inputs: id (required), body, query.

aiwatcher_update_monitor_settingsC

Update AI Search Watcher monitor settings.

Inputs: id (required), body, query.

kwfinder_add_list_keywordsB

Add keywords to a KWFinder list.

Inputs: list_id (required), body, query, keywords.

kwfinder_competitor_domainsC

Get competitor domains from KWFinder.

Inputs: url, body, query.

kwfinder_competitor_keywordsC

Get competitor keywords for a domain or URL using the GET endpoint.

Inputs: url, body, query.

kwfinder_competitor_keywords_postC

Get competitor keywords for a domain or URL using the POST endpoint.

Inputs: url, body, query.

kwfinder_create_listB

Create a new KWFinder list.

Inputs: body, name, query.

kwfinder_delete_listC

Delete a KWFinder custom list.

Inputs: list_id (required), body, query.

kwfinder_delete_list_keywordsB

Remove keywords from a KWFinder list.

Inputs: list_id (required), body, query, keywords.

kwfinder_export_keywordsC

Export keywords into a CSV file.

Inputs: body, query.

kwfinder_gap_analysisC

Run KWFinder keyword gap analysis.

Inputs: body, query.

kwfinder_kd_requestsC

Get KWFinder KD lookup history.

Inputs: body, query.

kwfinder_keyword_detailsB

Get keyword details, including SERP data.

Inputs: body, query, keyword.

kwfinder_keyword_importsC

Get metrics for a set of imported keywords.

Inputs: body, query, keywords, language_id, +1 more.

kwfinder_limitsC

Get current and free KWFinder limits.

Inputs: body, query.

kwfinder_list_itemsC

Get items in a KWFinder list.

Inputs: list_id (required), body, query.

kwfinder_listsC

Get all KWFinder keyword lists.

Inputs: body, query.

kwfinder_requestsC

Get KWFinder lookup history.

Inputs: body, query.

kwfinder_suggested_keywordsC

Get suggested keywords for a URL.

Inputs: url, body, query.

kwfinder_update_listC

Update a KWFinder list name.

Inputs: list_id (required), body, name, query.

kwfinder_url_metricsC

Get KWFinder KD URL metrics.

Inputs: url, body, query.

linkminer_create_exportC

Create a new LinkMiner export task.

Inputs: body, query.

linkminer_delete_favoriteB

Remove a LinkMiner link from a favorite list.

Inputs: list_id (required), body, query.

linkminer_exportsA

Get all LinkMiner exports sorted by creation date.

Inputs: body, query.

linkminer_export_suggestionsC

Get LinkMiner export suggestions for a URL.

Inputs: url, body, query.

linkminer_favorite_detailB

See one LinkMiner favorite link.

Inputs: link_id (required), body, query.

linkminer_favoritesC

See LinkMiner favorite links.

Inputs: body, query.

linkminer_requestsB

Get latest LinkMiner used requests.

Inputs: body, query.

linkminer_url_metricsC

Get URL metrics for a target URL.

Inputs: url, body, query.

mangools_location_detailB

Get detail for one Mangools location.

Inputs: location (required), body, query.

mangools_locationsB

Get list of all Mangools geo-targeting locations.

Inputs: body, query.

serpchecker_requestsC

Get latest SERPChecker requests.

Inputs: body, query.

serpchecker_serpsC

Get SERP results with all metrics and snapshot.

Inputs: body, query, keyword.

serpchecker_serps_resetC

Get freshly reparsed SERP results with all metrics and snapshot.

Inputs: body, query, keyword.

serpchecker_snapshotB

Get SERP snapshot image URL.

Inputs: serp_id (required), body, query.

serpchecker_url_metricsC

Get URL metrics for a URL.

Inputs: url, body, query.

serpwatcher_add_tracked_keywordC

Track another keyword in a SERPWatcher tracking.

Inputs: tracking_id (required), body, query.

serpwatcher_assign_tagC

Assign a tag to a SERPWatcher tracking.

Inputs: tracking_id (required), body, query.

serpwatcher_create_annotationC

Create a SERPWatcher annotation.

Inputs: tracking_id (required), body, query.

serpwatcher_create_multiple_trackingsC

Create multiple SERPWatcher trackings.

Inputs: body, query.

serpwatcher_create_reportB

Create a new SERPWatcher report.

Inputs: tracking_id (required), body, query.

serpwatcher_create_trackingC

Create a SERPWatcher tracking.

Inputs: body, query.

serpwatcher_create_tracking_tagC

Create a new tag for a SERPWatcher tracking.

Inputs: tracking_id (required), body, query.

serpwatcher_delete_annotationC

Delete a SERPWatcher annotation.

Inputs: tracking_id (required), annotation_id (required), body, query.

serpwatcher_delete_reportB

Delete a SERPWatcher report.

Inputs: report_id (required), tracking_id (required), body, query.

serpwatcher_delete_tracked_keywordB

Remove a keyword from a SERPWatcher tracking.

Inputs: tracking_id (required), body, query.

serpwatcher_delete_trackingB

Delete a SERPWatcher tracking.

Inputs: tracking_id (required), body, query.

serpwatcher_delete_tracking_tagC

Delete a tag from a SERPWatcher tracking.

Inputs: tracking_id (required), body, query.

serpwatcher_reportsA

Get all SERPWatcher reports for a tracking.

Inputs: tracking_id (required), body, query.

serpwatcher_tagsC

Get all SERPWatcher tags.

Inputs: body, query.

serpwatcher_tracked_keyword_detailB

Get one tracked keyword in a SERPWatcher tracking.

Inputs: tracking_id (required), tracked_keyword_id (required), body, query.

serpwatcher_tracked_keywordsB

Get all tracked keywords for a tracking.

Inputs: tracking_id (required), body, query.

serpwatcher_tracking_detailC

Get SERPWatcher tracking detail and keywords.

Inputs: tracking_id (required), body, query.

serpwatcher_tracking_detail_legacyB

Get SERPWatcher tracking detail using the legacy endpoint.

Inputs: tracking_id (required), body, query.

serpwatcher_trackingsC

Get all SERPWatcher trackings.

Inputs: body, query.

serpwatcher_tracking_statsC

Get SERPWatcher tracking stats.

Inputs: tracking_id (required), body, query.

serpwatcher_tracking_tagsC

Get all tags for a SERPWatcher tracking.

Inputs: tracking_id (required), body, query.

serpwatcher_unassign_tagC

Unassign a tag from a SERPWatcher tracking.

Inputs: tracking_id (required), body, query.

serpwatcher_update_annotationC

Update SERPWatcher annotation text.

Inputs: tracking_id (required), annotation_id (required), body, query.

serpwatcher_update_reportC

Update a SERPWatcher report.

Inputs: report_id (required), tracking_id (required), body, query.

serpwatcher_update_tagC

Update a SERPWatcher tag.

Inputs: tag_id (required), tracking_id (required), body, query.

serpwatcher_update_trackingB

Update a SERPWatcher tracking domain or location.

Inputs: tracking_id (required), body, query.

siteprofiler_audienceC

Get SiteProfiler audience data.

Inputs: url, body, query.

siteprofiler_competitorsD

Get SiteProfiler competitors.

Inputs: url, body, query.

siteprofiler_overviewC

Get SiteProfiler URL metrics overview.

Inputs: url, body, query.

siteprofiler_requestsC

Get latest SiteProfiler used requests from the last 30 days.

Inputs: body, query.

siteprofiler_top_contentD

Get SiteProfiler top content.

Inputs: url, body, query.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    C2.6/5.0

    Scored across 82 tools

    Disambiguation3/5

    Tools are grouped by product prefix, but many have overlapping purposes (e.g., kwfinder_related_keywords vs kwfinder_suggested_keywords, multiple URL metric tools across products). The _post and _legacy variants add confusion. Descriptions help, but an agent could easily select the wrong tool.

    Naming Consistency2/5

    Naming conventions are inconsistent: some use verb_noun (create_tracking), others use noun (favorites, tracking_stats), and there are suffixes like _post, _legacy, and _reset. Mixed snake_case patterns and varying verb placement make the set feel chaotic.

    Tool Count2/5

    With 82 tools, the server is very heavy. While it covers multiple Mangools products, the sheer number overwhelms an agent's ability to efficiently choose. Most tools are narrowly scoped, but the count is far above typical well-scoped servers.

    Completeness4/5

    The tool set covers a wide range of SEO operations across KWFinder, SERPChecker, SERPWatcher, LinkMiner, SiteProfiler, and AIWatcher. Most resources have lifecycle coverage (create/read/update/delete) where relevant, with only minor gaps like no delete for LinkMiner exports or KWFinder keyword imports.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      D
      maintenance
      MCP server that enables AI assistants to perform SEO automation tasks including keyword research, SERP analysis, and competitor analysis through Google Ads API integration.
      1
      ISC
    • A
      license
      C
      quality
      D
      maintenance
      An MCP server that integrates with the Haloscan SEO API to provide tools for keyword research, SERP analysis, and domain performance tracking. It enables users to perform comprehensive SEO tasks, including competitor analysis and visibility monitoring, within MCP-compatible clients.
      33
      113 npm
      1
      MIT
    • A
      license
      Not graded
      quality
      D
      maintenance
      An agent-friendly MCP server for the GeoRanker High-Volume API, enabling SEO rank tracking and keyword management through natural language.
      35 npm
      1
      MIT
    • A
      license
      B
      quality
      C
      maintenance
      MCP server & CLI for keyword research, domain analytics, backlinks, traffic analysis, and competitive intelligence using Semrush API data.
      77
      73 npm
      40
      MIT