AWS MCP Server vs Seo Monster
A side-by-side look at the AWS MCP Server and Seo Monster MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.
Verdict: choose AWS MCP Server for cloud platforms work as a local process; choose Seo Monster for cloud platforms as a local process. You can also run both side by side in one mcpServers block.
Which MCP server should you choose?
Choose AWS MCP Server when
- You need dedicated capabilities in the Cloud Platforms domain.
- You prefer a local stdio subprocess transport.
- You want tools like
aws_whoami, aws_login_start, aws_login_complete.
Choose Seo Monster when
- You need dedicated capabilities in the Cloud Platforms domain.
- You prefer a local stdio subprocess transport.
- You have the keys it needs:
SEO_MCP_ALLOW_DESTRUCTIVE. - You want tools like
system_status, gsc_list_properties, gsc_search_analytics.
Feature & specification comparison
Rows where the two servers differ are marked.
| Spec | ||
|---|---|---|
| Category | Cloud Platforms | Cloud Platforms |
| Quality signal | 64/100 · Good | 64/100 · Good |
| Install command | Confirmed | Confirmed |
| Transport | Local subprocess (stdio) | Local subprocess (stdio) |
| Auth | Not declared | Not declared |
| Pricing | Not declared | Not declared |
| Required env vars | None listed | SEO_MCP_ALLOW_DESTRUCTIVE |
| Verified owner | Community listing | Community listing |
| GitHub stars | 5 | 552 |
| Directory activity | 1 views 0 installs 0 upvotes | 3 views 0 installs 0 upvotes |
| Tools | 28 | 70 |
| Full listing | View AWS MCP Server | View Seo Monster |
Tools & capabilities
AWS MCP Server tools 28
aws_whoamiShow the current AWS identity (account, role ARN, user ID) plus SSO token status and time remaining. Use this first to verify auth before running other AWS operations. Returns a structured fix-it message if SSO is expired.aws_login_startStart an AWS SSO login via the device-code flow (no browser spawned from this process). Returns a verification URL and short code -- surface these to the user so they can open the URL in their own browser and paste the code. After they auth, call aws_login_complete with the returned sessionId to confirm completion.aws_login_completeBlock until the SSO login started by aws_login_start finishes (user completed auth in browser, or subprocess exited with error). Returns the new identity on success, or a structured error.aws_refresh_if_expiring_soonProactive SSO token check. If the cached token has fewer than `thresholdMinutes` left (default 10), this kicks off aws_login_start and returns the verification URL + code in one round-trip. If plenty of time remains, returns `status: 'ok'` with the minutes left. Use at the start of a multi-step AWS workflow to avoid mid-session expiry. `status: 'ok'` is a point-in-time reading of the cache, not a lease: nothing re-checks afterwards, so a token that lapses mid-workflow still surfaces as an sso_expired error from the next aws_call / aws_whoami. Raise `thresholdMinutes` to cover the expected length of the workflow rather than treating 'ok' as a guarantee.aws_session_setSet the default AWS profile and/or region for the rest of this MCP session. Subsequent calls to aws_whoami, aws_login_*, and other AWS tools will use these values unless they override explicitly. Use when the user says 'switch to prod', 'use us-west-2', 'look at the staging account', etc. Both params are optional; pass whichever changed. Returns the resulting session state.aws_session_getShow the current session's default AWS profile and region, and where each value came from ('session' = set by aws_session_set, 'env' = AWS_PROFILE/AWS_REGION env var, 'default' = built-in fallback). Useful for confirming state before running operations or debugging why a call hit the wrong account.aws_session_clearRemove session-set profile and/or region overrides so subsequent calls fall back to env vars / defaults. No args clears both. Pass `profile: true` or `region: true` to clear just one. Use when the user says 'go back to the default profile,' 'unset the region,' or 'reset session.'aws_callRun an arbitrary AWS API operation via the aws CLI. Use kebab-case service and operation names as in `aws help` (service='s3api', operation='list-buckets'). Pass params as a JSON object using the AWS API's PascalCase keys (e.g. {Bucket: 'foo'}); they go through --cli-input-json. Session profile/region (from aws_session_set) are used by default; override per-call when needed. Hand-written CLI commands (aws s3 cp/ls/sync, aws logs tail) and operations that stream their response to an output file (s3api get-object, bedrock-runtime invoke-model, bedrock-agentcore invoke-agent-runtime, lambda invoke) do not accept --cli-input-json and cannot run here -- use aws_lambda_invoke or aws_logs_tail where they exist, bedrock-runtime converse for text inference, otherwise your shell. Waiters work: operation 'wait instance-running'. Blob-typed members of params (KMS Plaintext, Kinesis Data, DynamoDB B) take base64 -- the server runs the CLI with --cli-binary-format base64 whatever your AWS config says. Returns parsed JSON output by default, plus the literal command that was run.aws_list_profilesList AWS profiles configured in ~/.aws/config. Returns profile name, region, and SSO metadata (start URL, region, session name) where set, plus an `isSso` flag. Use when the user hasn't named a profile, when they ask to switch profiles, or when an SSO-expired error mentions a profile you haven't seen.aws_paginateFetch one page of a paginated AWS list/describe operation. Identical to aws_call plus `maxItems` (page size) and `startingToken` (resume cursor). When `query` is supplied it is wrapped server-side as {NextToken, items: <query>} so pagination survives a projection that would otherwise drop NextToken; the handler unwraps `items` before returning. Returns the parsed response, a `nextToken` (null when the list is exhausted), and `hasMore`. Call again with the returned nextToken as startingToken until hasMore is false. Use this instead of aws_call for operations that might exceed the 5 MB stdout cap: list-objects-v2, describe-instances, describe-log-streams, list-roles, etc.aws_assume_roleCall STS AssumeRole and stash the returned temporary credentials as a named profile in the shared credentials file ($AWS_SHARED_CREDENTIALS_FILE when set, otherwise ~/.aws/credentials; the resolved path is returned as credentialsPath). Subsequent calls to aws_call / aws_whoami / aws_paginate can use profile='mcp-<sessionName>' (or your overridden targetProfile name). The raw secret key / session token are NOT returned to the caller — only the profile name, expiration, and assumed identity. Use for cross-account access: a source profile (your SSO identity) assumes a role in another account. Default timeout is 120s (raise via timeoutMs for slow SAML / credential_process setups on cold start).aws_logs_tailFetch the newest CloudWatch Logs events for one log group over the last `since` (default 10m), via FilterLogEvents ('aws logs filter-log-events'). Returns events oldest first as {timestamp (ISO 8601 UTC), logStreamName, message (verbatim)}; any of the three is null on an event that arrived without it, which is kept rather than dropped. At most `maxEvents` come back (default 500, max 10000); when the window held more, the OLDEST are dropped and `truncated` is true. On AWS CLI 2.35.8+ the read goes newest-first and stops once it has enough, so a busy group costs a page or two -- and a truncated result reports `totalEvents: null` because the rest was never read. Older CLIs read the whole window (exact `totalEvents`); narrow `since` or add `filterPattern` if a wide window times out. `logGroupName` takes a bare name or a log-group ARN in the call's region; an ARN is sent as logGroupIdentifier, so a source-account ARN works from a cross-account monitoring account (AWS CLI 2.9.15+). Does not stream: call again for newer events. eventId and ingestionTime are omitted -- use aws_call for them.- +16 more on the listing page
Seo Monster tools 70
system_statusReport which SEO services are configured and reachable, the Google auth method and scopes, whether destructive mode is enabled, and the full catalog of available tools grouped by service. Call this first if unsure what is set up. Pass probe=true to confirm credentials work via one cheap live call per configured service (default false: config-only).gsc_list_propertiesList every Search Console property the configured credentials can see, with each property's permission level. Use this to discover valid site_url values.gsc_search_analyticsQuery Search Console search analytics (clicks, impressions, CTR, position) for a property, with dimensions, a date range, optional dimension filters, and data_state. The workhorse GSC tool.gsc_top_queriesConvenience wrapper: top queries for a property over the last N days by clicks. Equivalent to gsc_search_analytics with dimensions=["query"]. Uses the configured data_state (default 'all'; 'final' lags 2-3 days behind the dashboard).gsc_top_pagesConvenience wrapper: top pages for a property over the last N days by clicks. Equivalent to gsc_search_analytics with dimensions=["page"]. Uses the configured data_state (default 'all'; 'final' lags 2-3 days behind the dashboard).gsc_compare_periodsCompare two equal-length time windows (current vs prior) and return per-key deltas in clicks, impressions, CTR, and position, plus keys present in only one window. v0.2.0: optional sort_by / sort_dir / min_delta_* filters and an anomalies_only z-score gate so the same tool covers 'biggest gainers', 'biggest losers', 'meaningful movers', and 'statistical outliers' without needing separate tools. When anomalies_only=true, the response's filters_applied.sigma_used field reports the population-stdev (sigma) actually computed from the matched rows' sort_by metric distribution; the effective z-score cutoff applied is `sigma_threshold * sigma_used`.gsc_inspect_urlInspect a single URL via the URL Inspection API: index verdict, coverage state, crawl info, canonicals, and mobile/rich-results summaries when present.gsc_batch_inspect_urlsInspect several URLs in one call (capped at 25). Returns a result per URL plus a list of per-URL failures. Rate-limit and transient errors are reported per URL without failing the whole batch.gsc_list_sitemapsList the sitemaps Google knows about for a property, with submission and indexing status.gsc_submit_sitemapSubmit a sitemap to Search Console. Requires the writable webmasters scope. Available by default (a routine SEO task; not gated). Accepts either `sitemap_url` (preferred, friendly name) or `feedpath` (the raw API field name; kept for back-compat).gsc_request_indexingAsk Google to (re)crawl one or more URLs via the Indexing API (URL_UPDATED). Requires the indexing scope. Available by default. Accepts a single `url` (string) or `urls` (array up to 100). A scope or disabled-API error stops the batch and is returned with remediation; per-URL errors are collected. `notify_time: null` on success is normal upstream behavior, not a failure.gsc_query_opportunitiesQueries already ranking in the top N positions but with below-target CTR. These are title and meta-description optimization candidates. Returns rows sorted by impressions desc (the bigger the impression volume, the more clicks a CTR lift unlocks).- +58 more on the listing page
Ready-to-paste client configs
Paste either block (or both) into your client config, e.g. claude_desktop_config.json or ~/.cursor/mcp.json. We only show a config when the install command is confirmed.
AWS MCP Server
{
"mcpServers": {
"aws-mcp-server-3": {
"command": "npx",
"args": [
"-y",
"@yawlabs/aws-mcp"
]
}
}
}
Seo Monster
{
"mcpServers": {
"seo-monster": {
"command": "uvx",
"args": [
"seo-monster"
],
"env": {
"SEO_MCP_ALLOW_DESTRUCTIVE": "YOUR_SEO_MCP_ALLOW_DESTRUCTIVE_HERE"
}
}
}
}
Frequently asked questions
AWS MCP Server is categorized under Cloud Platforms and uses a local stdio subprocess. Seo Monster belongs to Cloud Platforms and uses a local stdio subprocess. Pick AWS MCP Server for cloud platforms work and Seo Monster for cloud platforms.
Copy the mcpServers block from the config section on this page into your client's config (for example claude_desktop_config.json or ~/.cursor/mcp.json), then fully restart the client.
AWS MCP Server has no declared pricing — check the project's own site. Seo Monster has no declared pricing — check the project's own site. If a server needs environment variables such as API keys, define them under the env key in your client's MCP config.
Yes. MCP clients support multiple servers: add aws-mcp-server-3 and seo-monster as separate keys in the same mcpServers object, and your assistant will call tools from either one.
On AllMCPs, AWS MCP Server has a quality signal of 64/100 (Good) with 1 views, 0 installs and 5 GitHub stars. Seo Monster has 64/100 (Good) with 3 views, 0 installs and 552 GitHub stars.