Skip to main content
Glama
Rachit8484

geoseo-mcp

by Rachit8484

suggest_internal_links

Generates top-K internal link suggestions for pages in a folder, excludes existing and self-links, and returns anchor hints to guide link placement.

Instructions

Suggest top-K internal links to add to each page in a folder.

By default uses TF-IDF cosine similarity over <title>, headings, meta description and body text (offline, free). Set mode to "openai" (text-embedding-3-small), "gemini" (gemini-embedding-001) or "local" (sentence-transformers) for embedding similarity; model overrides the default model. Vectors are cached in SQLite by content hash, so re-runs are cheap. Excludes links the source already has, plus the page itself. Returns suggestions for page only if provided, otherwise for every page.

Each suggestion includes a cheap anchor_hint derived from terms shared between source headings and target title.

Input Schema

NameRequiredDescriptionDefault
modeNotfidf
pageNo
limitNo
modelNo
top_kNo
folderYes
patternNo*.html
site_hostNo

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changedv0.4.0
    • addedInput schema / properties / mode
      Added value: +{
      +  "default": "tfidf",
      +  "type": "string"
      +}
    • addedInput schema / properties / model
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null
      +}
  2. First observedv0.3.0

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden and does well: it discloses the default algorithm, the embedding alternatives, SQLite caching by content hash so re-runs are cheap, and that already-existing links plus self-links are excluded. It omits prerequisites such as API key requirements or cost for the openai/gemini modes.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core action and scope are front-loaded in the first line, followed by mode behavior and output detail in a logical order. A few clauses, such as the anchor_hint sentence, are useful but push toward the verbose side.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 8-parameter tool, the description covers the essential call path (folder, mode, page scope, top-K) and return semantics are handled by the existing output schema. The gaps are the secondary parameters limit, pattern, and site_host, which an agent cannot infer at all.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, and it only partially does. It explains mode, model, folder scoping, top_k, and the page filter, but leaves limit, pattern, and site_host entirely undefined in both schema and prose.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (suggest) and resource (internal links) with explicit scope: top-K links to add per page in a folder. This is clearly distinguishable from graph-oriented siblings like internal_link_graph, since it produces actionable suggestions rather than an analysis of existing links.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explains the default approach and lists the alternative mode values with their models, which implies when to switch to embeddings. But it never says when to prefer this tool over internal_link_graph, nor are there exclusions or cost trade-off guidance beyond 'offline, free' for the default.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.