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.

Claude connected to Signed Investors signed-investors mcp

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.

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.

  1. Open Settings → Connectors in claude.ai or Claude Desktop and choose Add custom connector. One added in either shows up in both.

  2. Name it Signed Investors and paste the address. Leave the OAuth fields empty.

    https://mcp.signed.com/investors
  3. Click Add. It connects straight away; there is nothing to approve. Ask about investors in any chat.

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.

  1. search_investors Search by keyword read-only

    Search 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

    NameTypeMeaning
    qrequired string Search text, matched against name, login, bio, investment description, and sector names and slugs.
    sector string Only investors who list this sector. Takes the slug (devtools, fintech, health); list_sectors has the full set with names.
    check_size string Only investors writing checks in this range. Takes the slug (10k-25k) or the label ($10K-$25K); list_check_sizes has both.
    page integer 1-indexed page number (default 1).
    per_page integer 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" } } }
  2. list_investors Browse the directory read-only

    Browse 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

    NameTypeMeaning
    sector string Only investors who list this sector. Takes the slug (devtools, fintech, health); list_sectors has the full set with names.
    check_size string Only investors writing checks in this range. Takes the slug (10k-25k) or the label ($10K-$25K); list_check_sizes has both.
    page integer 1-indexed page number (default 1).
    per_page integer 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 } } }
  3. get_investor One profile read-only

    One 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

    NameTypeMeaning
    loginrequired string 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" } } }
  4. list_investor_followers Who follows them read-only

    Public 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

    NameTypeMeaning
    loginrequired string The investor's login, with or without the leading @.
    page integer 1-indexed page number (default 1).
    per_page integer 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" } } }
  5. list_investor_following Who they follow read-only

    Public Signed investors the given investor follows, alphabetically by name. Only public profiles appear on either side, the same as signed.com/@login/following.

    Arguments

    NameTypeMeaning
    loginrequired string The investor's login, with or without the leading @.
    page integer 1-indexed page number (default 1).
    per_page integer 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" } } }
  6. list_sectors The sector facet read-only

    The 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": {} } }
  7. list_check_sizes The check-size facet read-only

    The 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 server

Want 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.