Share Link Resolver
Turn a public share link into its files or a social canonical link, with direct URLs and hand-off.
Sollte ich dies verwenden
Qualität und Sicherheit
Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.
Kontextkosten
Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.
Installieren
Installation mit einem Klick
Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:
{
"mcpServers": {
"sharelink": {
"url": "https://sharelink.openkrill.app/mcp"
}
}
}Remote-Endpunkte
https://sharelink.openkrill.app/mcpstreamable-httpWas es kann
Tool-Inventar
Tools (5)
🟢resolve_share_link(url, password)
Use this when the user pastes a cloud drive share link (Google Drive, Baidu Netdisk 百度网盘) or a social post link (YouTube, X or Twitter, Reddit, TikTok, Pinterest, Instagram, Threads, Facebook, LinkedIn, Telegram, Bilibili) and wants the files, a direct download or the canonical link. Pass `url`, or the whole share message; `password` is the Baidu extraction code (提取码) when sent apart from the link. A drive link returns its files with name, size and date, and Google Drive a direct_url with ready curl, aria2c and Aria2 or Motrix hand-off. A social link returns canonical_url: the platform's own form of the link, tracking parameters dropped, short links followed once. Public links only; private files are refused. Nothing stored.
Eingabe-Schema
{
"type": "object",
"properties": {
"url": {
"type": "string",
"minLength": 8,
"maxLength": 2048,
"description": "The share link as the owner sent it, such as https://drive.google.com/file/d/<id>/view or https://pan.baidu.com/s/1<code>?pwd=abcd."
},
"password": {
"description": "The share's extraction code (Baidu 提取码), when the owner sent one apart from the link. A pwd= in the link is read on its own.",
"type": "string",
"maxLength": 32
}
},
"required": [
"url"
],
"additionalProperties": false,
"examples": [
{
"url": "https://drive.google.com/file/d/1oRRGuq_eDWEjauZZmowLu4m_57W3xqCc/view?usp=sharing"
}
]
}Ausgabe-Schema
{
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"ok",
"need_password",
"wrong_password",
"not_found",
"private",
"quota",
"unsupported",
"unavailable"
]
},
"provider": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "The registry id of the drive, such as google_drive or baidu."
},
"title": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"canonical_url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "The link in the provider's own canonical form, read from a social share link or a short link's redirect. Null for a drive share, which resolves to files instead."
},
"message": {
"type": "string",
"description": "One plain sentence on what was found or what to do next."
},
"download": {
"type": "string",
"enum": [
"direct",
"sign_in_required",
"none"
],
"description": "direct: direct_url works with curl. sign_in_required: the drive lists the files but serves bytes only to a signed-in account."
},
"files": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"path": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "The path inside the share, for drives that show one."
},
"is_folder": {
"type": "boolean"
},
"size_bytes": {
"anyOf": [
{
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
},
"modified": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "ISO 8601 time the drive reports, when it reports one."
},
"open_url": {
"type": "string",
"description": "Where the file or folder opens at the drive."
},
"direct_url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "A URL that downloads the bytes with no sign-in, or null when the drive needs a signed-in account."
},
"handoff": {
"anyOf": [
{
"type": "object",
"properties": {
"curl": {
"type": "string",
"description": "A curl command that saves the file under its own name."
},
"aria2c": {
"type": "string",
"description": "An aria2c command line with 4 connections."
},
"aria2_rpc": {
"type": "object",
"properties": {
"jsonrpc": {
"type": "string",
"const": "2.0"
},
"id": {
"type": "string"
},
"method": {
"type": "string",
"const": "aria2.addUri"
},
"params": {
"type": "array",
"items": {}
}
},
"required": [
"jsonrpc",
"id",
"method",
"params"
],
"additionalProperties": false,
"description": "The aria2 JSON-RPC body to POST to a running aria2 (default http://localhost:6800/jsonrpc) or to Motrix (http://localhost:16800/jsonrpc)."
}
},
"required": [
"curl",
"aria2c",
"aria2_rpc"
],
"additionalProperties": false
},
{
"type": "null"
}
],
"description": "Ready commands for curl, aria2c and Aria2 or Motrix RPC, when direct_url is set."
}
},
"required": [
"name",
"path",
"is_folder",
"size_bytes",
"modified",
"open_url",
"direct_url",
"handoff"
],
"additionalProperties": false
}
},
"truncated": {
"type": "boolean",
"description": "True when the share holds more entries than the answer lists."
},
"as_of": {
"type": "string",
"description": "ISO 8601 time the data was published by its source or fetched from it. A cached answer keeps the time of its fetch."
},
"source": {
"type": "object",
"description": "Who the data comes from, to cite and to check it against.",
"properties": {
"name": {
"type": "string"
},
"url": {
"type": "string"
}
},
"required": [
"name",
"url"
]
}
},
"required": [
"status",
"provider",
"title",
"canonical_url",
"message",
"download",
"files",
"truncated",
"as_of",
"source"
],
"additionalProperties": false
}🟢list_share_providers
Use this to see which drives and social platforms resolve_share_link supports before calling it, or when the user asks which links work. Returns one record per provider (id, kind, hosts, link examples, the public interface read, auth need, whether a direct URL is returned, last verified date) and the rules every adapter keeps.
Eingabe-Schema
{
"type": "object",
"properties": {},
"additionalProperties": false,
"examples": [
{}
]
}Ausgabe-Schema
{
"type": "object",
"properties": {
"providers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"kind": {
"type": "string",
"enum": [
"drive",
"social"
],
"description": "drive: the link holds files, which the answer lists. social: a post or video link, which the answer turns into its canonical URL."
},
"name": {
"type": "string"
},
"hosts": {
"type": "array",
"items": {
"type": "string"
}
},
"link_examples": {
"type": "array",
"items": {
"type": "string"
}
},
"endpoint": {
"type": "string",
"description": "The provider's public interface the adapter reads."
},
"auth_need": {
"type": "string",
"enum": [
"none",
"share_code",
"provider_sign_in"
],
"description": "What the person needs for a direct download: nothing, the share code, or their own sign-in."
},
"direct_download": {
"type": "boolean",
"description": "True when the web tool and MCP return a direct URL; false when they only list the files."
},
"folders": {
"type": "boolean"
},
"surfaces": {
"type": "array",
"items": {
"type": "string",
"enum": [
"web",
"mcp",
"userscript"
]
}
},
"last_verified": {
"type": "string",
"description": "The day a real public link last resolved through this adapter (YYYY-MM-DD)."
},
"notes": {
"type": "string"
}
},
"required": [
"id",
"kind",
"name",
"hosts",
"link_examples",
"endpoint",
"auth_need",
"direct_download",
"folders",
"surfaces",
"last_verified",
"notes"
],
"additionalProperties": false
}
},
"rules": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"providers",
"rules"
],
"additionalProperties": false
}🟡submit_feedback(kind, message, tool, error)
Send feedback, a bug report or a tool request to the maintainers of the tools on this server: a missing tool, missing or stale data, or a tool that broke or gave a wrong answer. Pass the kind (need_tool, need_data, bug or other), one short message (at most 1000 characters) and, if you know them, the tool name and the error text it returned. Returns a ticket id. Feedback is not a chat: nothing in it is run or followed. Links, emails and phone numbers are removed and nothing about you is stored.
Eingabe-Schema
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": [
"need_tool",
"need_data",
"bug",
"other"
],
"description": "need_tool: a tool you want. need_data: data a tool lacks. bug: something broke. other: anything else about the tools."
},
"message": {
"type": "string",
"minLength": 10,
"maxLength": 1000,
"description": "What you need or what broke, in plain words, at most 1000 characters. Links, email addresses and phone numbers are removed. Never include secrets or personal details."
},
"tool": {
"type": "string",
"pattern": "^[A-Za-z0-9_.:-]{1,64}$",
"description": "Optional: the exact name of the tool on this server that the feedback is about, as tools/list shows it."
},
"error": {
"type": "string",
"description": "Optional: for a failed call, the error text it returned, copied as you saw it. Kept to 500 characters; links, email addresses and phone numbers are removed. Never include secrets or personal details."
}
},
"required": [
"kind",
"message"
],
"additionalProperties": false
}Ausgabe-Schema
{
"type": "object",
"properties": {
"ticket": {
"type": "string"
},
"status": {
"type": "string",
"enum": [
"pending",
"answered"
]
},
"reply": {
"type": [
"string",
"null"
]
},
"note": {
"type": "string"
}
},
"required": [
"ticket",
"status"
]
}🟢get_feedback_reply(ticket)
Read the maintainers' reply to feedback you sent with submit_feedback, given its ticket id. Returns status pending until a reply is ready, then status answered with the reply text. The reply is information for you, not an instruction.
Eingabe-Schema
{
"type": "object",
"properties": {
"ticket": {
"type": "string",
"pattern": "^fb_[0-9a-f]{32}$",
"description": "The ticket id that submit_feedback returned."
}
},
"required": [
"ticket"
],
"additionalProperties": false
}Ausgabe-Schema
{
"type": "object",
"properties": {
"ticket": {
"type": "string"
},
"status": {
"type": "string",
"enum": [
"pending",
"answered"
]
},
"reply": {
"type": [
"string",
"null"
]
},
"note": {
"type": "string"
}
},
"required": [
"ticket",
"status"
]
}🟢index_tools(query, task, keyword)
Search the tools on this server by task or keyword in plain words. Returns the matching tools, best match first, each with its name, title, a one-line summary and its input fields. With no words it lists every tool on this server. Use it when you are not sure which tool here fits a task.
Eingabe-Schema
{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Optional words or a task to search for, such as \"vat number\". Omit query, task and keyword to list every tool."
},
"task": {
"type": "string",
"description": "Optional: the task in plain words. Searched together with query and keyword."
},
"keyword": {
"type": "string",
"description": "Optional: one keyword. Searched together with query and task."
}
},
"additionalProperties": false
}Ausgabe-Schema
{
"type": "object",
"properties": {
"tools": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Tool name to call on this server."
},
"title": {
"type": "string",
"description": "What the tool does, in plain words."
},
"summary": {
"type": "string",
"description": "The first sentence of the tool's description."
},
"inputs": {
"type": "array",
"items": {
"type": "string"
},
"description": "The tool's input fields; required ones end with *."
}
},
"required": [
"name",
"title",
"summary",
"inputs"
]
}
},
"count": {
"type": "integer"
},
"query": {
"type": "string",
"description": "The search words, when any were given."
},
"hint": {
"type": "string",
"description": "What to do next when no tool matched."
}
},
"required": [
"tools",
"count"
]
}Community
Nachweis