For developers
Everything this site says about a closed-end fund - who is targeting it, what it is asking holders to do and by when, what it costs, how much it borrows and what it holds - can also be read by an assistant such as Claude, ChatGPT or Cursor, and by your own programs.
Connect an assistant
CEF Radar runs a server that speaks the Model Context Protocol, the open standard assistants use to call outside tools. Point your assistant at this address and it can look up any U.S. closed-end fund and answer in plain words, with the as-of date of every number and a link to the original document at the regulator:
https://cefradar.com/mcp
It is free, needs no account and no key, and only reads public filings. It never changes anything and never asks for personal details.
Claude (claude.ai and Claude Desktop)
A remote server like this one is added to your Claude account as a connector, and the same connector then works in Claude Desktop too. In claude.ai open Settings, then Connectors, and choose Add custom connector. Give it the name CEF Radar, paste the address above and leave the login fields empty - no authentication is needed. Then turn the connector on in a chat. (Claude Desktop's own configuration file, claude_desktop_config.json, only starts programs on your computer; it has no field for an address on the web.)
Cursor
Create a file called mcp.json in the .cursor folder of your project (or in your home folder for every project) with:
{
"mcpServers": {
"cef-radar": {
"url": "https://cefradar.com/mcp"
}
}
}ChatGPT
In ChatGPT, turn on Developer mode in Settings (it sits under the security and login section on the web version, on a paid plan). Then add a new app or connector, give it the name CEF Radar, paste the address above and choose No authentication.
Programs that only start local servers
Some assistants can only start a server as a program on your computer. For those, the mcp-remote bridge (a small program from npm) relays to this address:
{
"mcpServers": {
"cef-radar": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://cefradar.com/mcp"
]
}
}
}Menu names change; these instructions were checked in September 2026. If a menu has moved, look for "connectors", "custom connector" or "MCP server" in the assistant's settings.
Try it from the command line
The server answers plain web requests. This one lists the tools:
curl -X POST https://cefradar.com/mcp \
-H 'Content-Type: application/json' \
-H 'Accept: application/json, text/event-stream' \
-d '{"jsonrpc": "2.0", "id": 1, "method": "tools/list"}'And this one asks about one fund:
curl -X POST https://cefradar.com/mcp \
-H 'Content-Type: application/json' \
-H 'Accept: application/json, text/event-stream' \
-d '{"jsonrpc": "2.0", "id": 2, "method": "tools/call", "params": {"name": "get_fund", "arguments": {"ticker": "JOF"}}}'Requests are sent with POST to that one address, one at a time; there is no session to keep and nothing to open with GET. Every answer holds a plain-language text block and the same facts as structured data with as_of dates and source_url links.
What the assistant can ask
- search_funds (query) - Finds a U.S. closed-end fund by its ticker, its name or the firm that runs it and returns up to 6 matches with a link to each fund's page, from SEC filings, with as-of dates and links to the original documents.
- get_fund (ticker) - Tells you, in plain words, whether a large investor is targeting a U.S. closed-end fund, whether the fund has announced something you must act on and by when, what it costs, how much it borrows, how big it is and what it holds, from SEC filings, with as-of dates and links to the original documents.
- get_fund_events (ticker, months (optional)) - Lists one closed-end fund's dated announcements a holder may need to act on (offers to buy back shares, shareholder votes, closings, mergers, offers of new shares, payout notices) with the deadline and what to do, from SEC filings, with as-of dates and links to the original documents.
- get_fund_holdings (ticker) - Describes what a closed-end fund holds - the mix by type of holding and country and its largest positions - from SEC filings, with as-of dates and links to the original documents.
- list_events (kind (optional), since (optional), only_open (optional)) - Lists recent announcements across all U.S. closed-end funds (buy-back offers, votes, closings, mergers, offers of new shares, payout notices), newest first, each with the fund, the deadline and what to do, from SEC filings, with as-of dates and links to the original documents.
- list_activists (none) - Lists the large investors we follow - those who buy into closed-end funds and sometimes push for changes - with how many funds each is in now and its newest move, from SEC filings, with as-of dates and links to the original documents.
- get_activist (slug) - Describes one large investor in plain words: how many funds it is in and where it is pushing for changes, what it usually does, the funds it has left and its recent moves, from SEC filings, with as-of dates and links to the original documents.
- latest_filings (days (optional), cef_only (optional)) - Lists the newest notices large investors filed about owning 5% or more of a fund (raised or cut a stake, may push for changes, passive, sold down), one plain sentence each, from SEC filings, with as-of dates and links to the original documents.
- which_funds_hold (query) - Lists every U.S. closed-end fund whose latest quarterly holdings report includes a company or bond you name (or its CUSIP or ISIN), with each fund's share of it and the report date, from SEC filings, with as-of dates and links to the original documents.
There is also one ready-made prompt, check_my_fund, which asks the assistant to call get_fund and answer the three questions a holder has: is anyone targeting it, do I have to act by a date, and what does it cost and borrow.
Free, and the limits
The assistant server is free: up to 2,000 tool calls a day from one address, resetting at midnight UTC. The JSON interface below allows 100 requests a day without a key. A paid plan's key from your alerts page ("More options") raises both limits to the plan's daily budget; send it as Authorization: Bearer <key>. (A free plan's key changes nothing for the assistant server: its calls stay in the free assistant budget and never use up your JSON budget.) Please cite the source as "CEF Radar (cef.dulinski.me), from public filings at the U.S. Securities and Exchange Commission". This is information, not advice.
The JSON interface and spreadsheet files
The same facts as plain JSON: the list of calls, the full description in the OpenAPI format and a manifest of the JSON calls for programs that read one (it also names the assistant server's address and tools). Every fact carries its as-of date and a link to the original document.
Lists can be downloaded as spreadsheet files (CSV) without a key: all closed-end funds, fund announcements of the last 90 days, and each fund's history and each investor's funds from their own pages.