FastMCP + LangGraph Webinar Demo
A terminal-based MCP demo that connects a FastMCP server to a LangGraph ReAct agent.
What this project does
This repo is a clean CLI demo for MCP tool use.
- Starts a FastMCP server with 6 tools
- Connects the server to a LangGraph ReAct agent
- Lets you test tools manually from the terminal
- Lets the agent choose tools for multi-step tasks
Included files
demo_mcp_server.py- MCP server with all toolsdemo_agent.py- interactive CLI runnerrequirements.txt- Python dependencies.env.example- local env template
Skills used
- Python
- FastMCP
- LangGraph
- MCP
- OpenAI API
- Tavily search API
- HTTP requests
- Agentic workflows
- Tool calling and tool selection
- Prompt engineering for ReAct-style agents
- Multi-step reasoning with external tools
- MCP server and client orchestration
- Web search and page fetching for grounding
- Safe task-specific automation from the terminal
Features
web_search- Tavily-backed searchfetch_url- fetches a URL and strips HTMLsave_note- writes text files undertmp/mcp_notes/read_note- reads saved notes backlist_notes- lists saved notes and sizescalculate- safe math evaluation for expressions likesqrt(144) + pi
Requirements
- Python 3.10+
OPENAI_API_KEYfor the agent sectionTAVILY_API_KEYforweb_search
Setup
pip install -r requirements.txt
Create a .env file in the project root with:
OPENAI_API_KEY=your_openai_key
OPENAI_MODEL=gpt-4o-mini
TAVILY_API_KEY=your_tavily_key
If you only want to test the tools and skip the agent, OPENAI_API_KEY is not required.
Run
python demo_agent.py
Tools-only mode:
python demo_agent.py --tools-only
How the demo works
- The runner starts the MCP server over stdio.
- It discovers the available tools.
- You can call tools manually from the terminal.
- If
OPENAI_API_KEYis set, the LangGraph agent runs preset or custom prompts.
Environment variables
OPENAI_API_KEY- required for the agentOPENAI_MODEL- optional, defaults togpt-4o-miniTAVILY_API_KEY- enablesweb_search
Notes
web_searchfails cleanly ifTAVILY_API_KEYis missing.- Saved notes live in
tmp/mcp_notes/next to the scripts. save_notesanitizes filenames before writing.
Troubleshooting
- If imports fail, run
pip install -r requirements.txtagain. - If the server file is missing, keep
demo_agent.pyanddemo_mcp_server.pyin the same folder. - If the agent section is skipped, set
OPENAI_API_KEYin.env.
License
No license file is included in this repo.