Skip to main content

Get Report Links (Research)

researchmcp-research_report_links

Resolve report_ids to public EDITED Research article URLs.

Links are built at read time from the report's WordPress slug — nothing is stored in the index — so this works for every report regardless of when it was embedded. Call it after any search, list, or get tool whose results you cite, batching all cited report_ids into one call, so your final answer includes clickable EDITED Research URLs. Note the public article page requires login: when the user wants the content itself rather than a link, prefer research_read_report.

Try queries like

research_report_links(report_ids=[152777, 160001]) on ids from the search hits you are about to cite; "share a link to report 152777", "give me the URLs".

Parameters

NameTypeRequiredConstraintsDescription
report_idsinteger[]yesmax items: 20report_id values from a previous search/list/get tool. 1..20 per call — split larger sets across calls.

Returns

  • On success: {"links": {report_id (str): url | null}}. null means
  • WordPress returned no slug for that id (unknown or unpublished
  • report) — surface "link unavailable", never invent a URL.
  • On WordPress failure: {"error": str}.

Try it

Loading interactive widget…

Code examples

curl -s https://mcp.edited.com/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-H "MCP-Protocol-Version: 2025-06-18" \
-H "x-api-key: $MCP_API_KEY" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "researchmcp-research_report_links",
"arguments": {}
}
}'

Input schema

{
"type": "object",
"properties": {
"report_ids": {
"description": "report_id values from a previous search/list/get tool. 1..20 per call — split larger sets across calls.",
"items": {
"type": "integer"
},
"maxItems": 20,
"minItems": 1,
"type": "array"
}
},
"required": [
"report_ids"
]
}