investor-relations-mcp
<!-- mycelium-badges:start --> <p> <a href="https://github.com/adelaidasofia/investor-relations-mcp/blob/main/LICENSE"><img alt="License" src="https://img.shields.io/github/license/adelaidasofia/investor-relations-mcp?color=blue"></a> <a href="https://github.com/adelaidasofia/investor-relations-mcp/stargazers"><img alt="GitHub stars" src="https://img.shields.io/github/stars/adelaidasofia/investor-relations-mcp?color=eab308"></a> <a href="https://github.com/adelaidasofia/investor-relations-mcp/commits/main"><img alt="Last commit" src="https://img.shields.io/github/last-commit/adelaidasofia/investor-relations-mcp"></a> <a href="https://github.com/adelaidasofia/investor-relations-mcp/issues"><img alt="Open issues" src="https://img.shields.io/github/issues/adelaidasofia/investor-relations-mcp"></a> <a href="https://pypi.org/project/adelaidasofia-investor-relations-mcp/"><img alt="PyPI version" src="https://img.shields.io/pypi/v/adelaidasofia-investor-relations-mcp?color=blue&label=pypi"></a> <a href="https://pypi.org/project/adelaidasofia-investor-relations-mcp/"><img alt="PyPI downloads" src="https://img.shields.io/pypi/dm/adelaidasofia-investor-relations-mcp?color=blue&label=downloads"></a> <a href="https://myceliumai.co"><img alt="Built by Mycelium AI" src="https://img.shields.io/badge/built_by-Mycelium_AI-15B89A"></a> </p> <!-- mycelium-badges:end -->A FastMCP server for tracking your seed raise investor pipeline from Claude Code. Syncs from Obsidian vault CRM files, generates meeting prep documents, tracks interactions, and monitors follow-up compliance.
Built for founders raising a seed round who want to manage their pipeline conversationally without switching to a separate CRM.
Tools
| Tool | What it does |
|---|---|
investor_search | Search pipeline by name, stage, priority, or days since last contact |
investor_profile | Full investor profile + complete interaction history |
investor_prep | Meeting prep doc: portfolio fit, top 3 objections + rebuttals, stage-appropriate agenda |
investor_update | Update stage, log interactions, add investor-specific objections |
investor_analytics | Pipeline health: stage breakdown, committed count, follow-up compliance |
investor_sync | Re-sync from vault CRM markdown files |
Install
Open Claude Code, paste:
/plugin marketplace add adelaidasofia/investor-relations-mcp
/plugin install investor-relations-mcp@investor-relations-mcp
Then fill in pitch_config.yaml with your company's pitch positioning and global objections (drives the investor_prep tool), set INVESTOR_MCP_VAULT_CRM to your CRM folder, restart Claude Code, and run:
<details> <summary>Legacy install</summary>"Run investor_sync" "Show me my investor pipeline" "Prep me for my meeting with [name]"
pip install fastmcp pyyaml python-frontmatter
-
Clone:
git clone https://github.com/adelaidasofia/investor-relations-mcp.git cd investor-relations-mcp -
Fill in
pitch_config.yamlwith your company's pitch positioning and global objections. This is what drives theinvestor_preptool. -
Set environment variables:
export INVESTOR_MCP_VAULT_CRM="~/vault/CRM/" -
Register with Claude Code:
claude mcp add investor-relations -s user -- python3 /path/to/investor-relations-mcp/server.py -
Restart Claude Code, then sync your CRM:
"Run investor_sync" "Show me my investor pipeline" "Prep me for my meeting with [name]"
CRM file format
The server reads Obsidian markdown files where relationship: investor in the frontmatter:
---
relationship: investor
company: Acme Ventures
role: Partner
email: partner@acme.com
location: New York
priority: high
next_step: Follow up after pitch deck revision
---
Bio paragraph goes here.
## Timeline
- 2026-03-15 — Met at TechCrunch NYC event
- 2026-03-22 — Sent intro email with one-pager
- 2026-04-01 — Zoom call, strong interest in the model
pitch_config.yaml
This file configures your pitch positioning and global objection rebuttals:
company_name: "Your Company"
raise_amount: "$500K"
raise_description: "seed round"
pitch_positioning:
market: "Your market description..."
model: "How you make money..."
traction: "Your best proof point..."
ask: "Use of funds + runway..."
never_say: "Framings to avoid..."
global_objections:
- - "The market is too small"
- "Your rebuttal..."
Environment variables
| Variable | Default | Description |
|---|---|---|
INVESTOR_MCP_DB | ./investors.db | SQLite database path |
INVESTOR_MCP_VAULT_CRM | ~/vault/CRM/ | Folder with investor CRM files |
Pipeline stages
not_contacted → outreach_sent → response_received → meeting_scheduled → pitched → decision_pending → committed / passed
Stages can be customized in pitch_config.yaml.
Related MCPs
Same author, same architecture pattern (FastMCP, draft+confirm on writes where applicable, vault auto-export, MIT):
- slack-mcp - multi-workspace Slack
- imessage-mcp - macOS iMessage
- whatsapp-mcp - WhatsApp via whatsmeow
- google-workspace-mcp - Gmail / Calendar / Drive / Docs / Sheets
- apollo-mcp - Apollo.io CRM + sequences
- substack-mcp - Substack writing + analytics
- luma-mcp - lu.ma events
- parse-mcp - markitdown / Docling / LlamaParse router
- rescuetime-mcp - RescueTime productivity data
- graph-query-mcp - vault knowledge graph queries
- vault-sync-mcp - bidirectional vault sync
Telemetry
This plugin sends a single anonymous install signal to myceliumai.co the first time it loads in a Claude Code session on a given machine.
What is sent:
- Plugin name (e.g.
slack-mcp) - Plugin version (e.g.
0.1.0)
What is NOT sent:
- No user identifiers, names, emails, tokens, or API keys
- No file paths, message content, or anything from your work
- No IP address is stored after dedup processing
Why: Helps the maintainer know which plugins people actually install, so attention goes to the ones that get used.
Opt out: Set the environment variable MYCELIUM_NO_PING=1 before launching Claude Code. The hook will skip the network call entirely. Already-pinged installs leave a sentinel at ~/.mycelium/onboarded-<plugin> — delete it if you want to reset state.
License
MIT
Built by Mycelium AI.