
mcp basic architecture
A Python-based Model Context Protocol (MCP) server that enables LLMs to access external tools and resources through a standardized interface.
Repository Info
About This Server
A Python-based Model Context Protocol (MCP) server that enables LLMs to access external tools and resources through a standardized interface.
Model Context Protocol (MCP) - This server can be integrated with AI applications to provide additional context and capabilities, enabling enhanced AI interactions and functionality.
Documentation
LangGraph MCP Server
A clean, modular implementation of a Model Context Protocol (MCP) server for LangGraph documentation.
Architecture
This project follows a clean architecture pattern to make the MCP server more maintainable and easier to debug as more functionality is added.
Directory Structure
app/
├── config.py # Configuration settings
├── server.py # Main server entry point
├── resources/ # Resources that can be accessed by clients
│ ├── __init__.py # Resource registration
│ └── langgraph_resources.py # LangGraph-specific resources
├── tools/ # Tools that can be called by clients
│ ├── __init__.py # Tool registration
│ └── langgraph_tools.py # LangGraph-specific tools
└── utils/ # Utility functions
├── __init__.py
└── logging_utils.py # Logging utilities
Core Components
- Server: The main entry point that initializes the MCP server and registers all tools and resources.
- Config: Central location for all configuration settings.
- Tools: Functions that can be called by clients to perform specific tasks.
- Resources: Data sources that can be accessed by clients.
- Utils: Utility functions used throughout the application.
Adding New Functionality
Adding a New Tool
- Create a new file in the
app/tools/directory (e.g.,weather_tools.py). - Define your tool functions in this file.
- Create a registration function (e.g.,
register_weather_tools). - Import and call this registration function in
app/tools/__init__.py.
Example:
# app/tools/weather_tools.py
def register_weather_tools(mcp):
mcp.tool()(get_weather)
def get_weather(city: str):
"""Get weather for a city"""
# Implementation
return f"Weather for {city}: Sunny, 75°F"
# app/tools/__init__.py
from app.tools.langgraph_tools import register_langgraph_tools
from app.tools.weather_tools import register_weather_tools
def register_tools(mcp):
register_langgraph_tools(mcp)
register_weather_tools(mcp)
Adding a New Resource
- Create a new file in the
app/resources/directory (e.g.,weather_resources.py). - Define your resource functions in this file.
- Create a registration function (e.g.,
register_weather_resources). - Import and call this registration function in
app/resources/__init__.py.
Example:
# app/resources/weather_resources.py
def register_weather_resources(mcp):
mcp.resource("weather://forecast")(get_weather_forecast)
def get_weather_forecast():
"""Get weather forecast"""
# Implementation
return "5-day weather forecast data"
# app/resources/__init__.py
from app.resources.langgraph_resources import register_langgraph_resources
from app.resources.weather_resources import register_weather_resources
def register_resources(mcp):
register_langgraph_resources(mcp)
register_weather_resources(mcp)
Running the Server
To run the server:
python -m app.server
Benefits of This Architecture
- Modularity: Each component has a single responsibility.
- Extensibility: Easy to add new tools and resources without modifying existing code.
- Maintainability: Organized structure makes debugging easier.
- Scalability: Can handle growth as more functionality is added.
- Testability: Components can be tested in isolation.
Quick Start
Clone the repository
git clone https://github.com/rezawr/mcp-basic-architectureInstall dependencies
cd mcp-basic-architecture
npm installFollow the documentation
Check the repository's README.md file for specific installation and usage instructions.
Repository Details
Recommended MCP Servers
Discord MCP
Enable AI assistants to seamlessly interact with Discord servers, channels, and messages.
Knit MCP
Connect AI agents to 200+ SaaS applications and automate workflows.
Apify MCP Server
Deploy and interact with Apify actors for web scraping and data extraction.
BrowserStack MCP
BrowserStack MCP Server for automated testing across multiple browsers.
Zapier MCP
A Zapier server that provides automation capabilities for various apps.