Provides tools for interacting with Airbnb services through a Node.js-based MCP server, demonstrating cross-language MCP integration capabilities.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g.,@Weather Service MCP what is the weather in Tokyo?
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
You can also use deployed servers via HTTP endpoints. For instructions, see How to Test MCP Streamable HTTP Endpoints Using cURL.
MCP Learning Project 2025 ๐
A hands-on project to demonstrate building and deploying Model Context Protocol (MCP) servers. Learn how to create custom MCP tools, configure them for AI assistants, and integrate them with Claude Desktop, Continue, and other MCP-compatible applications.
๐ฏ What You'll Learn
๐ ๏ธ Build custom MCP servers from scratch
๐ Integrate MCP tools with AI assistants
๐งช Test and debug using MCP Inspector and MCP Studio
๐ฆ Manage dependencies with UV or pip
๐ Deploy production-ready MCP servers
๐จ Create type-safe tools with Pydantic
๐ Use streamable HTTP transport for advanced scenarios
๐๏ธ Tech Stack
Category | Technology | Purpose |
Language | Python 3.13+ | Core programming language |
Protocol | MCP (Model Context Protocol) | Standardized AI-tool communication |
Framework | FastMCP | Rapid MCP server development |
Package Manager | UV or pip + venv | Dependency management |
Validation | Pydantic | Data validation and type safety |
Server | Uvicorn | ASGI server for MCP |
Testing | MCP Inspector & MCP Studio | Interactive testing and debugging |
๐ Prerequisites
Before diving in, make sure you have:
โ Python 3.13+ installed on your system
โ UV (recommended) or pip + venv for package management
โ VS Code (optional but recommended for MCP configuration)
โ Git for version control
โ Terminal access (PowerShell, CMD, or Bash)
๐ Installation
1. Install UV:
2. Initialize project:
3. Add MCP dependencies:
4. Install all dependencies:
1. Navigate to project:
2. Create virtual environment:
3. Activate virtual environment:
4. Install dependencies:
Generated Files
UV | pip + venv |
|
|
|
|
โ๏ธ MCP Server Configuration
To integrate your MCP server with AI clients (like Claude Desktop), create a configuration file:
Create .vscode/mcp.json
Multi-Server Configuration
Configuration Options
Field | Description | Example |
| Executable to run |
|
| Arguments passed to command |
|
| Environment variables |
|
| Communication type |
|
๐ฎ Running the MCP Server
Method 1: Quick Testing โก (Direct Function Call)
Test individual functions without starting the full MCP server:
Output:
Output:
When to use:
โ Fast iteration during development
โ Unit testing individual tools
โ Debugging function logic
โ Won't work with MCP clients
Method 2: Production Mode ๐ (Full MCP Server)
Run as a complete MCP server for AI assistant integration:
When to use:
โ Integration with AI assistants (Claude, Continue, etc.)
โ Production deployments
โ Multi-tool servers
โ Standardized MCP protocol communication
Method 3: MCP Inspector ๐ (Development & Debugging)
Use the MCP Inspector to interactively test your server with a web UI:
With UV:
With pip + venv:
Features:
Terminal-based debugging
Log output in console
Quick server validation
โ No web UI
With UV:
With pip + venv:
Features:
โ Interactive web UI
โ Visual tool explorer
โ Request/response inspection
โ Real-time testing
โ Always latest version
MCP Inspector Features:
๐ Interactive tool testing in browser
๐ Request/response inspection
๐ Real-time debugging
๐ Schema validation
๐จ Visual interface for all MCP tools
Access Inspector:
Example with weather.py:
Method 4: Python Client ๐ (Programmatic Access)
Use Python code to connect to MCP servers programmatically:
Example 1: Connect to Weather Service (Python Server)
Example 2: Connect to Airbnb Service (Node.js Server)
Client Features:
๐ก Programmatic MCP server connections
๐ Async/await communication patterns
๐ Cross-language support (Python โ Node.js)
๐ ๏ธ Direct tool invocation from code
๐ Dynamic tool discovery with
list_tools()
When to use:
โ Building MCP-powered applications
โ Automating tool calls in scripts
โ Testing server integrations
โ Creating custom MCP workflows
โ Connecting to third-party MCP servers
Method 5: MCP Studio ๐ ๏ธ (Advanced Testing & Streamable Transport)
MCP Studio provides advanced debugging capabilities, especially for streamable HTTP transports and complex server integrations.
Setup MCP Studio
1. Install MCP Studio:
2. Configure Remote Server in
3. Run Streamable Server:
4. Connect with MCP Studio:
MCP Studio Benefits:
Visual Debugging: Interactive UI for tool calls and responses
Streamable Transport Support: Handles HTTP/SSE connections for streamable servers
Real-time Monitoring: Live logs and error tracking
Multi-Server Testing: Test multiple servers simultaneously
Integration Testing: Simulate AI assistant interactions
When to use MCP Studio:
โ Testing streamable HTTP servers
โ Complex multi-tool integrations
โ Production-like testing scenarios
โ Debugging connection issues
๐ Project Structure
Key Files Explained
File | Type | Purpose |
| MCP Server | Weather service with mock weather data tools |
| MCP Server | Cryptocurrency price lookup tools |
| MCP Server | File-based notes management (add/get) |
| MCP Server | Screenshot capture using Pillow |
| MCP Server | Person data schema & processing with validation |
| MCP Server | Resource management (coffee inventory example) |
| MCP Server | Web search functionality |
| MCP Server | Streamable HTTP transport example |
| MCP Client | Python client connecting to weather server |
| MCP Client | Python client connecting to Node.js Airbnb server |
| MCP Client | Python client for resources server |
| Config | Modern Python project configuration (PEP 621) |
| Config | Traditional pip dependency list (auto-generated) |
| Config | UV's deterministic dependency lock file |
| Config | MCP server registry for VS Code/Claude Desktop |
๐ Quick Command Reference
UV Commands ๐ฎ
Command | Description |
| Initialize new Python project |
| Add dependency to project |
| Remove dependency |
| Install/sync all dependencies |
| Run command in project environment |
| List installed packages |
| Show package details |
| Update lock file |
| Install Python version |
| List available Python versions |
pip + venv Commands ๐
Command | Description |
| Create virtual environment |
| Activate venv (PowerShell) |
| Activate venv (CMD) |
| Install dependencies |
| Install package in editable mode |
| Install single package |
| Remove package |
| List installed packages |
| Show package details |
| Export dependencies |
| Deactivate virtual environment |
MCP Commands ๐ง
Command | Description |
| Start MCP Inspector for development |
| Check MCP CLI version |
| Start MCP server in production |
| Interactive MCP testing |
| Advanced MCP Studio testing |
๐ก Development Examples
Example 1: Adding a New Weather Tool ๐ค๏ธ
Edit weather.py:
Example 2: Testing New Tools โ
Example 3: Adding Type Safety ๐
Example 4: Building a Python MCP Client ๐
Example 5: Cross-Language MCP Integration ๐
Connect Python client to Node.js MCP server:
Example 6: Streamable HTTP Transport ๐
For advanced scenarios requiring HTTP-based communication:
Testing Streamable Servers:
Example 7: Debugging & Verification ๐
๐ค Contributing
This is a learning project! Feel free to:
๐ Report bugs or issues
๐ก Suggest new MCP tools
๐ Improve documentation
๐ Submit pull requests
๐ License
This project is for learning purposes.
Built with โค๏ธ for learning MCP
โญ Star this repo if you found it helpful!
๐ GitHub โข ๐ MCP Docs โข ๐ง FastMCP