Podcast Alpha MCP is a standard remote MCP server over Streamable HTTP. Any client that can POST JSON-RPC can use it — Claude Code, Claude Desktop, or your own agent loop. Agents pay per call with x402, so there is no account to create and no key to manage. Four steps, and the whole thing is one URL.
https://pa-api.knowledgefactory.io/mcp
This is the default way in, and the one built for agents: no account, no signup, no token to manage. An agent with a wallet calls a tool, the server answers 402 with a quote in a PAYMENT-REQUIRED header — what the call costs, which chains it accepts, and where to send it. The agent signs the quote and retries with a PAYMENT-SIGNATURE header, and the result comes back with a settlement receipt in PAYMENT-RESPONSE.
The handshake itself is free. initialize, ping, and tools/list never cost anything and need no credentials, so a client can connect and read the full tool schemas before it spends anything.
search_statements, get_predictions, get_catalysts, and get_trending_themes; $0.002 for get_coverage and for get_predictions with include_scorecard.PAYMENT-SIGNATURE, not X-PAYMENT. That mix-up is the single most common client bug.Nothing is charged for a call that cannot succeed. Arguments are validated and entity names resolved before any payment settles, so a malformed request, an unknown company, or an expired cursor returns an ordinary error at no cost. Probing an unknown tool name is free too.
If you are wiring this up by hand, keep the paid call behind normal command approval rather than on an agent allowlist, so a human sees the URL, chain, address, and amount before funds move.
Would rather not run a wallet? A beta access token is the alternative, and every step below works the same way — you just add one header.
Podcast Alpha MCP is a standard remote MCP server over Streamable HTTP, so most clients need nothing but the URL. Paying with x402 means no header at all — add an Authorization header only if you hold a beta token.
One command, run in the project you want it available in:
claude mcp add --transport http podcast-alpha https://pa-api.knowledgefactory.io/mcp
With a beta token, append the header:
claude mcp add --transport http podcast-alpha https://pa-api.knowledgefactory.io/mcp \
--header "Authorization: Bearer YOUR_TOKEN"
Or commit an .mcp.json at the repo root so the whole team picks it up:
{
"mcpServers": {
"podcast-alpha": {
"type": "http",
"url": "https://pa-api.knowledgefactory.io/mcp"
}
}
}
A beta token adds one line beside "url": "headers": { "Authorization": "Bearer YOUR_TOKEN" }. Keep the real value out of the committed file — inject it through your own secret handling, and gitignore any copy that holds a live token.
Older clients spell the transport field "transport": "streamable-http" instead of "type": "http". Clients that infer transport from the URL need neither.
Add a custom connector pointing at https://pa-api.knowledgefactory.io/mcp. There is no OAuth flow. If you hold a beta token, add it as an Authorization: Bearer YOUR_TOKEN header.
This asks the server what it offers. It is free, needs no credentials, and is the fastest way to tell a network problem from a payment or token problem:
curl -s -X POST https://pa-api.knowledgefactory.io/mcp \
-H "content-type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
You should get five tools back, each publishing both an inputSchema and an outputSchema. That response is the authoritative API reference — it is always current, where this page is only as fresh as its last edit.
Now try a real tool call. With no payment and no token this returns 402 and a quote in the PAYMENT-REQUIRED header, which is the correct answer rather than a failure — it is exactly what your agent will act on. Use -i so you can see the header:
curl -s -i -X POST https://pa-api.knowledgefactory.io/mcp \
-H "content-type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call",
"params":{"name":"search_statements",
"arguments":{"entities":["nvidia"],"stance":"bearish","limit":3}}}'
That header is base64 — decode it to read the price, the accepted chains, and the receiving address. Once payment is attached, or with a beta token in an authorization header, the same call returns 200 and the results.
Connecting the server tells your agent the tools exist. It does not tell it when to reach for them, how to cite what comes back, or that every page of results costs money. Paste this into your system prompt, CLAUDE.md, or wherever your agent keeps its standing instructions:
You have access to the Podcast Alpha MCP server: a research index of what named
investors, operators, and analysts have actually said on finance podcasts, with
every claim attributed and timestamped.
Reach for it whenever the user asks what experts think about a company or theme,
who is bullish or bearish, what predictions have been made, what catalysts are
coming, or which narratives are gaining attention. It answers questions web
search cannot: who said a thing, when, and whether their past calls worked out.
TOOLS
- search_statements Attributed, timestamped statements. Needs at least one of
query, entities, or speakers. Filter with stance
(bullish / bearish / neutral / mixed / informational).
- get_predictions Forward-looking calls with resolution status
(hit / miss / partial / unresolved). Pass
include_scorecard: true to weight a speaker by their
demonstrated accuracy.
- get_catalysts Upcoming events flagged on air with their stated timing
window. Needs entity or query.
- get_trending_themes Which themes are rising, emerging, fading, or steady.
Takes no required arguments.
- get_coverage Which episodes covered an entity, with ranked takeaways
and article links. Needs entity or topic.
RULES
1. Always cite. Every result carries a speaker name, a timestamp deep link, and
an article link. Reproduce them. Never restate a claim as unattributed fact.
2. These are opinions, not findings. Name who said it and when. Do not convert
them into recommendations - the corpus is research material, not advice.
3. Respect the coverage window. Every response includes meta.coverage_window.
If the user asks about something outside it, say so plainly instead of
guessing or filling the gap from memory.
4. Read meta.warnings and pass them on. speaker_concentration means one voice
dominates the results. sparse_results means fewer than three matches, so
supplement with web search and say that you did. lapsed_catalysts_present
means some windows have passed unresolved - flag those explicitly.
5. Page deliberately. Results cap at 10 per call and every page is billed
separately. Fetch the next page (pass meta.result_cap.next_cursor as the
cursor argument) only when the user actually needs more, and stop when
meta.result_cap.capped is false.
6. To test a thesis, search twice: once for the thesis, once for the counter
case. Report both sides with names attached rather than the side that
happens to rank first.
7. On an error, read the code. unknown_entity and ambiguous_entity mean the
name did not resolve - try the candidate ids it hands back, or ask the user
which they meant. invalid_cursor means the corpus refreshed mid-pagination;
restart from the first page. None of these cost anything.
Then ask it something. The tool reference has more examples, but these exercise all five tools:
If you would rather not wire up a wallet, a bearer token in an Authorization header does the same job. Tool calls are free while the beta runs, rate limited to 10 per hour per token. Tokens are issued by hand — the beta is invite-only.
402 instead. If a token that used to work starts asking you to pay, check the string before you check your wallet.| You see | What it usually means |
|---|---|
| 402 | On the x402 path this is the normal first answer, not an error: it carries the quote your agent signs and retries with. If you are sending a beta token and still see it, the token did not match — a wrong or revoked token falls through to the paid path rather than being rejected, so check the string. |
| 401 | The paid path is switched off server-side and you sent no valid token. This is a server configuration state, not a comment on your token. |
| 429 | You hit the hourly cap. The retry-after header gives seconds remaining. Beta tokens get 10 calls an hour by default; ask if you need more. |
| 405 | You sent a GET. The endpoint is POST only — the server is stateless and opens no SSE stream, which is correct for this transport. |
| 404 | Wrong path. The only routes are /mcp and /health. |
| invalid_cursor | The corpus refreshed between two pages. Cursors are bound to the snapshot that issued them, which is what stops a refresh from silently skipping or repeating rows. Restart pagination from the first page. |
| ambiguous_entity | The name matched several ids; the error lists the candidates. Pass one of them exactly. |
| Empty results | Check meta.coverage_window. Asking about events outside the window is the usual cause, not a broken query. |
Still stuck? Email us with the request you sent and the status code you got back.
The overview walks through each of the five tools, what the corpus holds, and where its edges are.
Podcast Alpha MCP returns attributed opinions from public recordings — not investment advice. Quotes are attributed to their speakers; inclusion in the corpus is not an endorsement of any claim. See our Terms and Privacy Policy.