Wikidata + Google Knowledge Graph MCP

Read-only Wikidata tools and identity evidence. Local optional Google KG; bounded public remote.

Should I use this

Quality & Safety

B
Description quality
93%
Schema completeness
68%
Naming quality
80%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Findings (2)

  • LOWTool 'kg_entity' description lacks action verbin kg_entity
  • LOWTool 'kg_lookup_entities' description lacks action verbin kg_lookup_entities

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,947Tokens (tool definitions)
~2.1 KBTypical response size
Moderate attention impact (1.52% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "wikidata-google-knowledge-mcp": {
      "command": "uvx",
      "args": [
        "wikidata-google-knowledge-mcp"
      ]
    }
  }
}

Runnable packages

pypiwikidata-google-knowledge-mcp0.3.0stdio

Remote endpoints

https://wikidata-knowledge-mcp.revanalex.workers.dev/mcpstreamable-http

What it can do

Tool inventory

Tools (8)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢kg_search(query, place, type, lang, limit, ...)

Wikidata entity candidates by name, with local place/type filtering. Default 3, maximum 5 candidates. Google and fallback are disabled remotely.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "title": "Query",
      "type": "string",
      "maxLength": 512
    },
    "place": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 512
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Place"
    },
    "type": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 512
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Type"
    },
    "lang": {
      "default": "en",
      "title": "Lang",
      "type": "string",
      "maxLength": 512
    },
    "limit": {
      "anyOf": [
        {
          "type": "integer",
          "minimum": 1,
          "maximum": 5
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Limit"
    },
    "provider": {
      "default": "wikidata",
      "title": "Provider",
      "type": "string",
      "maxLength": 512,
      "enum": [
        "wikidata",
        "google"
      ]
    },
    "fallback": {
      "default": false,
      "title": "Fallback",
      "type": "boolean"
    }
  },
  "required": [
    "query"
  ],
  "title": "kg_searchArguments",
  "additionalProperties": false
}
🟢kg_entity(id, props, evidence, lang)

Selected compact facts for one Wikidata QID. At most 12 properties and 3 evidence properties with ranks, qualifiers and references.

Input Schema

{
  "type": "object",
  "properties": {
    "id": {
      "title": "Id",
      "type": "string",
      "maxLength": 512
    },
    "props": {
      "anyOf": [
        {
          "items": {
            "type": "string",
            "maxLength": 512
          },
          "type": "array",
          "maxItems": 12
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Props"
    },
    "evidence": {
      "anyOf": [
        {
          "items": {
            "type": "string",
            "maxLength": 512
          },
          "type": "array",
          "maxItems": 3
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Evidence"
    },
    "lang": {
      "default": "en",
      "title": "Lang",
      "type": "string",
      "maxLength": 512
    }
  },
  "required": [
    "id"
  ],
  "title": "kg_entityArguments",
  "additionalProperties": false
}
🟢kg_related(id, prop, inverse, hierarchy, depth, ...)

Bounded outgoing, inverse or hierarchy relationships for one Wikidata QID. Maximum depth 2 and 10 results.

Input Schema

{
  "type": "object",
  "properties": {
    "id": {
      "title": "Id",
      "type": "string",
      "maxLength": 512
    },
    "prop": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 512
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Prop"
    },
    "inverse": {
      "default": false,
      "title": "Inverse",
      "type": "boolean"
    },
    "hierarchy": {
      "default": false,
      "title": "Hierarchy",
      "type": "boolean"
    },
    "depth": {
      "anyOf": [
        {
          "type": "integer",
          "minimum": 1,
          "maximum": 2
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Depth"
    },
    "limit": {
      "anyOf": [
        {
          "type": "integer",
          "minimum": 1,
          "maximum": 10
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Limit"
    },
    "lang": {
      "default": "en",
      "title": "Lang",
      "type": "string",
      "maxLength": 512
    }
  },
  "required": [
    "id"
  ],
  "title": "kg_relatedArguments",
  "additionalProperties": false
}
🟢kg_resolve(name, kind, city, country, latitude, ...)

Canonical deterministic resolution of one identity from supplied local facts and Wikidata evidence. Returns identity verdicts and reason codes, including uncertainty. Google is disabled remotely.

Input Schema

{
  "type": "object",
  "properties": {
    "name": {
      "title": "Name",
      "type": "string",
      "maxLength": 512
    },
    "kind": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 512
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Kind"
    },
    "city": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 512
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "City"
    },
    "country": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 512
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Country"
    },
    "latitude": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Latitude"
    },
    "longitude": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Longitude"
    },
    "address": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 512
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Address"
    },
    "official_url": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 512
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Official Url"
    },
    "aliases": {
      "anyOf": [
        {
          "items": {
            "type": "string",
            "maxLength": 512
          },
          "type": "array",
          "maxItems": 8
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Aliases"
    },
    "venue": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 512
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Venue"
    },
    "event_date": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 512
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Event Date"
    },
    "organizer": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 512
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Organizer"
    },
    "role": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 512
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Role"
    },
    "occupation": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 512
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Occupation"
    },
    "affiliation": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 512
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Affiliation"
    },
    "creator": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 512
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Creator"
    },
    "year": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Year"
    },
    "existing_wikidata_qid": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 512
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Existing Wikidata Qid"
    },
    "existing_google_kg_id": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 512
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Existing Google Kg Id"
    },
    "lang": {
      "default": "en",
      "title": "Lang",
      "type": "string",
      "maxLength": 512
    },
    "explain": {
      "default": false,
      "title": "Explain",
      "type": "boolean"
    }
  },
  "required": [
    "name"
  ],
  "title": "kg_resolveArguments",
  "additionalProperties": false
}
🟢kg_audit_identity(envelope, max_candidates, refresh, google_crosscheck)

Canonical audit of one existing Wikidata QID against one local identity envelope. Returns contradictions, evidence and uncertainty. Provider agreement is not local identity proof. Google crosscheck is disabled remotely.

Input Schema

{
  "type": "object",
  "properties": {
    "envelope": {
      "additionalProperties": true,
      "title": "Envelope",
      "type": "object"
    },
    "max_candidates": {
      "default": 3,
      "title": "Max Candidates",
      "type": "integer",
      "minimum": 1,
      "maximum": 5
    },
    "refresh": {
      "default": false,
      "title": "Refresh",
      "type": "boolean"
    },
    "google_crosscheck": {
      "default": false,
      "title": "Google Crosscheck",
      "type": "boolean"
    }
  },
  "required": [
    "envelope"
  ],
  "title": "kg_audit_identityArguments",
  "additionalProperties": false
}
🟢kg_discover_identity(envelope, max_candidates, refresh, google_crosscheck)

Canonical discovery of one identity from a local evidence envelope. Default 3, maximum 5 candidates. Returns ambiguity and insufficient-evidence states; sameAs candidates are unapproved. Google crosscheck is disabled remotely.

Input Schema

{
  "type": "object",
  "properties": {
    "envelope": {
      "additionalProperties": true,
      "title": "Envelope",
      "type": "object"
    },
    "max_candidates": {
      "default": 3,
      "title": "Max Candidates",
      "type": "integer",
      "minimum": 1,
      "maximum": 5
    },
    "refresh": {
      "default": false,
      "title": "Refresh",
      "type": "boolean"
    },
    "google_crosscheck": {
      "default": false,
      "title": "Google Crosscheck",
      "type": "boolean"
    }
  },
  "required": [
    "envelope"
  ],
  "title": "kg_discover_identityArguments",
  "additionalProperties": false
}
🟢kg_lookup_entities(qids, fields, lang, refresh)

Compact selected Wikidata facts for at most 10 supplied QIDs. Fact lookup does not establish local identity.

Input Schema

{
  "type": "object",
  "properties": {
    "qids": {
      "items": {
        "type": "string",
        "maxLength": 512
      },
      "title": "Qids",
      "type": "array",
      "maxItems": 10
    },
    "fields": {
      "anyOf": [
        {
          "items": {
            "type": "string",
            "maxLength": 512
          },
          "type": "array",
          "maxItems": 12
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Fields"
    },
    "lang": {
      "default": "en",
      "title": "Lang",
      "type": "string",
      "maxLength": 512
    },
    "refresh": {
      "default": false,
      "title": "Refresh",
      "type": "boolean"
    }
  },
  "required": [
    "qids"
  ],
  "title": "kg_lookup_entitiesArguments",
  "additionalProperties": false
}
🟢kg_status

Public remote provider configuration and operational limits. No external provider calls. Wikidata is available; Google Knowledge Graph is disabled.

Input Schema

{
  "type": "object",
  "properties": {},
  "title": "kg_statusArguments",
  "additionalProperties": false
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded8 tools