Skip to main content
Glama
nuppawat6

gkb-seo-mcp-server

by nuppawat6

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
PORTNoPort for HTTP server (default 3000)
GKB_SEO_ROOTNoRoot directory of the GKB SEO project

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
gkb_rules_indexA

Compact table of all 56 rules: code + title + 1-line purpose + category + always_on + NEW v7 fields (intents, atomic_set, output_element). Use first to see what exists.

gkb_rule_detailA

Full text of a single rule by code (R01..R56) + v7 machine metadata (intents, triggers, atomic set + full set members, expected output element). Full text is read from data/rules/rule_texts/.md when migrated; falls back to purpose_1line with a migration note.

gkb_rules_by_purposeA

Filter the 56-rule table by purpose bucket: structure | lexical | EEAT | unique | all. Specific buckets exclude off-topic rules (R31/R32).

gkb_coverage_reportA

Introspection: intent→rules map, rule→intents map, orphan rules (unreachable via any intent), atomic-set integrity, and matcher trigger inventory. Run after ANY edit to data/*.json. v6 had no such tool — which is how 32 of 56 rules stayed unreachable unnoticed.

gkb_smart_orchestrateA

Suggest rules for a heading (retriever+suggester, NOT a decider). v7 contract: matched:false means ZERO candidates + disambiguation_questions (no silent generic set). Atomic sets are served COMPLETE (TABLE_SET incl. R14 outro; STEP/LIST incl. R10 outro). why_matched names the exact trigger tokens. For Sales/homepage sections ALWAYS pass section_role — sales headings are benefit statements with no intent keywords and cannot be classified from text alone. expected_document_shape feeds the writing skill's G42 structure-parity gate.

gkb_preset_forbiddenA

Forbidden Guard — restricted terms + lexical rules (LEX-002/003), payload inlined. Returns records WITH inlined content (v7 payload contract).

gkb_preset_ilgA

ILG Quick Pick — internal-link rules + examples (PI 6.3.034/035), payload inlined. Returns records WITH inlined content (v7 payload contract).

gkb_preset_techB

Tech QA — technical SEO signals. Returns records WITH inlined content (v7 payload contract).

gkb_preset_topicalC

Topical Strategy — topical mapping guidelines. Returns records WITH inlined content (v7 payload contract).

gkb_preset_qualityA

Quality Control — validation + system status. Returns records WITH inlined content (v7 payload contract).

gkb_indexA

Extract metadata from knowledge .md files (GKB_KB_DIR) into gkb_index.jsonl (GKB_INDEX_PATH). v7: clean title extraction — skips markdown noise and AI-conversation openers, prefers the first real heading. The only tool that writes by default; degrades to in-memory with a warning if the index path is not writable.

gkb_manifestA

Summarise the index: totals by family, type, language. PURE READ — result returned in the response (v6 crashed with EPERM trying to write gkb_manifest.json into CWD). Pass persist:true to also snapshot into GKB_OUTPUT_DIR (best-effort, warns on failure).

gkb_queryA

Filter metadata-only records by family/type/tag/keyword/pi_code/id (stateless, no full content).

gkb_micro_queryA

Progressive disclosure: pipe-delimited rows id|family|type|title (~50-100 tokens). Follow with gkb_query or gkb_read_kb_content on the ids you need.

gkb_read_kb_contentB

Read full content from a KB file — v6 contract preserved: {filename, offset, limit} line-based → {content, total_lines, has_more}. v7: filename also accepts a record id (e.g. LEX-002); path resolves via GKB_SEO_ROOT/KB or GKB_KB_DIR (v6 hardcoded __dirname/KB and ignored the env root).

gkb_relateA

Jaccard keyword similarity between one record and the rest of the index.

gkb_validateA

Check all indexed files exist and SHA256 hashes match. PURE READ — returns {ok, missing, hash_mismatches} in the response (v6 crashed writing runlog.json to CWD). persist:true snapshots to GKB_OUTPUT_DIR, best-effort.

gkb_batch_processB

Execute multiple operations in one call — types: query | smart_orchestrate | micro_query | validate | manifest. Response keeps the v6 envelope {summary,results,errors,timestamp}. smart_orchestrate ops accept v7 params (section_role, intent_override, unique_angle, max_intents).

gkb_batch_content_generationA

Orchestrate rules for MULTIPLE headings in one call (whole outline / whole homepage). Each item accepts the full v7 orchestrate params. include_relations:true adds shared-rule analysis across headings (which atomic sets repeat, which intents dominate) — useful for structure variety checks.

gkb_bulk_analysisC

Analyze multiple text targets: mode 'keyword_extraction' (top domain keywords per text), 'rule_mapping' (orchestrate per text = heading), or 'content_analysis' (length + KB keyword overlap). Kept from v6 for compatibility.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/nuppawat6/KmMcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server