Find angel investors from any AI assistant.
A public MCP server over Signed's angel investor listing. No account. No token. Read-only.
Server address
https://mcp.signed.com/investors
Works with Claude, ChatGPT, Claude Code, Cursor and any other client that speaks MCP. Nothing to sign in to: it reads what signed.com/investors already shows anyone. Signed's account server has these tools too, plus your own portfolio.
Tell me about @holman.
- get_investor
Zach Holman writes $10K–$25K checks through Tifo, his angel fund: hundreds of early-stage companies, mostly developer tools and sports tech. Pinned to his profile: WorkOS (2019), Lambda (2021), Knock (2021), Oakland Roots and Cagliari. Founders can pitch Tifo straight from the profile.
- 7 tools
- No account needed
- Read-only
- Claude, ChatGPT, Cursor
- Every public profile on Signed
One address. No sign-in.
Give your client the address and it's connected. There is no OAuth step and no token to mint, because nothing here belongs to an account: the server is the public investor directory, and the directory is public.
Open Settings → Connectors in claude.ai or Claude Desktop and choose Add custom connector. One added in either shows up in both.
Name it Signed Investors and paste the address. Leave the OAuth fields empty.
https://mcp.signed.com/investorsClick Add. It connects straight away; there is nothing to approve. Ask about investors in any chat.
Open Settings → Apps & Connectors in ChatGPT. Custom connectors sit behind Developer mode, under Advanced settings; turn it on.
Choose Create, name it Signed Investors, paste the address as the MCP server URL and set authentication to No authentication.
https://mcp.signed.com/investorsPick Signed Investors from the tools menu in a chat.
Add the server from your terminal.
claude mcp add --transport http signed-investors https://mcp.signed.com/investorsStart Claude Code and ask. No
/mcpsign-in step; the tools are there on the first turn.
Open Cursor Settings → MCP and add a new server, or put this in
~/.cursor/mcp.json.{ "mcpServers": { "signed-investors": { "url": "https://mcp.signed.com/investors" } } }Ask in Agent mode. Cursor won't prompt you to sign in.
Add a remote MCP server over the Streamable HTTP transport, with no authentication.
https://mcp.signed.com/investorsOr skip the client: it's JSON-RPC 2.0 over HTTPS. See the wire below for a request you can send with curl.
Nothing to revoke, because nothing was granted. To leave the directory, turn your public profile off in Settings on Signed.
7 tools. The whole directory.
Two ways in (a keyword, or a facet), one profile, the network
around it, and the two facets themselves. Every tool is read-only,
every list paginates, and every result carries the login that
get_investor takes and the signed.com page it came
from.
Arguments are read from each tool's schema, so this sheet is what the server accepts.
-
search_investorsSearch by keyword read-onlySearch Signed's public angel investor directory by keyword: a name, a login, or a word from an investor's bio or investment description ("climate", "former founder", "pre-seed"). A query that names a sector also matches investors who list that sector. Only public profiles are searched. Add sector or check_size to narrow the hits; use list_investors to browse a facet without a keyword.
Arguments
Name Type Meaning qrequiredstring Search text, matched against name, login, bio, investment description, and sector names and slugs. sectorstring Only investors who list this sector. Takes the slug (devtools, fintech, health); list_sectors has the full set with names. check_sizestring Only investors writing checks in this range. Takes the slug (10k-25k) or the label ($10K-$25K); list_check_sizes has both. pageinteger 1-indexed page number (default 1). per_pageinteger Results per page (default 30, max 100). Returns investors, each with login, name, bio, investment_description, sectors, check_size, portfolio_highlights, accepting_pitches and web_url; pagination; and the directory's web_url.
Request body
{ "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "search_investors", "arguments": { "q": "climate", "check_size": "25k-50k" } } } -
list_investorsBrowse the directory read-onlyBrowse Signed's public angel investor directory: every investor with a public profile, most complete profiles first, optionally narrowed to one sector or one check size. Each result carries the investor's login (for get_investor), what they invest in, the checks they write, their pinned portfolio companies, and whether they take pitches. Use search_investors when you have a name or a keyword.
Arguments
Name Type Meaning sectorstring Only investors who list this sector. Takes the slug (devtools, fintech, health); list_sectors has the full set with names. check_sizestring Only investors writing checks in this range. Takes the slug (10k-25k) or the label ($10K-$25K); list_check_sizes has both. pageinteger 1-indexed page number (default 1). per_pageinteger Results per page (default 30, max 100). Returns The same investors cards as search_investors, most complete profiles first, with pagination and the web_url of the matching directory page.
Request body
{ "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "list_investors", "arguments": { "sector": "devtools", "per_page": 10 } } } -
get_investorOne profile read-onlyOne angel investor's public Signed profile by login: bio, investment description, sectors, check size, links, the portfolio companies they've pinned, whether (and where) they take pitches from founders, follower counts, and a few similar investors. Logins come from search_investors or list_investors, or from a signed.com/@login URL. Private profiles are indistinguishable from nonexistent ones.
Arguments
Name Type Meaning loginrequiredstring The investor's login, with or without the leading @. Returns The card plus links (LinkedIn, X, Threads, Bluesky), pitch_inboxes with a submit_url for each entity taking pitches, followers_count, following_count and three similar_investors.
Request body
{ "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "get_investor", "arguments": { "login": "holman" } } } -
list_investor_followersWho follows them read-onlyPublic Signed investors who follow the given investor, alphabetically by name. Only public profiles appear on either side, the same as signed.com/@login/followers.
Arguments
Name Type Meaning loginrequiredstring The investor's login, with or without the leading @. pageinteger 1-indexed page number (default 1). per_pageinteger Results per page (default 30, max 100). Returns investor (the one asked about), followers as cards, alphabetical, and pagination.
Request body
{ "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "list_investor_followers", "arguments": { "login": "holman" } } } -
list_investor_followingWho they follow read-onlyPublic Signed investors the given investor follows, alphabetically by name. Only public profiles appear on either side, the same as signed.com/@login/following.
Arguments
Name Type Meaning loginrequiredstring The investor's login, with or without the leading @. pageinteger 1-indexed page number (default 1). per_pageinteger Results per page (default 30, max 100). Returns investor, following as cards, alphabetical, and pagination.
Request body
{ "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "list_investor_following", "arguments": { "login": "holman" } } } -
list_sectorsThe sector facet read-onlyThe sectors an investor can list on their Signed profile — the valid values for the sector filter on list_investors and search_investors — with how many public investors list each, a one-line description, and example companies. Busiest sectors first.
Arguments
None. Call it with an empty arguments object.
Returns sectors, busiest first: slug, name, a one-line description, example_companies, how many public investors list it, and the directory page for it.
Request body
{ "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "list_sectors", "arguments": {} } } -
list_check_sizesThe check-size facet read-onlyThe check-size ranges an investor can list on their Signed profile — the valid values for the check_size filter on list_investors and search_investors — smallest to largest, with how many public investors write each.
Arguments
None. Call it with an empty arguments object.
Returns check_sizes, smallest first: slug, label, how many public investors write it, and the directory page for it.
Request body
{ "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "list_check_sizes", "arguments": {} } }
On the wire. Plain JSON-RPC.
The transport is MCP's Streamable HTTP with no session: every
request stands alone, so a script can skip initialize
and go straight to a tool call. Results come back as JSON in the
first content block. Cross-origin requests are allowed.
Request
curl -X POST https://mcp.signed.com/investors \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "search_investors",
"arguments": {
"q": "platform engineer"
}
}
}'
result.content[0].text
{
"query": "platform engineer",
"investors": [
{
"login": "rae",
"name": "Rae Okafor",
"bio": "Pre-seed checks into developer tools and data infrastructure. Former platform engineer.",
"check_size": "$10K-$25K",
"sectors": [
{
"slug": "devtools",
"name": "Developer Tools"
},
{
"slug": "data",
"name": "Data / Analytics"
}
],
"portfolio_highlights": [
{
"name": "Kettle",
"domain": "kettle.dev",
"invested_year": 2022
}
],
"accepting_pitches": true,
"web_url": "https://signed.com/@rae"
}
],
"pagination": {
"page": 1,
"per_page": 30,
"total": 1,
"total_pages": 1
},
"web_url": "https://signed.com/investors"
}
Questions. Short answers.
What it can see, what it can't, and how to be in it.
Do I need a Signed account to use it?
No. There is no sign-in, no OAuth step, and no token. Give your client the address and it can call the tools straight away. The server reads only what signed.com/investors already shows to anyone.
What can it see?
Investors who made their Signed profile public: name, bio, what they invest in, the sectors and check size they list, their links, the companies they've pinned to their profile, whether they take pitches, and who follows whom among public profiles. Never a portfolio, a position, an amount, a note, or a private profile.
Can it change anything?
No. Every tool is read-only and says so in its annotations, so clients that gate writes behind a confirmation never need to ask. There is nothing to write to: no account is behind the call.
How do I show up in it?
Make your Signed profile public. In Settings, turn on your public investor profile and fill in your bio, sectors, and check size. Profiles with more filled in sort first, here and on the web. Turning the profile off removes you from both at once.
Is there a rate limit?
Yes, per address: 600 tool calls and 2000 handshake or discovery requests every 5 minutes. Past that the server answers 429 with a Retry-After header. A shared egress like claude.ai's counts as one address, so the ceilings are set with that in mind.
Can I call it without an MCP client?
Yes. It is plain JSON-RPC 2.0 over HTTPS, the MCP Streamable HTTP transport with no session state: POST a tools/call body to the address with a JSON content type and read the result. The reference above has a body for every tool, and cross-origin requests are allowed, so it works from a page too.
Is there a server for my own portfolio?
Yes: mcp.signed.com, without the /investors path. It reads and writes a signed-in investor's own portfolio, pipeline, notes, and documents, and needs an OAuth sign-in or a personal access token. The two are separate servers; add both if you want both.
Your own portfolio? That's the other door.
Signed's account server, at the same host without the path, has every tool here plus your positions, performance, transactions, pipeline, notes and documents, and it can write as well as read. It signs you in with OAuth or takes a personal access token. If you have a Signed account, connect that one and you have both.
Account server address
https://mcp.signed.com
About the account serverWant to be found? Make your profile public.
Signed tracks your angel investments. A public profile on it is a page founders can pitch through, a card in the directory, and, from here on, an answer any AI assistant can give when someone asks who invests in what you invest in.