Guides · Agents · 24

Connect Claude to anything with MCP, then build your own server

Plug ready-made MCP servers into claude.ai, the desktop app and Claude Code, then build a small server that lets Claude search your investor CSV and log notes.

2 to 3 hours$0, Claude Code needs ProAdvanced

Connectors cover the big apps, but your investor spreadsheet or internal tool has none. MCP (Model Context Protocol) is the open standard behind connectors, and it lets you plug in almost anything. Part 1 connects servers other people built. Part 2 builds your own in about 30 lines of Python.

1Understand MCP in one paragraph

An MCP server is a small program that offers Claude a set of tools. The app you talk to (claude.ai, the desktop app, Claude Code) is the host, and it runs one MCP client per server. The MCP docs compare it to a USB-C port: build a server once and any MCP host can use it. A server can offer three kinds of thing:

PrimitiveWho decides to use itFounder example
ToolsClaude, during a task"Find this fund in my CSV", "add a note"
ResourcesThe app, as backgroundThe text of your one-pager
PromptsYou, by nameA saved "prep me for this investor call" template

Servers run in one of two ways. Local servers run on your computer: the host starts them as a child process and talks over stdio. Remote servers live at an HTTPS URL. claude.ai can only use remote ones, because it connects from Anthropic's cloud, not from your laptop.

2Add a remote server on claude.ai

Custom connectors work on every plan, but Free is limited to one. On Team and Enterprise, an Owner adds the server under Organization settings → Connectors, then each member connects with their own account.

  1. Find the server URL in the provider's docs. It looks like https://mcp.example.com/mcp.
  2. Go to Customize → Connectors and choose Add custom connector (some layouts put it behind + Add).
  3. Paste the URL and pick how people sign in. For OAuth, the recommended client option is Claude's published identity.
  4. Click Add, sign in, and deny any permission the job doesn't need.
  5. In a chat, open + → Connectors to turn it on or off for that conversation.
  6. In Customize → Connectors, open the connector and set every tool that writes, sends or deletes to Needs approval or Blocked.

3Add servers in Claude Code and the desktop app

Claude Code adds servers from the terminal. Remote servers use --transport http. For local servers, the launch command goes after --, and everything after it is passed to the server untouched.

Claude Code commands (as of October 2026)
claude mcp add --transport http notion https://mcp.notion.com/mcp
claude mcp add --env API_KEY=[your-key] --transport stdio my-tool -- npx -y [server-package]
claude mcp list
claude mcp remove notion

Then run /mcp inside Claude Code to sign in to remote servers and check their status. The --scope flag decides where a server is saved:

ScopeLoads inShared with your teamSaved in
local (default)This project onlyNo~/.claude.json
projectThis project onlyYes, through git.mcp.json in the project
userAll your projectsNo~/.claude.json

Desktop app: packaged local servers (desktop extensions, .mcpb files) install from Settings → Extensions; you can drag a .mcpb file onto that page. For any other local server, open Settings from the Claude menu in your system menu bar, then Developer → Edit Config. Add the server under mcpServers in claude_desktop_config.json, then fully quit and reopen the app. Closing the window isn't enough. On macOS or WSL, claude mcp add-from-claude-desktop copies those servers into Claude Code.

4Build a server with the official Python SDK

Now your own: investor-notes, with one tool that finds a fund in your CSV and one that appends a dated note. The official Python SDK is on PyPI as mcp (version 2 as of October 2026, Python 3.10 or later). Install uv, then run uv init investor-notes, cd investor-notes and uv add "mcp[cli]". Save your investor list there as investors.csv (keep the fund and partner columns), and server.py next to it:

investors.csv
fund,partner,stage,check_size,status
Example Ventures,Dana Lee,Seed,$250k-$1M,Intro requested
Sample Capital,Sam Ortiz,Pre-seed,$100k-$500k,Not contacted
server.py
import csv
from datetime import date
from pathlib import Path
from mcp.server import MCPServer
from mcp.types import ToolAnnotations

HERE = Path(__file__).parent
INVESTORS = HERE / "investors.csv"
NOTES = HERE / "notes.md"
mcp = MCPServer("investor-notes")

@mcp.tool(annotations=ToolAnnotations(read_only_hint=True, open_world_hint=False))
def find_investor(name: str) -> list[dict[str, str]]:
    """Find rows in my investor CSV where the fund or partner name contains this text."""
    with INVESTORS.open(newline="") as f:
        rows = list(csv.DictReader(f))
    q = name.lower()
    return [r for r in rows if q in r["fund"].lower() or q in r["partner"].lower()]

@mcp.tool(annotations=ToolAnnotations(read_only_hint=False, destructive_hint=False))
def add_note(fund: str, note: str) -> str:
    """Append a dated note about a fund to notes.md. Never edits or deletes old notes."""
    with NOTES.open("a") as f:
        f.write(f"- {date.today().isoformat()} | {fund} | {note}\n")
    return f"Saved a note for {fund}."

if __name__ == "__main__":
    mcp.run()

Function names become tool names, docstrings become the descriptions Claude reads, and type hints become the input form. mcp.run() starts a stdio server. The annotations tell hosts that one tool only reads and the other doesn't delete, but they're hints, not security. The real limit is the code: it opens one CSV and only appends to notes.md. Prefer TypeScript? The v2 TypeScript SDK installs with npm install @modelcontextprotocol/server.

5Test it in the MCP Inspector

The MCP Inspector is the official way to try a server before Claude touches it. It needs Node.js 22.19 or later.

Open your server in the Inspector
uv run mcp dev server.py

It prints a local address on port 6274 with an access token. Open it, connect, go to Tools, and call find_investor with dana. You should get the Example Ventures row. Call add_note and check that notes.md gained one line. The Inspector also has a terminal mode (npx @modelcontextprotocol/inspector --cli) for scripted checks. If it won't connect, look for print() calls. On stdio, stdout carries the protocol, so stray output breaks the connection. Log with Python's logging, which writes to stderr.

6Connect it to Claude Code

Register it with an absolute path, because Claude Code starts the server from its own working directory:

Add your server to Claude Code
claude mcp add investor-notes -- uv run --with "mcp[cli]" mcp run /absolute/path/to/server.py

Run /mcp to confirm it's connected, then ask: "Who's the partner at Example Ventures? Log that I emailed her today." In Manual permission mode, Claude Code asks before each tool call. For the desktop app, run uv run mcp install server.py in the project folder: it writes the config entry for you. Then fully quit and reopen the app. If a host can't find uv, use the full path that which uv prints.

Have Claude Code build a server for your own data
Build me a local MCP server with the official MCP Python SDK, version 2
(from mcp.server import MCPServer). Data: [file or API, e.g. pipeline.csv
with columns company, stage, owner, next_step]. Tools: [1 to 3, e.g. find a
deal by company name; append a dated note]. Rules: read only that one file,
writes may only append, no network calls, never print to stdout, and mark
read-only tools with ToolAnnotations(read_only_hint=True). Test every tool
with the MCP Inspector CLI and show me the output. Then give me the
claude mcp add command with the absolute path. Don't run that command yourself.

7Lock it down

Your MCP setup is ready when0/6

Want your server on claude.ai or shared with your team? It has to run at a public HTTPS URL with sign-in. The SDK can serve it with mcp run server.py --transport streamable-http, but hosting it safely is its own project.

What's next

Use these tools inside your own code with Build an agent with the Agent SDK, or put an agent on an always-on machine with Run an agent on a server. Fill the CSV first with Build a 50-investor list, and compare with the ready-made connectors.

Building agents?Build them with us.

The AI Founders Club ships a new Claude Skill every month, and the Thursday Room is where members bring what they are building. First month $1.

See the ClubOr keep going free: everything in one place