Seog logo

Seog

Organization
TerminalSkills
seog

Run local SEO from your terminal via the SEOG MCP server — Google Business Profile management, map-pack rank tracking and geo-grid scans, review sync and replies published to Google, competitor intelligence, AI-visibility and citation checks, website + Search Console audits, GBP posts, and PDF reports. Use when: connecting an agent to seog.ai, tracking map-pack rankings, automating local SEO reports, monitoring competitors near a business, replying to Google reviews, publishing Google posts, or when the user mentions "SEOG", "local SEO", "map pack", "Google Business Profile", or "keyword positions" for a physical business.

Overview

PublisherTerminalSkills
Repositoryskills
Skill nameseog
Stars
155
Forks
21
Bundled files
1
LicenseApache-2.0
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • 1 bundled files

    Scripts, templates, and references the model can read while it works. Files are read-only and never executed.

  • Open source

    Published by TerminalSkills on GitHub. Read the source before you install it.

Installation

Install the Seog AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/TerminalSkills/skills.git /tmp/skills
mkdir -p .claude/skills
cp -r /tmp/skills/plugins/seog/skills/seog .claude/skills/seog
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Seog in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Seog on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Seog is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

SEOG — Local SEO via MCP

Overview

SEOG (seog.ai) is an AI local-SEO platform for businesses that live on Google Maps. Its remote MCP server exposes the whole product as 90 tools — the same domain services the web app's buttons call — so an agent can run a complete local-SEO practice without opening a browser: import a business, track and rank-check keywords, scan map visibility on a geo grid, sync and answer Google reviews, watch competitors, audit the website and Search Console, publish Google posts, and generate PDF reports.

Endpoint: https://api.seog.ai/mcp (streamable HTTP), authenticated with a personal token. Every call runs as that SEOG account — there is no anonymous mode.

Instructions

Setup

Sign up at https://app.seog.ai, then Settings → MCP access to issue a personal token (shown once). Install either way:

As a Claude Code plugin (recommended — bundles this skill and the server config):

/plugin marketplace add TerminalSkills/skills
/plugin install seog@terminal-skills

Claude Code prompts for the token and stores it in your OS keychain.

As a skill + manually registered MCP server (any client):

bash
npx terminal-skills install seog
claude mcp add --transport http seog https://api.seog.ai/mcp \
  --header "Authorization: Bearer $SEOG_MCP_TOKEN"

For Codex / Gemini CLI / Cursor, register an HTTP MCP server with the same URL and Authorization: Bearer header. Verify with tools/list — 90 tools from server seog-platform (fewer on white-label accounts; see Guidelines).

Account, plan and credits — read before running paid tools

  • The token identifies a SEOG account; tools act only on that account's data.
  • SEOG bills in credits (CR). Free tools read stored data; paid tools cost the same as the equivalent click in the app.
  • get_credit_balance returns balance + plan; list_feature_prices prices every paid tool. Check both before a multi-business sweep.
  • A paid tool that fails is not charged (deliver-or-refund), so a failed run never silently costs money.

Tool map

Full parameter schemas and pricing notes: references/mcp-tools.md. 💳 = spends credits.

DomainTools
Businesseslist_businesses, get_business, search_places💳, import_business💳, update_business, delete_business
Profile healthget_business_audit, get_action_plan, list_recommendations, analyze_business_profile, set_recommendation_status
Profile editing (writes to Google)apply_profile_fix💳, undo_profile_fix, draft_business_description💳, apply_business_description💳, undo_business_description, list_profile_photos, delete_profile_photo, get_profile_fix_options, list_recent_profile_edits
Rankingslist_keywords, add_keyword💳, check_keyword💳, refresh_rankings💳, keyword_history, keyword_recommendations💳, keyword_recommendations_cache, toggle_keyword, remove_keyword
Map grid + AI answersrun_grid_scan💳, get_latest_grid_scan, get_keyword_grid_scan, get_grid_history, get_grid_snapshot, check_ai_overview💳, get_ai_overview
Reviewslist_reviews, review_stats, sync_reviews💳, draft_review_response, generate_review_reply💳, publish_review_reply💳, verify_review_reply💳
Competitorsdiscover_competitors💳, get_discovered_competitors, list_competitors, add_competitor💳, remove_competitor, set_competitor_watchlist, snapshot_competitor💳, refresh_competitors💳, compare_competitors, list_competitor_alerts, mark_competitor_alerts_read, scan_competitor_spam
AI visibilityget_ai_visibility, get_ai_visibility_pillars, get_ai_presence_matrix, check_ai_visibility💳, list_citations, check_citations💳
Website + Search Consoleget_website_analysis, refresh_website_analysis💳, refresh_website_all💳, get_search_performance, get_search_console_status, load_search_performance💳
Google postslist_posts, get_post_templates, validate_post, draft_post_content💳, publish_post💳, refresh_posts, delete_post
Google connectionget_google_connection_status, get_gbp_performance, load_gbp_performance💳, load_gbp_keyword_history💳, list_gbp_import_locations, import_gbp_business💳
Account + reportsget_dashboard, get_credit_balance, list_feature_prices, get_metrics_history, list_reports, create_report, get_report, delete_report, refresh_business_profile💳, refresh_business_overview💳

Core workflows

Onboardsearch_placesimport_business with the chosen placeId. If the user's Google account is already connected, prefer list_gbp_import_locationsimport_gbp_business: it binds the owner connection, which is what unlocks review replies and posts.

Track rankings — read keyword_recommendations_cache (free) before paying for keyword_recommendations; add_keyword (optional locationLabel to rank from a neighborhood); check_keyword for one live check or refresh_rankings for every active keyword in a single charge; keyword_history for the trend; run_grid_scan for map coverage across a grid (price scales with gridSize).

Work reviewssync_reviewslist_reviews(filter="needs-response")generate_review_reply for a draft → ask the userpublish_review_reply (publicly visible on Google) → verify_review_reply to confirm it landed. draft_review_response saves a local draft and publishes nothing.

Fix the profileget_action_plan / get_business_audit to find gaps, then apply_profile_fix (phone, website, hours, name, status) or draft_business_descriptionapply_business_description. Both write to the live listing; undo_profile_fix / undo_business_description revert.

Diagnose beyond the profileget_website_analysis + get_search_performance (free reads of the last runs), refresh_website_all to re-run both in one charge; get_ai_visibility_pillars and list_citations for AI-answer readiness and NAP consistency.

Examples

Example 1: Weekly digest, credit-aware

"How are my clients doing this week?"

text
1. get_credit_balance → 180 CR (Growth plan) — enough for the sweep
2. list_businesses → 15 businesses
3. per business: refresh_rankings        # one charge for all active keywords
                 sync_reviews → list_reviews(filter="needs-response")
                 compare_competitors + list_competitor_alerts   # both free
4. generate_review_reply for each negative unanswered review → present the drafts
5. get_action_plan(businessId) → prioritized fixes for the digest

Publishing (publish_review_reply) waits for the owner's explicit yes.

Example 2: Credits run out mid-sweep

text
> run_grid_scan(businessId, keywordId, gridSize=7)
✗ Not enough credits: this action costs 45 CR and the account balance is 12 CR.
  Nothing was run and nothing was charged. Top up or upgrade at
  https://app.seog.ai/billing, then retry.

Correct behaviour: relay the numbers and the link, stop the paid sweep (do not retry in a loop), and finish the digest from free reads — list_keywords, get_latest_grid_scan, review_stats, get_action_plan all still work.

Guidelines

  • Money is real. Never run a paid tool the user did not ask for. Price a batch with list_feature_prices and check get_credit_balance first. Prefer bundled charges (refresh_rankings, refresh_website_all, refresh_business_overview) over per-item loops — they cost less for the same work.
  • Publishing is public and hard to undo. publish_review_reply, publish_post, apply_profile_fix and apply_business_description write to the live Google listing. Quote the exact text and get approval first. Changing the business NAME can put the listing into Google re-verification — say so before doing it.
  • delete_business is irreversible — it cascades reviews, keywords, rankings and competitors. Prefer toggle_keyword when the user only wants to stop tracking.
  • Read the error instead of retrying. Tool errors are self-describing: INSUFFICIENT_CREDITS gives price, balance and the top-up URL; PLAN_REQUIRED means the trial ended or no plan exists; FEATURE_NOT_IN_PLAN names the feature and plan. Relay them — a retry loop just fails again.
  • Some tools are absent by design. White-label/agency accounts do not get the tools that return raw Google content (search_places, check_keyword, sync_reviews, discover_competitors, run_grid_scan, import_gbp_business, …). If a tool is "not found", say the account is not cleared for it rather than guessing.
  • Photo upload and Google / Search Console OAuth stay in the web app (file bytes and a browser). Everything else is available here.
  • IDs are UUIDs scoped to the token's account — a 404 on a valid-looking UUID usually means it belongs to another account.
  • The token is a credential: never commit it, and scrub it from logs and transcripts. A 401 means it was revoked in Settings — ask the user to reissue.

Bundled files

The model reads these on demand while the skill is loaded. They are exposed as readable files and are never executed.

Frequently asked questions

What does the Seog AI skill do?

Run local SEO from your terminal via the SEOG MCP server — Google Business Profile management, map-pack rank tracking and geo-grid scans, review sync and replies published to Google, competitor intelligence, AI-visibility and citation checks, website + Search Console audits, GBP posts, and PDF reports. Use when: connecting an agent to seog.ai, tracking map-pack rankings, automating local SEO reports, monitoring competitors near a business, replying to Google reviews, publishing Google posts, or when the user mentions "SEOG", "local SEO", "map pack", "Google Business Profile", or "keyword po...

Why use Seog on TypingMind?

Because you install it once and use it with any model. Seog is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Seog in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/TerminalSkills/skills/tree/main/plugins/seog/skills/seog. TypingMind reads its SKILL.md and bundles its files and installs it as a skill you can enable per chat.

Which AI models can use Seog?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Seog?

As many as you like. As long as a model supports skills, you can use Seog with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Seog AI skill free?

Yes. It is published on GitHub by TerminalSkills under the Apache-2.0 license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇