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.
Directories and programs that read a server's description find it at /.well-known/mcp/server-card.json; the same facts are in the official registry's format in the repository file server.json.
Connect an assistant to your account
The same server also answers at a second address, for an assistant that reads CEF Radar as you - signed in to your own account:
https://cefradar.com/mcp/account
In Claude, add a connector with that address and press Connect: Claude sends you to CEF Radar, where you sign in with your email address (or with your Google or Microsoft account) and press Allow. ChatGPT works the same way - add the connector with that address and choose the sign-in it offers. In Cursor or Claude Code the sign-in window opens on its own. For now this address answers the same as the free address; it exists so that a later version can show the funds you follow. You can disconnect a program at any time under More options on your alerts page.
A program of your own can use the same address with the key from your alerts page instead of the sign-in: send it as Authorization: Bearer <key>.
A plain-text guide for assistants
An assistant or a coding tool asked "how do I read cefradar.com" can fetch /llms.txt - a short index of the pages, the data files, this server and the terms of reuse in the llms.txt format - and /llms-full.txt, the longer guide: how to read a fund page, the words we use next to the formal terms, every call and tool with an example. Both are generated from the same code as the pages, so they never fall behind.
What the assistant can ask
- Find a fund - 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. Results are informational, read automatically from public filings and may contain errors; always show the source link and never present results as personal investment advice.
- One fund: who is targeting it, what to act on, costs - 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. Results are informational, read automatically from public filings and may contain errors; always show the source link and never present results as personal investment advice.
- One fund's dated announcements - 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. Results are informational, read automatically from public filings and may contain errors; always show the source link and never present results as personal investment advice.
- What a fund holds - 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. Results are informational, read automatically from public filings and may contain errors; always show the source link and never present results as personal investment advice.
- Recent announcements across funds - 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. Results are informational, read automatically from public filings and may contain errors; always show the source link and never present results as personal investment advice.
- Large investors we follow - 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. Results are informational, read automatically from public filings and may contain errors; always show the source link and never present results as personal investment advice.
- One large investor - 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. Results are informational, read automatically from public filings and may contain errors; always show the source link and never present results as personal investment advice.
- Newest notices from large investors - 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. Results are informational, read automatically from public filings and may contain errors; always show the source link and never present results as personal investment advice.
- Which funds hold a security - 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. Results are informational, read automatically from public filings and may contain errors; always show the source link and never present results as personal investment advice.
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 (cefradar.com), data from public filings at the U.S. Securities and Exchange Commission". This is information, not advice: every answer carries a notice saying so, and the developer interface terms say what you may do with the data (free to reuse with credit) and what not (redistributing our sentences in bulk).
The JSON interface and spreadsheet files
The same facts as plain JSON: the list of calls, the full description in the OpenAPI format (with the server address, the terms, the licence and a short name and summary for every call) 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. Without a key, 100 requests a day per address; every answer carries the X-RateLimit-Limit and X-RateLimit-Remaining headers and a Link header pointing at the terms.
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.
Feeds for news readers
Every list on this site is also a feed in the Atom format, which any news reader (Feedly, NetNewsWire, Thunderbird, Outlook) can follow. Each entry carries the same plain-words sentence as the page, the filed date, a link to our page and a link to the original document at the regulator. No key, no account.
- All fund announcements - the newest 50 buy-backs, votes, closings, mergers and payout notices across every closed-end fund.
- All recent activity - the newest 50 rows of the list at /filings: notices from large investors about a stake of 5% or more in a closed-end fund and every announcement by a fund, interleaved.
- Dates to know - every open date to act by, soonest first.
- One fund: /fund/{TICKER}/feed.xml, for example /fund/JOF/feed.xml - its announcements and the notices about it, newest first.
- One investor: /activist/{slug}/feed.xml, for example /activist/saba/feed.xml - its notices and the fights over a vote it starts.
Entry ids never change (tag:cefradar.com,2026:event/{fund number}/{document number}/{kind} and tag:cefradar.com,2026:filing/{document number} - the regulator's own permanent numbers, not ours), so a reader shows each document once. Feeds refresh within minutes of a document landing; a reader that checks once an hour is plenty.