MCP-Langgraph Integration Tutorial
This tutorial demonstrates how to integrate Model Context Protocol (MCP) servers with Langgraph agents to create powerful, tool-enabled AI applications. The project showcases a data science assistant named Scout that can help users manage their data science projects using various MCP-powered tools.
Overview
The project implements a conversational AI agent that:
- Uses GPT-4.1 as the base model
- Integrates with multiple MCP servers for different functionalities
- Uses Langgraph for orchestrating the conversation flow
- Provides a streaming interface for real-time responses
Prerequisites
- Python 3.13+
- Node.js (for filesystem MCP server)
- Docker (for GitHub MCP server)
- UV package manager
- OpenAI API key
Project Structure
scout/
├── graph.py # Langgraph agent implementation
├── client.py # MCP client and streaming interface
├── client_utils.py # Utility functions
├── main.py # Entry point
└── my_mcp/ # MCP server configurations
├── config.py # Config loading and env var resolution
├── mcp_config.json # MCP server definitions
└── local_servers/ # Custom MCP server implementations
Setup
- Clone the repository:
git clone <repository-url>
cd mcp-intro
- Create and activate a virtual environment:
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
- Install dependencies:
uv pip install -e .
- Set up environment variables:
Create a
.envfile with:
OPENAI_API_KEY=your_openai_api_key
MCP_FILESYSTEM_DIR=/path/to/projects/directory
MCP_GITHUB_PAT=your_github_personal_access_token
MCP Servers
This project integrates with four MCP servers:
- Dataflow Server: Custom implementation for data loading and querying
- Filesystem Server: Uses
@modelcontextprotocol/server-filesystemfor file operations - Git Server: Uses
mcp-server-gitfor local git operations - GitHub Server: Uses the official GitHub MCP server for GitHub operations
Usage
- Start the application:
python -m scout.client
- Interact with Scout by typing your questions or requests. For example:
USER: Can you help me set up a new data science project?
- Scout will use its tools to:
- Create and manage project directories
- Handle data loading and transformation
- Manage version control
- Interact with GitHub repositories
- Type 'quit' or 'exit' to end the session.
How It Works
- The
graph.pyfile defines the Langgraph agent structure:
- Sets up the system prompt and agent state
- Configures the LLM (GPT-4)
- Defines the conversation flow graph
- The
client.pyfile:
- Initializes the MCP client with multiple servers
- Handles streaming responses
- Manages the interactive session
- MCP servers provide tools for:
- File system operations
- Data manipulation
- Git operations
- GitHub interactions
Extending the Project
You can extend this project by:
- Adding new MCP servers in
my_mcp/local_servers/ - Modifying the system prompt in
graph.py - Adding new tools to the agent
- Customizing the conversation flow
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Metadata
Release files for iflow-mcp_kenneth-liao-mcp-intro 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| iflow_mcp_kenneth_liao_mcp_intro-0.1.0.tar.gz | 8.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| iflow_mcp_kenneth_liao_mcp_intro-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 18.5 kB
Release files / iflow_mcp_kenneth_liao_mcp_intro-0.1.0.tar.gz
| Download URL | iflow_mcp_kenneth_liao_mcp_intro-0.1.0.tar.gz |
|---|---|
| Size | 8.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
bfc4c6cc16d597d000c908abb857c2a915e17c2fc03a038c6059a1e1e227fa35
|
|
BLAKE2b-256 checksum How to use checksums |
863de7f6f793c7ff6d17a1587518f9a5818e71ff35dc7316577bd5fb3734b304
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.10.0 {"installer":{"name":"uv","version":"0.10.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / iflow_mcp_kenneth_liao_mcp_intro-0.1.0-py3-none-any.whl
| Download URL | iflow_mcp_kenneth_liao_mcp_intro-0.1.0-py3-none-any.whl |
|---|---|
| Size | 10.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
3bd3fab79d37fa0e81a85178d64b4d73a71d643f476675331dd528e6a99c53c1
|
|
BLAKE2b-256 checksum How to use checksums |
ac56520cb5db02f629751f56b41e36dec2d3b768ed710130ba5908253f3132e0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.10.0 {"installer":{"name":"uv","version":"0.10.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|