Skip to main content
Glama
theseoriddler

Google Knowledge Panel MCP Server

Google Knowledge Panel MCP Server

An open-source MCP server for entity SEO. It lets Claude (or any MCP client) see what Google's Knowledge Graph, the data behind knowledge panels, holds for any brand, person or organization, how that entity connects to the real world, and what it still needs.

Ask things like "Which 'tesla' entity has the strongest knowledge panel presence?" or "Compare HubSpot and Salesforce: what is each entity missing?" and get answers backed by live Google Knowledge Graph and Wikidata data, plus ready-to-paste JSON-LD schema.

google_knowledge_panel_mcp
│
├── find_entities               every entity matched for a name
├── analyze_entity_prominence   which match has the strongest KG presence, and why
├── compare_entities            2-5 entities side by side
└── get_entity                  full profile + readiness checklist + JSON-LD

Contents

Related MCP server: Google Knowledge Graph MCP

What you can do with it

  • Find every entity behind a name. See each Knowledge Graph match for "sara taher" or "tesla", with its ID (/m/0dr90d), type, description and Google's result score.

  • Work out which entity is strongest. Rank same-name entities on a transparent 0–100 prominence score, with a plain-English reason for each.

  • Benchmark competitors. Compare 2–5 brands or people side by side, see who leads on each signal and what each one is missing.

  • Audit one entity. Get its knowledge panel data, real-world connections (founders, CEO, HQ, products, parent company…), official social profiles and an 8-point readiness checklist.

  • Generate schema. Get Organization or Person JSON-LD with sameAs links built from the entity's actual graph data.

Quick start

You need Node.js 18 or newer.

Claude Code:

claude mcp add knowledge-panel -e GOOGLE_KG_API_KEY=your-key-here -- npx -y github:theseoriddler/google_knowledge_panel_mcp

Claude Desktop: open Settings → Developer → Edit Config, add the block below, then restart Claude Desktop.

{
  "mcpServers": {
    "knowledge-panel": {
      "command": "npx",
      "args": ["-y", "github:theseoriddler/google_knowledge_panel_mcp"],
      "env": { "GOOGLE_KG_API_KEY": "your-key-here" }
    }
  }
}

Then ask: "Find every Knowledge Graph entity for 'tesla'. Which one is strongest?"

The API key is optional. Without it the server runs on Wikidata only (see below).

Setup in detail

Without a key the server still works, but uses Wikidata only. That covers well-known entities, but many people and smaller brands exist in Google's Knowledge Graph and not in Wikidata. The key is free.

  1. Open the Google Cloud Console and create or pick a project.

  2. Go to APIs & Services → Library, search for Knowledge Graph Search API and click Enable.

  3. Go to APIs & Services → Credentials → Create credentials → API key.

  4. Click the new key, and under API restrictions restrict it to the Knowledge Graph Search API. The free quota is 100,000 requests/day.

Test the key in a terminal:

curl "https://kgsearch.googleapis.com/v1/entities:search?query=tesla&limit=1&key=YOUR_KEY"

You should get JSON with an itemListElement array.

Mode

What you get

With GOOGLE_KG_API_KEY

Google Knowledge Graph matches, IDs, types, result scores, descriptions, images, detailed descriptions, and all 8 readiness checks, plus Wikidata connections and profiles.

Without a key

Wikidata search, connections, profiles and 5 of the 8 readiness checks. Every result says "source": "Wikidata only…" so you know which mode you're in.

2. Add the server to your MCP client

The server runs over stdio. Every client needs the same three things: the command npx, the args -y github:theseoriddler/google_knowledge_panel_mcp, and the GOOGLE_KG_API_KEY environment variable.

The first run downloads and builds the server, which takes a minute. Later runs are fast.

claude mcp add knowledge-panel -e GOOGLE_KG_API_KEY=your-key-here -- npx -y github:theseoriddler/google_knowledge_panel_mcp

Add --scope user to make it available in every project. Check it with claude mcp list, or /mcp inside a session.

Open Settings → Developer → Edit Config. This opens claude_desktop_config.json:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

Add the server under mcpServers (merge with any servers already there):

{
  "mcpServers": {
    "knowledge-panel": {
      "command": "npx",
      "args": ["-y", "github:theseoriddler/google_knowledge_panel_mcp"],
      "env": { "GOOGLE_KG_API_KEY": "your-key-here" }
    }
  }
}

Fully quit and restart Claude Desktop. The four tools appear under the tools (🔨) menu.

Add to ~/.cursor/mcp.json (all projects) or .cursor/mcp.json (one project):

{
  "mcpServers": {
    "knowledge-panel": {
      "command": "npx",
      "args": ["-y", "github:theseoriddler/google_knowledge_panel_mcp"],
      "env": { "GOOGLE_KG_API_KEY": "your-key-here" }
    }
  }
}

Add to .vscode/mcp.json:

{
  "servers": {
    "knowledge-panel": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "github:theseoriddler/google_knowledge_panel_mcp"],
      "env": { "GOOGLE_KG_API_KEY": "your-key-here" }
    }
  }
}
git clone https://github.com/theseoriddler/google_knowledge_panel_mcp.git
cd google_knowledge_panel_mcp
npm install        # also builds to dist/

Then point your client at:

command: node
args:    /absolute/path/to/google_knowledge_panel_mcp/dist/index.js
env:     GOOGLE_KG_API_KEY=your-key-here

Windows: if your client can't find npx, use "command": "cmd" and "args": ["/c", "npx", "-y", "github:theseoriddler/google_knowledge_panel_mcp"].

3. Check it works

Ask your assistant: "Use find_entities to look up 'nike'." The reply's source field tells you the mode:

  • "Google Knowledge Graph + Wikidata": the API key is working.

  • "Wikidata only (set GOOGLE_KG_API_KEY …)": no key was found. Check the env block and restart the client.

Tools reference

All tools are read-only and return JSON.

find_entities

Find every Knowledge Graph entity associated with a name, highest Google result score first.

Input

Type

Default

Description

query

string

required

Name to search, e.g. "tesla" or "sara taher"

limit

number (1–20)

10

Max entities to return

language

string

"en"

Language code, e.g. "fr"

types

string[]

–

Only these schema.org types, e.g. ["Person"] (Google results only)

Returns each match's id, name, types, description, resultScore and a googleUrl (https://www.google.com/search?kgmid=…) that opens its knowledge panel.

analyze_entity_prominence

Rank the entities matched for a name by how strong their Knowledge Graph presence is.

Inputs: same as find_entities.

Returns:

  • strongest: the winner, its prominence score, its leadOverNext in points, and the reason. If Google's own top result differs, a note says so.

  • ranking: every match with rank, prominence, reason and the raw signals.

  • method: how the score was calculated.

"strongest": {
  "name": "Tesla",
  "id": "Q478214",
  "prominence": 96,
  "leadOverNext": 28,
  "reason": "105 Wikipedia editions; 322 Wikidata statements; 7 official profiles"
}

compare_entities

Compare 2–5 entities side by side.

Input

Type

Default

Description

entities

string[] (2–5)

required

Knowledge Graph IDs (/m/0dr90d), Wikidata IDs (Q478214) or names ("hubspot")

language

string

"en"

Language code

A name resolves to an exact-name match on Google, then on Wikidata, then Google's top result. For same-name entities, pass IDs from find_entities.

Returns:

  • leaders: who leads on prominence, readiness, Wikipedia editions, Wikidata statements and official profiles.

  • entities: per entity, prominence, readiness, missing (failed checks), key facts, keyConnections (founder, CEO, HQ, industry, parent…) and profiles.

get_entity

The full profile of one entity. Pass an id for a specific entity, or a query to profile the top match.

Input

Type

Default

Description

id

string

–

Knowledge Graph ID (/m/0dr90d, /g/11…) or Wikidata ID (Q478214)

query

string

–

Name to search; the top match is profiled

limit

number (1–20)

10

Max otherMatches to return

language

string

"en"

Language code

types

string[]

–

Only these schema.org types

Returns:

Field

Contents

entity

Name, types, description, detailedDescription (text + source), image, official website, Knowledge Graph ID, googleUrl, Wikidata and Wikipedia links

entity.facts

Founded, dissolved, birth/death dates, employees, official website

entity.connections

Founders, CEO, chairperson, HQ, country, industry, products, parent organization, subsidiaries, owners, occupation, employer, education, awards, notable works and more

entity.profiles

X, Facebook, Instagram, LinkedIn, YouTube, TikTok, GitHub, Crunchbase

readiness

Score, basis and each checklist item

jsonLd

Ready-to-paste schema.org markup

otherMatches

The other entities that matched the query

Example jsonLd for /m/0dr90d:

{
  "@context": "https://schema.org",
  "@type": "Organization",
  "@id": "https://www.tesla.com/#organization",
  "name": "Tesla",
  "description": "American automotive, energy storage and solar power company",
  "url": "https://www.tesla.com/",
  "logo": "https://commons.wikimedia.org/wiki/Special:FilePath/Tesla%20Motors.svg",
  "sameAs": [
    "https://en.wikipedia.org/wiki/Tesla,_Inc.",
    "https://www.wikidata.org/wiki/Q478214",
    "https://www.google.com/search?kgmid=%2Fm%2F0dr90d",
    "https://x.com/Tesla",
    "https://www.linkedin.com/company/tesla-motors/",
    "https://github.com/teslamotors"
  ]
}

Wrap it in <script type="application/ld+json">…</script> on your homepage (Organization) or about page (Person).

The readiness checklist

get_entity and compare_entities score each entity on 8 checks:

Check

Why it matters

Has a Google Knowledge Graph entry

Google has recognised the entity

Has a Google description

The short line under the panel title

Linked to a detailed source (e.g. Wikipedia)

The longer panel description and its source

Has an entity image

Panels with an image are more complete

Has an official website

Anchors the entity to a domain you control

Has a Wikidata item

The main open source Google cross-references

Has a Wikipedia article

The strongest single notability signal

Has 2+ linked official profiles (sameAs)

Confirms which social accounts belong to the entity

The readiness score is the share of checks passed. The three Google checks are skipped ("passed": null) without an API key, and the score uses the remaining five.

How prominence is scored

The prominence score is a transparent 0–100 heuristic, not a Google metric:

Signal

Weight

Full marks at

Google result score, relative to the top match

40

top match

Knowledge panel fields (description, detailed source, image, website)

20

all 4

Wikipedia language editions

20

100+

Wikidata statements

10

1,000+

Linked official profiles

10

5+

Wikipedia editions and Wikidata statements are scored on a log scale, so going from 0 to 10 counts for more than going from 90 to 100.

Signals that aren't available are left out and the rest re-weighted. compare_entities leaves out Google's result score, because it's only comparable within one search. Google signals are also skipped without an API key.

Example prompts and workflows

Quick lookups

  • "Find every Knowledge Graph entity for 'sara taher'. Which one is strongest?"

  • "Which 'tesla' entity has the strongest Knowledge Graph presence, and why?"

  • "Get the full profile of /m/0dr90d, including its connections."

  • "Generate Organization schema for Nike from its knowledge graph data."

Personal brand audit

  1. "Find every Knowledge Graph entity for '[your name]'." Does Google have an entity for you? Is another person with the same name stronger?

  2. "Get the full profile of [your entity ID]." Review the readiness checklist.

  3. "What should I do first to fix the failed checks?" Typical fixes: a Wikidata item, linked social profiles, and Person schema on your site.

  4. "Give me the JSON-LD for my about page."

Competitor benchmark

  • "Compare HubSpot, Salesforce and Zoho. Who has the strongest entity, and what is each missing?"

  • "Compare /m/0dr90d and Q1428953." (two entities with the same name: Tesla the company and Tesla the band)

Disambiguation

  • "Find all 'Apple' entities of type Organization."

  • "Which 'Mercury' entity would Google most likely show a panel for?"

Data sources and limits

  • Google Knowledge Graph Search API supplies entity IDs, types, descriptions, images and result scores. It is the same graph behind knowledge panels, but it doesn't return everything a panel shows (reviews, "people also search for", etc.).

  • Wikidata supplies connections, facts, official profiles and Wikipedia coverage. The server finds an entity's Wikidata item through its Knowledge Graph ID (Freebase P646 for /m/… IDs, P2671 for /g/… IDs). If an entity has no Wikidata item, those sections are empty. Adding one is one of the most effective ways to strengthen an entity.

  • resultScore is Google's raw match score for that search. It's only meaningful relative to other results for the same query.

  • Google's search doesn't always return the obvious entity. For example, salesforce returns Salesforce Marketing Cloud, not Salesforce, Inc. compare_entities works around this by preferring exact name matches and checking Wikidata. With the other tools, use find_entities and pass the right ID.

  • Connections show current values only. Statements with an end date (a former CEO, say) and deprecated statements are dropped. Up to 10 values per property are returned.

  • Review the JSON-LD before publishing. Check the URL, logo and sameAs links, and add anything missing.

This project isn't affiliated with or endorsed by Google.

Troubleshooting

Problem

Fix

Results say "Wikidata only" though you set a key

The client isn't passing the env var. Check the env block spelling (GOOGLE_KG_API_KEY) and fully restart the client.

Google Knowledge Graph API error (HTTP 403)

The Knowledge Graph Search API isn't enabled for the key's project, or the key's restrictions block it.

Google Knowledge Graph API error (HTTP 400)

The key is invalid or mistyped.

HTTP 429

Quota exceeded (100,000/day by default).

Tools don't appear

Run npx -y github:theseoriddler/google_knowledge_panel_mcp in a terminal. It should start and wait silently (Ctrl+C to exit). If it errors, check node -v is 18+.

First start times out

The first run downloads and builds the server. Run the npx command once in a terminal, then restart the client.

found: false with closeMatches

Without a key, only exact Wikidata name matches are profiled. Pass one of the closeMatches IDs, or add an API key.

Wrong entity profiled

Run find_entities and pass the exact id to get_entity.

Development

git clone https://github.com/theseoriddler/google_knowledge_panel_mcp.git
cd google_knowledge_panel_mcp
npm install        # installs and builds to dist/
npm run build      # recompile after editing src/
npm test           # builds, starts the server and calls every tool against live data

Set GOOGLE_KG_API_KEY before npm test to include Google results. SMOKE_LIMIT=2000 npm test prints more of each response.

To try the tools interactively, use the MCP Inspector:

npx @modelcontextprotocol/inspector node dist/index.js

Project layout:

src/index.ts          MCP server and tool definitions
src/knowledge.ts      Google KG + Wikidata lookups, scoring, JSON-LD
scripts/smoke-test.mjs  end-to-end test over stdio

Contributing

Issues and pull requests are welcome. Run npm test before submitting.

License

MIT

Available Tools

4 tools
analyze_entity_prominenceAnalyze entity prominenceA
Read-only

Analyze the entities matched for a name and determine which has the strongest Knowledge Graph presence. Ranks them on a transparent 0-100 prominence score combining Google's result score, knowledge panel completeness, Wikipedia coverage, Wikidata depth, and linked official profiles, with a plain-English reason for each. Google data needs GOOGLE_KG_API_KEY; without it, results come from Wikidata only.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of entities to return.
queryYesName to search, e.g. "tesla" or "sara taher".
typesNoOnly return these schema.org types (Google results only), e.g. ["Organization"] or ["Person"].
languageNoLanguage code, e.g. "en", "fr".en

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, so the description usefully adds that the output is a transparent 0-100 prominence score combining Google result score, knowledge panel completeness, Wikipedia coverage, Wikidata depth, and linked official profiles, plus a plain-English reason for each. It also discloses the API-key dependency and Wikidata-only fallback, though it omits rate limits, pagination, or score stability details.

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

Conciseness5/5

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

The description uses three sentences: the first front-loads the purpose, the second explains the scoring methodology, and the third states the prerequisite. Each sentence earns its place with no redundant or vague filler.

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 a read-only analysis tool with 100% schema coverage and no output schema, the description covers the important behavioral context: score composition, plain-English reasoning, and data-source fallback. It could say more about the exact return shape, but the key gaps are closed well enough for an agent to call it correctly.

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 100%, with query, limit, types, and language all documented in the schema. The description adds no meaningful parameter semantics beyond what the schema already states, so the baseline score of 3 is appropriate.

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

Purpose4/5

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

States a specific verb ('Analyze') and resource ('entity prominence') and explains the outcome: determining which entity matched for a name has the strongest Knowledge Graph presence. It is distinguishable from get_entity and compare_entities by its ranking focus, but does not explicitly name a sibling tool for contrast.

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?

The description implies usage by describing the analysis and ranking it performs, and it supplies a key prerequisite: Google data requires GOOGLE_KG_API_KEY, otherwise results come from Wikidata only. However, it gives no explicit when-to-use or when-not-to-use guidance relative to find_entities, compare_entities, or get_entity.

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

compare_entitiesCompare entitiesA
Read-only

Compare 2-5 entities side by side: types, descriptions, prominence and readiness scores, what each is missing, key facts and connections, and official profiles. Use it for same-name entities (pass their IDs from find_entities) or for competitors (pass names like "hubspot" and "salesforce"). Google data needs GOOGLE_KG_API_KEY; without it, results come from Wikidata only.

ParametersJSON Schema
NameRequiredDescriptionDefault
entitiesYesEntities to compare: Knowledge Graph IDs ("/m/0dr90d"), Wikidata IDs ("Q478214"), or names (a name resolves to its top match).
languageNoLanguage code, e.g. "en", "fr".en

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already establish readOnlyHint and openWorldHint, so the bar is lower. The description adds real behavioral context beyond them: the external Google KG dependency, the required API key, and that results silently narrow to Wikidata when it is absent. It does not describe result sizing beyond the 2-5 input bound.

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?

Front-loaded with the comparison scope and the compared dimensions, then the usage patterns, then the auth caveat. Two dense sentences with no filler, though the enumerated dimension list is long enough to slightly dilute the core action.

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

Completeness5/5

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

With no output schema, the description usefully previews what comes back (types, scores, gaps, facts, connections, profiles). Combined with input formats, cardinality, use-case routing, and the API-key fallback, an agent can select and invoke this correctly without further inference.

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

Parameters4/5

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

Schema coverage is 100%, so the accepted ID formats (KG IDs, Wikidata IDs, names) are already documented in the schema. The description nonetheless reinforces name-resolution semantics with concrete examples ('hubspot', 'salesforce') and cross-references find_entities as the ID source, adding practical value over the schema alone.

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 (compare) and resource (entities) with an explicit 2-5 cardinality, then enumerates exactly what is compared: types, descriptions, prominence/readiness scores, gaps, key facts, connections, and profiles. This distinguishes it from siblings like get_entity or analyze_entity_prominence.

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

Usage Guidelines5/5

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

Gives two concrete use cases with the exact argument pattern for each: same-name entities by passing IDs 'from find_entities', competitors by passing names like "hubspot" and "salesforce". It also states a prerequisite (GOOGLE_KG_API_KEY) and the degraded fallback behavior, so the agent knows when the tool will under-deliver.

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

find_entitiesFind entitiesA
Read-only

Find all Knowledge Graph entities associated with a name (the entities behind Google's knowledge panels). Returns each match's Knowledge Graph ID, type, description, and Google's result score, highest first. Google data needs GOOGLE_KG_API_KEY; without it, results come from Wikidata only.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of entities to return.
queryYesName to search, e.g. "tesla" or "sara taher".
typesNoOnly return these schema.org types (Google results only), e.g. ["Organization"] or ["Person"].
languageNoLanguage code, e.g. "en", "fr".en

TDQS

A3.7/5.0
Behavior4/5

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

Annotations cover safety (readOnlyHint, openWorldHint), and the description adds genuinely new behavior: results are sorted by Google's result score highest-first, and there is a credentialed path (GOOGLE_KG_API_KEY) versus a degraded Wikidata-only fallback without it. That auth/degradation disclosure is exactly the kind of context annotations cannot carry.

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?

Three tight sentences, front-loaded with the core purpose and return fields followed by the auth caveat. No filler, though the parenthetical definition could be tightened slightly.

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?

With no output schema, the description compensates by naming the returned fields, and it discloses the auth-dependent data source. An agent can call this correctly and interpret the ranking. Only the Wikidata fallback's effect on field availability is left implicit.

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 100%, so limit, query, types, and language are already fully documented in the schema, setting the baseline at 3. The description reinforces result ordering and the Google-only nature of typed results but adds no syntax or format detail beyond what the schema states.

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

Purpose4/5

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

States a specific verb+resource ("Find all Knowledge Graph entities") and clarifies the concept as "the entities behind Google's knowledge panels." It also enumerates the returned fields, which makes the tool's scope obvious. It does not explicitly name how it differs from siblings like get_entity, so it falls short of a 5.

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?

Usage is implied by "associated with a name" (a name-based lookup, versus the ID-based get_entity), but no alternatives are named and there is no explicit when-to-use/when-not guidance. The auth-fallback note gives operational context but not routing guidance.

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

get_entityGet entityA
Read-only

Full profile of one entity: description, detailed description, image, official site, Wikipedia/Wikidata links, facts, real-world connections (founders, CEO, HQ, products, parent company...), official social profiles, an entity-readiness checklist, and ready-to-paste JSON-LD schema. Pass an id for a specific entity, or a query to profile the top match. Google data needs GOOGLE_KG_API_KEY; without it, results come from Wikidata only.

ParametersJSON Schema
NameRequiredDescriptionDefault
idNoA Knowledge Graph ID ("/m/0dr90d", "/g/11...") or a Wikidata ID ("Q478214").
limitNoMaximum number of entities to return.
queryNoName to search, e.g. "tesla" or "sara taher".
typesNoOnly return these schema.org types (Google results only), e.g. ["Organization"] or ["Person"].
languageNoLanguage code, e.g. "en", "fr".en

TDQS

A3.9/5.0
Behavior4/5

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

Annotations cover read-only and open-world safety, so the bar is lower, and the description still adds genuine behavioral context: an API-key requirement and, crucially, degraded results (Wikidata only) without it. That fallback behavior is exactly the kind of trait an agent needs and is not present in the schema or annotations.

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 long opening enumeration is front-loaded and justified because no output schema exists, and the two follow-up sentences (usage mode, auth caveat) each earn their place. It is dense but not padded.

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?

With no output schema, the description must carry return-value disclosure and it does so thoroughly, plus the auth/fallback caveat. Annotations handle the safety profile. Only minor gaps remain, such as not noting the limit parameter's relevance to query-based lookups.

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 100%, so all five parameters are already documented; baseline is 3. The description adds the id-vs-query selection semantics (query returns the top match) but says nothing about limit, types, or language beyond what the schema provides.

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

Purpose4/5

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

Starts with a specific verb+resource ("Full profile of one entity") and enumerates the return contents (description, facts, connections, JSON-LD, etc.), which is unusually concrete. It doesn't explicitly name find_entities as the sibling it complements, but the 'id for a specific entity, or a query to profile the top match' framing distinguishes its single-entity profiling role.

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

Usage Guidelines4/5

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

States clearly when to pass an id (specific entity) versus a query (top match to profile), which is real selection guidance for the two main parameters. It also discloses the GOOGLE_KG_API_KEY requirement and the Wikidata-only fallback. It stops short of naming find_entities/compare_entities as the alternatives for other tasks.

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

Tool Schema Changelog

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

  1. 4 tool updatesv0.1.0
    • First observedanalyze_entity_prominence
    • First observedcompare_entities
    • First observedfind_entities
    • First observedget_entity

TDQS

A4/5.0

Scored across 4 tools

Disambiguation4/5

Tools are mostly distinct: find_entities for discovery, analyze_entity_prominence for ranking, compare_entities for side-by-side comparison, and get_entity for full profiles. However, find_entities and analyze_entity_prominence both take a name and return entities, which could cause slight confusion if an agent just wants entity matches without prominence scoring.

Naming Consistency4/5

All names use snake_case and follow a verb_noun pattern (find_entities, analyze_entity_prominence, compare_entities, get_entity). The only minor deviation is analyze_entity_prominence, which adds a qualifier to the noun, but it remains predictable and readable.

Tool Count5/5

Four tools is well-scoped for a focused read-only domain; each tool has a clear purpose and no tool feels redundant. It covers discovery, analysis, comparison, and detail without bloat.

Completeness4/5

The set covers the main lifecycle: finding entities, assessing prominence, comparing, and retrieving full profiles with readiness checklists. Minor gaps exist, such as searching by entity type or domain, but these are not critical for the stated purpose.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    Unifies traditional SEO and Generative Engine Optimization (GEO) for Google, Bing, Yandex, and major LLMs, providing tools for search performance analysis, citation tracking, on-page audits, and internal link graph analysis.
    36
    3
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Enables searching Google's Knowledge Graph for real-world entities via two tools: search by query or lookup by Machine ID, returning structured data including entity types, descriptions, and URLs.
    2
    43 npm
    11
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables querying Google Search Console and Google Analytics 4 through natural language, with tools for SEO analysis like anomaly detection, cannibalization detection, and opportunity scoring.
    16 npm
    1
    MIT
  • -
    license
    Not graded
    quality
    C
    maintenance
    Enables AI assistants to perform comprehensive SEO and GEO measurements, including site audits, keyword research, ranking tracking, and brand visibility analysis across search engines and generative AI platforms.
    -