Doggi MCP Server
Provides structured investor psychology coaching tools for the Doggi (Careful Starter) curriculum through 7 specialized tools. Enables Claude to access specific lesson content and coaching interventions on-demand without re-ingesting the entire curriculum each time.
README
MCP1
Remote MCP server delivering the Doggi (Careful Starter) investor-psychology curriculum as 7 tools. Built so Claude pulls only the lesson slice it needs per turn instead of re-ingesting the whole corpus.
Layout
| Path | What |
|---|---|
server.py |
Business logic. The DoggiMCP class — 7 tool handlers, reads from disk |
http_server.py |
HTTP wrapper. Exposes DoggiMCP over MCP Streamable HTTP, with API-key auth |
coaching_session.py |
Local client (Anthropic SDK). Useful for testing tool flow without deploying |
tests/demo.py |
Smoke test, runs every tool |
data/ |
Framework, archetype, interventions, progress (source of truth) |
lessons/ |
Lesson 1–6 markdown (source of truth) |
Dockerfile, fly.toml, requirements.txt |
Deploy config for Fly.io |
DEPLOY.md |
Step-by-step deploy guide |
Run locally
# Smoke test, no API key needed
python3 tests/demo.py
# Run the HTTP server locally
MCP_API_KEY=test pip install -r requirements.txt
MCP_API_KEY=test python3 http_server.py
curl -H "X-API-Key: test" http://localhost:8000/mcp
# Live coaching client (needs ANTHROPIC_API_KEY + COACHING_MODEL)
python3 coaching_session.py
Deploy
See DEPLOY.md — Fly.io, ~20 minutes end to end.
Tools
get_lesson(n)— lesson 1–6get_framework()— north starget_archetype_triggers()— Doggi triggers, red flags, strengthsget_coaching_intervention(n)— coaching style, do/don't, example for lesson nget_progress_state()— where the client is in the journeyanalyze_response(text, n)— match user text against triggers and red flagsnext_lesson(n)— sequencing
Customize
Everything lives in data/ and lessons/. Edit, commit, fly deploy. No code change needed.
lessons/lesson{1-6}.md— lesson contentdata/archetype.json— triggers, red flags, strengthsdata/interventions.json— coaching style per lessondata/progress_state.json— client state (replace with DB query in production)
Design notes
- Don't put this README (or other docs) into the Claude Project space. Anything Claude reads on every turn defeats the MCP's purpose.
- Don't hard-code dated model IDs.
coaching_session.pyreadsCOACHING_MODELfrom env. - Source of truth is on disk, not in code. No embedded copies.
- Tool descriptions are intentionally short (≤6 words). The schemas describe inputs.
- API key auth is mandatory.
http_server.pyrefuses to start withoutMCP_API_KEY.
Security
- API key required on all
/mcprequests viaX-API-Keyheader /healthis open (Fly.io needs it for liveness checks)- Path traversal blocked:
lesson_numvalidated as int 1–6 before any file access - Input size capped:
analyze_responserejects payloads over 10KB - Container runs as non-root user
- No secrets in source —
MCP_API_KEYandANTHROPIC_API_KEYcome from env only .gitignoreand.dockerignoreexclude.env*and other secret patterns
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.