Look up people, organisations and things, and their official social media accounts and identifiers.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Optional: Bearer and your Verified Handles API key, to act as your account. Leave it out to read with no key. How to make a key: https://verifiedhandles.org/developers/mcp#keys
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Which public entries list a handle: “is x.com/someone an official account, and whose?”. Give a profile’s address as url (https://x.com/someone), or platform (its catalog id: twitter, instagram, youtube, …) and value (someone or @someone). Answers each entry’s VHID, title and URL, the handle as the entry lists it, and whether that handle is verified; an empty list when no entry lists it. Case is ignored where the platform ignores it. Email addresses are not looked up.
A profile’s address, such as https://x.com/someone. Instead of platform and value.
The handle on that platform, such as someone or @someone.
The platform’s catalog id, such as twitter. With value.
Which public entries list a handle: “is x.com/someone an official account, and whose?”. Give a profile’s address as url (https://x.com/someone), or platform (its catalog id: twitter, instagram, youtube, …) and value (someone or @someone). Answers each entry’s VHID, title and URL, the handle as the entry lists it, and whether that handle is verified; an empty list when no entry lists it. Case is ignored where the platform ignores it. Email addresses are not looked up.
| Argument | Type | Description |
|---|---|---|
| url | string | A profile’s address, such as https://x.com/someone. Instead of platform and value. |
| value | string | The handle on that platform, such as someone or @someone. |
| platform | string | The platform’s catalog id, such as twitter. With value. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"url": {
"type": "string",
"maxLength": 1000,
"minLength": 1,
"description": "A profile’s address, such as https://x.com/someone. Instead of platform and value."
},
"value": {
"type": "string",
"maxLength": 1000,
"minLength": 1,
"description": "The handle on that platform, such as someone or @someone."
},
"platform": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "The platform’s catalog id, such as twitter. With value."
}
}
}Up to 50 entries’ public records in one call, by VHID or short name (not a Wikidata QID: get_entry or search_entries finds an entry by its item), each answered as get_entry answers it signed out — the entry, or not_found — in the order given. A name given twice is answered once.
| Argument | Type | Description |
|---|---|---|
| entries* | array | The entries: each a VHID (11 digits) or a short name. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"entries"
],
"properties": {
"entries": {
"type": "array",
"items": {
"type": "string",
"allOf": [
{
"type": "string",
"pattern": "^(?!\\.{1,2}$)"
},
{
"type": "string",
"pattern": "^[^,]*$"
}
],
"maxLength": 255,
"minLength": 1
},
"maxItems": 50,
"minItems": 1,
"description": "The entries: each a VHID (11 digits) or a short name."
}
}
}One entry, by VHID, short name or Wikidata QID: its public record (title, description, handles, image, URL) and, as `editing`, what the editor would load for this key — the current revision, the editable fields, every handle with who manages it (the Wikidata sync or the site), which fields the sync manages, and whether this key may edit it live. Without an API key, the public record alone.
| Argument | Type | Description |
|---|---|---|
| entry* | string | The entry: its VHID (11 digits), its short name (as in verifiedhandles.org/<short>), or its Wikidata QID (Q42). |
| include_platforms | boolean | Also list every platform a handle can be on (id, name, URL prefix). Needs an API key. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"entry"
],
"properties": {
"entry": {
"type": "string",
"pattern": "^(?!\\.{1,2}$)",
"maxLength": 200,
"minLength": 1,
"description": "The entry: its VHID (11 digits), its short name (as in verifiedhandles.org/<short>), or its Wikidata QID (Q42)."
},
"include_platforms": {
"type": "boolean",
"default": false,
"description": "Also list every platform a handle can be on (id, name, URL prefix). Needs an API key."
}
}
}An entry’s public edit history, newest first (`next_offset` pages on). A merged entry’s key gives its own history.
| Argument | Type | Description |
|---|---|---|
| entry* | string | The entry: its VHID (11 digits), its short name (as in verifiedhandles.org/<short>), or its Wikidata QID (Q42). |
| limit | integer | |
| offset | integer |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"entry"
],
"properties": {
"entry": {
"type": "string",
"pattern": "^(?!\\.{1,2}$)",
"maxLength": 200,
"minLength": 1,
"description": "The entry: its VHID (11 digits), its short name (as in verifiedhandles.org/<short>), or its Wikidata QID (Q42)."
},
"limit": {
"type": "integer",
"default": 50,
"maximum": 200,
"minimum": 1
},
"offset": {
"type": "integer",
"default": 0,
"maximum": 10000,
"minimum": 0
}
}
}Search the entries as the site search does: words match titles, subtitles and descriptions; a Wikidata QID finds the entries linked to it; a VHID finds that entry and the entries that link to it.
| Argument | Type | Description |
|---|---|---|
| limit | integer | |
| query* | string | |
| offset | integer |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"query"
],
"properties": {
"limit": {
"type": "integer",
"default": 20,
"maximum": 50,
"minimum": 1
},
"query": {
"type": "string",
"maxLength": 100,
"minLength": 1
},
"offset": {
"type": "integer",
"default": 0,
"maximum": 10000,
"minimum": 0
}
}
}